使用 cleveref 引用 minted 环境中的源代码行

使用 cleveref 引用 minted 环境中的源代码行

我想引用minted环境中的线条(已解决这里对于常规\ref),使用 cleveref。

梅威瑟:

% !TEX TS-program = arara
% arara: pdflatex: { shell: yes }
% arara: pdflatex: { shell: yes }

\documentclass{article}
\usepackage{minted}
\usepackage{cleveref}

\begin{document}
\section{First section}

\begin{minted}[linenos=true, mathescape]{c}
int i = 0;
int j = 1; // label $\label{ln:unreachable1}$
\end{minted}

Test with ref: \ref{ln:unreachable1}

Test with cref: \cref{ln:unreachable1}

\end{document}

给予

在此处输入图片描述

即包含部分而不是“行 $number”。

答案1

尽管无法直接使其工作,但有一个解决方法:

\newcommand{\Vlabel}[1]{\label[line]{#1}\hypertarget{#1}{}}
\newcommand{\lref}[1]{\hyperlink{#1}{\FancyVerbLineautorefname~\ref*{#1}}}

用 创建标签,\Vlabel{label}然后使用\lref{label}。我知道,这并不比手动编写链接好多少。至少,超链接可以正常工作。

使用[line],我可以cleveref打印出“行”而不是部分,但引用仍然是错误的。

该解决方案基于以下讨论http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2008-12/msg00075.html

相关内容