我已经了解了如何将逐字文本添加到脚注中:如何获取脚注中的逐字文本?
我想做的是相反的,在某个verbatim
部分包含脚注。我使用类memoir
来listings
逐字逐句地添加部分和perpage
脚注。脚注应该像普通脚注一样出现在页面底部。我不介意脚注符号/上标(不确定技术术语)是文本还是正常样式。
答案1
listings
提供了在列表内转为 LaTeX 的可能性,请参阅第 5.12 节转至 LaTeX手册中的详细信息。基本思想是设置一个转义符切换到 LateX 并转回:
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[basicstyle=\ttfamily,columns=fullflexible,gobble=2,escapechar=ß]
helloß\footnote{test}ß world
\end{lstlisting}
\end{document}
除了escapechar=<tokens>
设置一个或多个字符<tokens>
来开始和结束转义符外,您还可以使用escapeinside={<tokens1>}{<tokens2>}
或(escapebegin=<tokens1>,escapeend=<tokens2>
如果您想要两个不同的字符/字符串<tokens1>
和<tokens2>
作为开始和结束)。<tokens1>
并且<tokens2>
也可以是相同的标记列表。(测试表明,如果<tokens>
长度超过一个标记,它不能只包含相同的标记——不过,我还没有确定这种行为背后的明确模式,手册似乎也没有提到这一点。)
答案2
这是不使用软件包的版本(即,在普通verbatim
环境中工作)。我?
激活了(或您选择的任何字符),并使用!
(或您选择的任何字符)作为分隔符。
使用此语法,?!My footnote!
相当于\footnote{My footnote}
。
\documentclass{article}
\textheight=1.5in\relax% FOR THIS MWE ONLY
\begin{document}
{\catcode`?=\active
\def?!#1!{\footnote{#1}}
\begin{verbatim}
This is a?!My footnote! test, and another?!another footnote!;
And now for some more?!yet another footnote! here.
Finally, the last one?!final footnote! here.
\end{verbatim}
}
\end{document}
答案3
您可以使用该verbatim
包来定义一个新环境,该环境定义一个字符来括住脚注文本。
\documentclass{article}
\usepackage{verbatim}
\textheight=3cm % just not to waste space
\newcommand{\vfchar}[1]{%
% the usual trick for using a "variable" active character
\begingroup\lccode`~=`#1 \lowercase{\endgroup\def~##1~}{%
% separate the footnote mark from the footnote text
% so the footnote mark will occupy the same space as
% any other character
\makebox[0.5em][l]{\footnotemark}%
\footnotetext{##1}%
}%
\catcode`#1=\active
}
\newenvironment{fverbatim}[1]
{\verbatim\vfchar{#1}}
{\endverbatim}
\begin{document}
\begin{fverbatim}{?}
Some verbatim and a footnote?Text of the footnote? here
Another?Text? and let's see the alignment
is good enough
\end{fverbatim}
\end{document}