我有一个 LaTeX 文档,其中包含一个主文件和许多子文件。由于我们正在编写文档,因此我们在各处都使用代码片段。我如何定义列表并在整个文档中使用它?
定义样本:
\lstset{language=[Objective]C, breakindent=40pt, breaklines}
\lstset{numbers=left, numberstyle=\tiny, numbersep=5pt}
\lstset{commentstyle=\textit}
编辑:
我将其更改为:
\lstnewenvironment{ObjC}
{ \lstset{
language=[Objective]C,
...
}
}
并想像这样使用它:
\begin{ObjC}
id foo = nil;
\end{ObjC}
怎么了?
答案1
就我个人而言,我更喜欢定义自定义环境,这样就不会说:
\begin{listing}
...
\end{listings}
您可以使用自己的环境。例如,对于LaTeX/TeX
代码,我定义了三个环境,每个环境都有细微的变化(teX
、teXX
和teXXX
)。我还定义了一个名为 的宏\emphasis
来添加需要强调的单词:
\newcommand\emphasis[2][red]{\lstset{emph={write,void,writeln,#2},
emphstyle={\ttfamily\textcolor{#1}}}}%
以下是代码:
%% Emphasis
\renewcommand{\ttdefault}{cmtt} % prefer old tt font
\newcommand\emphasis[2][red]{\lstset{emph={write,void,writeln,#2},
emphstyle={\ttfamily\textcolor{#1}}}}%
\lstnewenvironment{teXXX}[1][]
{\lstset{language=[LaTeX]TeX}\lstset{%
escapeinside={{(*@}{@*)}},
breaklines=true,
framesep=5pt,
basicstyle=\ttfamily,
showstringspaces=false,
keywordstyle=\ttfamily\textcolor{blue},
stringstyle=\color{orange},
commentstyle=\color{black},
rulecolor=\color{gray!10},
breakatwhitespace=true,
showspaces=false, % shows spacing symbol
xleftmargin=0pt,
xrightmargin=5pt,
aboveskip=0pt, % compact the code looks ugly in type
belowskip=0pt, % user responsible to insert any skips
backgroundcolor=\color{gray!15}, #1
}}
{}
代码太长,无法转换为 MWE,但这里有一张图片。带有代码的页面往往看起来很空。为了弥补这一点,我在中间使用了两列解释性文字。我倾向于使用很少的颜色,因为我觉得它们会分散注意力。为了强调,我通常使用与其他关键字相同颜色的粗体字体。在下面的图片中,我将其改为红色,以便在缩小扫描时可见。