Question

Je me demande comment on est censé formater du code Objective C en utilisant le package listings de LaTeX? Je sais que la langue prend en charge C (objectif), alors comment puis-je mis cela dans l'option de \lstset language?

Merci

Était-ce utile?

La solution

Comme ceci:

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

Présentation détaillée: http://mirror.hmc.edu /ctan/macros/latex/contrib/listings/listings.pdf

Autres conseils

Bien que cette réponse ne répond pas à la question de l'OP en soi , je me dis que d'autres à la recherche d'Objective-C listings informations relatives tomberez sur cette question.

Voici une listings de \lstdefinelanguage pour Objective-C 2.0, GNU99 et ANSI C99. Bien que listings comprend des définitions pour les deux C et Objective-C, les définitions sont pour la norme C89 plus et Objective-C 1.0. La version ci-dessous ajoute C99, ajoute GNU99 à C99, et ajoute Objective-C (2.0) à GNU99.

Vous êtes allez probablement voir une différence si vous utilisez un style de police pour les mots clés qui est différent du style de police « normale ».

Je suis l'auteur du code ci-dessous (à l'exception de la définition ANSI C99, qui a été dérivé de la listings ANSI C et modifié pour ANSI C99). Vous pouvez l'utiliser comme vous le souhaitez, y compris l'incorporer dans d'autres œuvres, sans attribution ni indemnité. Je place par la présente dans le domaine public. ( Note:. C'est surtout pour ceux qui travaillent pour les employeurs qui sont vraiment pointilleux sur ces choses, je ne me soucie pas )

\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]%
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top