Pregunta

Me pregunto cómo se supone que se debe formatear el código Objective C usando el listings paquete de látex?Sé que el lenguaje es compatible con C (Objetivo), entonces, ¿cómo configuro esto en el \lstset language ¿opción?

Gracias

¿Fue útil?

Solución

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

Otros consejos

Aunque esta respuesta no responde a la pregunta del OP per se, me imagino que otros buscan Objective-C listings La información relacionada se topará con esta pregunta.

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

Probablemente sólo verás una diferencia si utilizas un estilo de fuente para las palabras clave que sea diferente al estilo de fuente "normal".

Soy el autor del siguiente código (excepto la definición ANSI C99, que se derivó de la listings ANSI C y modificado para ANSI C99).Puede utilizarlo de la forma que desee, incluso incorporarlo a otras obras, sin atribución ni compensación.Por la presente lo pongo en el dominio público.(Nota:Esto es principalmente para aquellos que trabajan para empleadores que son muy exigentes con esas 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]%
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top