2010-04-09 6 views

Répondre

10

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} 

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

+2

C'est pour C. Pour Objective C, vous voudriez utiliser '\ lstset {language = [Objectif] C}'. –

+0

merci - j'ai un problème cependant, ma source est assez longue, et va à la largeur de la page - problèmes Overfull, cela peut-il être résolu? merci – joec

+0

@Joachim, je n'ai jamais utilisé Objective C et puisque joec l'a mis entre parenthèses, j'ai deviné que les langues ne différaient pas beaucoup. J'avais tort! :) J'ai attrapé un certain objectif C à partir du net et j'ai corrigé mon exemple. Merci. –

4

Bien que cette réponse ne répond pas à la question en soi de l'OP, je figure d'autres à la recherche d'Objective-C listings informations connexes trébucheront à travers cette question. Voici un listings\lstdefinelanguage pour Objective-C 2.0, GNU99 et ANSI C99. Alors que listings inclut des définitions pour C et Objective-C, les définitions sont pour l'ancienne norme C89 et Objective-C 1.0. La version ci-dessous ajoute C99, ajoute GNU99 à C99, puis ajoute Objective-C (2.0) à GNU99.

Vous allez probablement voir une différence si vous utilisez un style de police pour les mots-clés différent du style de police "normal".

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

 
\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

comment je l'utilise dans un \ begin {lstlisting}? – CarlJ

+0

@meccan: il suffit de l'ajouter derrière l'instruction \ lstset au début du document – brainray