【发布时间】:2010-04-09 13:11:00
【问题描述】:
我想知道如何使用 LaTeX 的 listings 包来格式化 Objective C 代码?我知道该语言支持 C (Objective) ,那么如何在 \lstset language 选项中进行设置?
谢谢
【问题讨论】:
我想知道如何使用 LaTeX 的 listings 包来格式化 Objective C 代码?我知道该语言支持 C (Objective) ,那么如何在 \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
【讨论】:
\lstset{language=[Objective]C}。
4.10 Margins and line shape 中解释了换行符。我调整了我的例子。下次请先阅读已经建议的内容。谢谢。
虽然这个答案没有回答 OP 的问题本身,但我认为其他寻找 Objective-C listings 相关信息的人会偶然发现这个问题。
下面是用于 Objective-C 2.0、GNU99 和 ANSI C99 的 listings \lstdefinelanguage。虽然listings 包括对 C 和 Objective-C 的定义,但这些定义是针对旧的 C89 标准和 Objective-C 1.0 的。下面的版本添加了C99,在C99中添加了GNU99,然后在GNU99中添加了Objective-C(2.0)。
如果您对关键字使用不同于“正常”字体样式的字体样式,您可能只会看到差异。
我是以下代码的作者(ANSI C99 定义除外,它源自listings ANSI C 并针对 ANSI C99 进行了修改)。您可以以任何您希望的方式使用它,包括将其合并到其他作品中,无需署名或补偿。我特此将其置于公共领域。 (注意:这主要是为那些为那些对这些事情真的很挑剔的雇主工作的人工作的,我真的不在乎。)
【讨论】: