我正在使用该listings
包将列表合并到我的论文中。
不过,我想用一个小的圆形数字来引用代码的各个部分(比如说用白色表示的数字 1,周围有一个黑色实心小圆圈),然后在列表之外的主体中通过重复使用小图形和一些解释性文字来引用它。
我不确定如何在这里放置我的代码,但本质上它只是其中的代码:
\begin{lstlisting}[caption=...]
this is some code here...
\end{lstlisting}
因此,总而言之,这是一种listing
在代码中引用某个部分并在主体中使用该引用的方法。在上面的例子中,用“some”表示一个小的指示符,然后能够在主体中引用它。
如果我听起来很困惑,请原谅。我知道我想做什么,但在清单文档中找不到任何方法可以做到这一点。
答案1
默认情况下,该listings
包似乎使用行号本身对标签进行编号(即使行号被隐藏!),这是一个优雅的选项。因此,我建议使用行号作为参考,而不是增加更多噪音。
在代码中,我展示了三种方法 1) 使用行作为参考,2) 使用脚注和 3) 也许您想要的是个性化标签。
\documentclass{article}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
Bla bla
\newcounter{codecounter}
\begin{lstlisting}[escapeinside={(*}{*)}, numbers=right]
/* Hello World program */
#include<stdio.h>
main()
{
printf("Hello World"); (*\label{code:printf}*)
double a = b (*\textcolor{red}{\footnote{This is a variable $b$}}*) + c;
double d = b (*\textcolor{red}{(\refstepcounter{codecounter}\thecodecounter\label{code:b})}*) + c;
}
\end{lstlisting}
We produce the output in line \ref{code:printf}. Or concentrate on \textcolor{red}{(\ref{code:b})}.
\end{document}
We produce the output in line \ref{code:printf}.
\end{document}
数字可以显示在右侧numbers=right