我经常需要将 C 代码放入我的文档中,因此我定义了,
\newcommand{\Ccode}[1]{\lstinputlisting[backgroundcolor=\color{gray!5},caption=\texttt{\lstname},language=C]{C/#1}}
在我的文档序言中。我有一个名为 的目录C
,里面有我所有的C
源代码,所以我只需用这个将这些代码导入到我的文档中,
\Ccode{screen_buffer.c}
现在,我想在我的文档中使用和引用我的一段代码\label{}
,\ref{}
但我不知道把放在哪里\label{}
。那么,如果可能的话,我该如何交叉引用我的代码呢?
编辑:我的文件是
\documentclass[11pt]{book}
\title{Computational Physics}
\author{Ayatana}
\usepackage{listings, xcolor}
\newcommand{\Ccode}[1]{
\lstinputlisting[backgroundcolor=\color{gray!5},
caption=\texttt{\lstname},language=C]{C/#1}
}
\renewcommand{\lstlistingname}{Code}
\lstset{
frame=single,
breaklines=true,
numbers=left,
numberstyle=\color{gray}\small\texttt,
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false
captionpos=b,
}
\begin{document}
The \texttt{Hello World} code in C programming language goes like this,
\Ccode{hello.c}
\end{document}
现在我想使用 引用上面的代码\ref{}
。那么,我应该把 放在哪里\label{}
呢?
答案1
标签可以使用label=...
。我建议使用可选参数来\Ccode
指定标签(#2 适用于外部代码文件)
\documentclass[11pt]{book}
\title{Computational Physics}
\author{Ayatana}
\usepackage{listings, xcolor}
\newcommand{\Ccode}[2][]{
\lstinputlisting[backgroundcolor=\color{gray!5},
caption=\texttt{\lstname},language=C,#1]{#2}
}
\renewcommand{\lstlistingname}{Code}
\lstset{
frame=single,
breaklines=true,
numbers=left,
numberstyle=\color{gray}\small\texttt,
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false
captionpos=b,
}
\begin{document}
The \texttt{Hello World} code in C programming language goes like this,
\Ccode[label={myhello}]{hello.c}
In listing \ref{myhello} we see
\end{document}