如何自动引用报价的行号?

如何自动引用报价的行号?

我正在尝试找到一种方法来自动引用可能在多行上运行的引文的行号。

我正在使用该lineno包对文本的行进行编号,它还可以创建行标签\linelabel{},然后使用\ref{}相应的行号显示。但是,这仅在标签附加到单个单词时才有效,而不是可能包含多行的句子。是否有命令可以引用引文开头和结尾的行号?

答案1

一种可能的方法是给句子的开头和结尾设置标签并引用它。作为扩展,您可以定义一个命令来检查起始行号是否与结束行号相同,如果相同则打印单个数字,否则打印一个范围。

\getrefnumber可以使用来自包的命令从参考中提取数字,并使用来自包的命令refcount进行测试。\ifthenelseifthen

梅威瑟:

\documentclass{article}
\usepackage{lineno}
\usepackage{refcount}
\usepackage{ifthen}
\newcommand{\linerange}[2]{%
\ifthenelse{\equal{\getrefnumber{#1}}{\getrefnumber{#2}}}{%
line \ref{#1}%
}{%
lines \ref{#1}--\ref{#2}%
}%
}
\begin{document}
\linenumbers
\begin{quote}
I am using the "lineno" package \linelabel{starta}to number the lines
of a text and it also enables to create line labels \verb+\linelabel{}+
and then by using \verb+\ref{}+ the corresponding line number is
shown\linelabel{enda}. However this only works if the label is attached
to a single word, not a sentence that may run on several lines.
Is there a command to reference the line numbers of the beginning and
\linelabel{startb}the end\linelabel{endb} of a quote?
\end{quote}
See lines \ref{starta}, \ref{enda} and \ref{startb}, \ref{endb}.\\
See \linerange{starta}{enda} and \linerange{startb}{endb}.
\end{document}

结果:

在此处输入图片描述

相关内容