我在互联网上找到了这个代码片段,它用于在灰框内生成文本区域。
\newcommand\greybox[1]{%
\vskip\baselineskip%
\par\noindent\colorbox{lightgray}{%
\begin{minipage}{\textwidth}#1\end{minipage}%
}%
\vskip\baselineskip%
}
我这样使用它:
Normal text.
\greybox{Surrounded text.
Even on multiple lines}
产生如下输出:
现在,我需要将一些源代码放入这个灰色框中,我打算使用verbatim
它来这样做。问题是:verbatim
转义%
类似字符,但当它位于(如上所定义)内时,\greybox
它的行为不正确。百分号被解释为注释。
\greybox{
\begin{verbatim}
code with a % inside
\end{verbatim}
}
显然,如果我做相反的事情,即将\greybox
其逐字放入其中,则所有内容都会被转义并且\greybox
不会被解释。
有什么解决办法吗?listings
如果有必要,我不介意使用或其他软件包。
答案1
您提到该listings
软件包是可以接受的。这是我用于 bash 命令的一个示例。
\usepackage{listings} %for source code format
\lstset{basicstyle=\ttfamily\scriptsize}
\lstdefinestyle{command}{backgroundcolor=\color{lightgray}, frame=none}
在这里我定义
- 全局环境的基本样式:列表将采用脚本大小的字体大小,并采用等宽字体系列。
- 样式名称为“command”,背景为浅灰色,并且列表外没有框架。
使用列表时,
\begin{lstlisting}[style=command, caption="choose makefile"]
# cp makef.linux Makefile
\end{lstlisting}
风格看起来像
该listings
包还可以定义语言风格并识别注释,例如 c-style、python、... 查看列表LaTeX/源代码清单。