2010-04-09 17 views

Respuesta

10

De esta manera:

\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} 

introducción detallada: http://mirror.hmc.edu/ctan/macros/latex/contrib/listings/listings.pdf

+2

Eso es para C. Para Objective C, Lo que quiere utilizar '\ lstset {language = [Objective] C}'. –

+0

gracias - Tengo un problema, sin embargo, mi fuente es bastante larga, y va fuera de la anchura de la página - Overfull problemas, puede esto ser resuelto? gracias – joec

+0

@Joachim, nunca he utilizado Objective C y desde JoeC poner entre paréntesis, que supuso las lenguas no difieren mucho. ¡Estaba equivocado! :). Cogí un Objective C de la red y arreglé mi ejemplo. Gracias. –

4

Aunque esta respuesta no está respondiendo a la pregunta del OP per se, supongo que los demás en busca de Objective-C listings la información relacionada tropezará con esta pregunta.

A continuación se muestra un listings\lstdefinelanguage para Objective-C 2.0, GNU99 y ANSI C99. Mientras listings incluye definiciones de ambos C y Objective-C, las definiciones son para el antiguo estándar C89 y Objective-C 1.0. La versión siguiente agrega C99, agrega GNU99 a C99, y luego agrega Objective-C (2.0) a GNU99.

Estás probablemente sólo va a ver una diferencia si se utiliza un estilo de fuente para las palabras clave que es diferente que el estilo de fuente "normal".

Soy el autor del código siguiente (excepto la definición ANSI C99, que se derivó de listings ANSI C y se modificó para ANSI C99). Puede usarlo de la forma que desee, incluida la incorporación a otros trabajos, sin atribución ni compensación. Por la presente lo coloco en el dominio público. (Nota: esto es sobre todo para aquellos que trabajan para los patrones que son muy delicado respecto a tales cosas, realmente no me importa.)

 
\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

cómo lo uso en un \ begin {lstlisting}? – CarlJ

+0

@ meccan: simplemente agréguela detrás de la declaración \ lstset al principio del documento – brainray

Cuestiones relacionadas