Frage

Ich frage mich, wie man soll Objective-C-Code unter Verwendung des listings Paket von LaTeX zu formatieren? Ich weiß, dass die Sprache unterstützt C (Ziel), so wie richte ich dies in der \lstset language Option?

Danke

War es hilfreich?

Lösung

Wie folgt aus:

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

Detaillierte Einführung: http://mirror.hmc.edu /ctan/macros/latex/contrib/listings/listings.pdf

Andere Tipps

Obwohl diese Antwort ist nicht die OP Beantwortung der Frage per se , ich andere Abbildung der Suche nach Objective-C listings Informationen zu unserem über diese Frage stolpern.

Hier ist ein listings \lstdefinelanguage für Objective-C 2.0, GNU99 und ANSI C99. Während listings sowohl C und Objective-C-Definitionen für enthält, sind die Definitionen für den älteren C89-Standard und Objective-C 1.0. Die Version unten fügt C99, fügt GNU99 zu C99, und fügt dann Objective-C (2,0) bis GNU99.

Du bist wahrscheinlich nur um einen Unterschied zu sehen gehen, wenn Sie eine Schriftart für Schlüsselwörter verwenden, die anders ist als der „normale“ Schriftstil.

Ich bin der Autor des Codes unten (mit Ausnahme der ANSI C99-Definition, die von der listings ANSI C und modifiziert für ANSI C99 abgeleitet wurde). Sie können es jede mögliche Weise verwenden Sie es wünschen, einschließlich es in anderen Werken, ohne Zuschreibung oder Entschädigung enthält. Ich es hiermit in der Öffentlichkeit statt. (. Hinweis: dies ist vor allem für diejenigen, die Arbeit für Arbeitgeber, die über solche Dinge wirklich wählerisch sind, ist mir egal, wirklich )

\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]%
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top