Formatieren Objective-C-Code mit Listing in LaTeX
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
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]%