有人可以告诉我在 LaTeX 中显示源代码的正确方法吗?
我想要显示以下 PHP 代码:
$id = addslashes($_GET['id']);
我尝试按如下方式执行此操作,但收到有关尚未引用的标签的错误:
\begin{lstlisting}
$id = addslashes($_GET['id']);
\label{phpheg}
\end{lstlisting}
答案1
正如所述文档包的listings
,您必须在环境选项中定义caption
和。这是必需的,因为其中的任何文本都是排版的,因此您的代码会打印在 PDF 中,而不是将其作为 LaTeX 命令调用。label
lstlisting
lstlisting
\label{phpheg}
\documentclass{article}
\usepackage{listings}
\begin{document}
See Listing~\ref{phpheg} for details.
\begin{lstlisting}[caption={PHP Code},label=phpheg]
$id = addslashes($_GET['id']);
\end{lstlisting}
More text.
\end{document}
注意:正如 Werner 在其评论中所说,一切\begin{lstlisting}
和之间\end{lstlisting}
被打印,因此缩进的代码也是排版缩进的。作为一种解决方法,您可以(并且应该)编写没有任何缩进的列表(如上所示)。
正如 MaxNoe 所建议的,您可以使用该lstautogobble
包作为一种解决方法:只需在设置中添加\usepackage{autogobble}
和设置即可。autogobble=true
lstlistings