2010-04-09 12 views

risposta

10

Ti piace questa:

\documentclass{article} 

\usepackage{listings} 

\begin{document} 

\lstset{language=[Objective]C, breakindent=40pt, breaklines} 

\begin{lstlisting} 
@interface classname : superclassname { 
    // instance variables 
} 
+classMethod1; 
+(return_type)classMethod2; 
+(return_type)classMethod3:(param1_type)param1_varName; 

-(return_type)instanceMethod1:(param1_type)param1_varName :(param2_type)param2_varName; 
-(return_type)instanceMethod2WithParameter:(param1_type)param1_varName andOtherParameter:(param2_type)param2_varName; 
@end 
\end{lstlisting} 

\end{document} 

Introduzione dettagliata: http://mirror.hmc.edu/ctan/macros/latex/contrib/listings/listings.pdf

+2

Questo è per C. Per l'obiettivo C, che ci si vuole utilizzare '\ lstset {language = [Obiettivo] C}'. –

+0

grazie - ho un problema però, la mia fonte è piuttosto lunga, e sta andando fuori dalla larghezza della pagina - Problemi eccessivi, può essere risolto? grazie – joec

+0

@Joachim, non ho mai usato l'Objective C e siccome joec l'ha messo tra parentesi, ho intuito che le lingue non differivano molto. Mi sbagliavo! :). Ho afferrato qualche obiettivo C dalla rete e ho corretto il mio esempio. Grazie. –

4

Anche se questa risposta non sta rispondendo alla domanda del PO per sé, immagino gli altri alla ricerca di Objective-C listings le informazioni correlate si imbatteranno in questa domanda.

Di seguito è un listings\lstdefinelanguage per Objective-C 2.0, GNU99 e ANSI C99. Mentre listings include le definizioni sia per C che per Objective-C, le definizioni sono per il vecchio standard C89 e Objective-C 1.0. La versione seguente aggiunge C99, aggiunge GNU99 a C99 e quindi aggiunge Objective-C (2.0) a GNU99.

Probabilmente andrai a vedere una differenza solo se utilizzi uno stile di carattere per parole chiave diverso dallo stile di carattere "normale".

Sono l'autore del seguente codice (ad eccezione della definizione ANSI C99, derivata dallo ANSI C e modificata per ANSI C99). Puoi utilizzarlo come preferisci, includendolo in altre opere, senza attribuzione o compenso. Con la presente la colloco nel pubblico dominio. (Nota: questo è soprattutto per coloro che lavorano per i datori di lavoro che sono molto esigente di queste cose, io davvero non mi interessa.)

 
\lstdefinelanguage[Objective]{C}[GNU99]{C} 
    {morekeywords={@catch,@class,@encode,@end,@finally,@implementation,% 
     @interface,@private,@protected,@protocol,@public,@selector,% 
     @synchronized,@throw,@try,BOOL,Class,IMP,NO,Nil,SEL,YES,_cmd,% 
     bycopy,byref,id,in,inout,nil,oneway,out,self,super,% 
     % The next two lines are Objective-C 2 keywords. 
     @dynamic,@package,@property,@synthesize,readwrite,readonly,% 
     assign,retain,copy,nonatomic% 
     },% 
    moredirectives={import}% 
    }% 

\lstdefinelanguage[GNU99]{C}[99]{C} 
    {morekeywords={asm,__asm__,__extension__,typeof,__typeof__}% 
    }% 

\lstdefinelanguage[99]{C}% 
    {morekeywords={_Bool,_Complex,_Imaginary,auto,break,case,char,% 
     const,continue,default,do,double,else,enum,extern,float,for,% 
     goto,if,inline,int,long,register,restrict,return,short,signed,% 
     sizeof,static,struct,switch,typedef,union,unsigned,void,volatile,% 
     while},% 
    sensitive,% 
    morecomment=[s]{/*}{*/},% 
    morecomment=[l]//,% 
    morestring=[b]",% 
    morestring=[b]',% 
    moredelim=*[directive]\#,% 
    moredirectives={define,elif,else,endif,error,if,ifdef,ifndef,line,% 
     include,pragma,undef,warning}% 
    }[keywords,comments,strings,directives]% 
+1

come lo uso in \ begin {lstlisting}? – CarlJ

+0

@meccan: basta aggiungerlo dietro l'istruzione \ lstset all'inizio del documento – brainray

Problemi correlati