تنسيق رمز C الهدف باستخدام القائمة في LaTex
سؤال
أتساءل كيف من المفترض أن يقوم المرء بتنسيق رمز C الهدف باستخدام listings
حزمة اللاتكس؟ أعلم أن اللغة تدعم C (الهدف) ، فكيف أقوم بتعيين هذا في \lstset
language
اختيار؟
شكرًا
المحلول
مثله:
\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}
مقدمة مفصلة: http://mirror.hmc.edu/ctan/macros/latex/contrib/listings/listings.pdf
نصائح أخرى
على الرغم من أن هذه الإجابة لا تجيب على سؤال البروتوكول الاختياري في حد ذاته, ، أتعرف على الآخرين الذين يبحثون عن Objective-C listings
المعلومات ذات الصلة سوف تتعثر عبر هذا السؤال.
أدناه هو listings
\lstdefinelanguage
للهدف C 2.0 و GNU99 و ANSI C99. بينما listings
يتضمن تعريفات لكل من C و Objective-C ، والتعريفات هي المعيار C89 الأقدم والهدف C 1.0. يضيف الإصدار أدناه C99 ، ويضيف GNU99 إلى C99 ، ثم يضيف Objective-C (2.0) إلى GNU99.
من المحتمل أنك تذهب فقط لرؤية فرق إذا كنت تستخدم نمط الخط للكلمات الرئيسية التي تختلف عن نمط الخط "العادي".
أنا مؤلف الكود أدناه (باستثناء تعريف ANSI C99 ، والذي تم اشتقاقه من listings
ANSI C وتعديله لـ ANSI C99). يمكنك استخدامه بأي طريقة ترغب فيها ، بما في ذلك دمجها في أعمال أخرى ، دون الإسناد أو التعويض. أضعه بموجبه في المجال العام. ((ملاحظة: هذا في الغالب لأولئك الذين يعملون لأصحاب العمل الذين يصعب عليهم حقًا مثل هذه الأشياء ، لا يهمني حقًا.)
\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]%