将单独的脚注合并到文本中

将单独的脚注合并到文本中

文本(由其他人撰写)具有编号的脚注插入点:

Text text1) text text text2) text text text.3) Text ... 

实际的脚注文本位于第二个文件中:

1) text of note one
2) text of note two
3) text of note three
...

手动将每个注释放在其所属的位置会很麻烦;遗憾的是,使用尾注代替脚注不是一个选择。使用\footnotemark[num]\footnotetext[num]可以给我正确的编号,但不能在页面上正确分布。

我想知道是否可以为每个注释定义一个编号的宏(例如,\newcommand{\sepfootnote1}{\footnote{text of note one}}并在文本中的适当位置调用每个宏,但由于宏名称可能不包含数字,因此使用简单的 RegEx 是不可能的。

还有其他方法可以让 LaTeX 完成这些繁琐的工作吗?

答案1

如果进行文本替换不是问题,您可以在文本和脚注文件中的\printfootnote所有表达式(例如1)或)前面添加;也可以在每个脚注文本的末尾添加。然后2)\definefootnote\endfootnote

\def\printfootnote#1){\footnote{\csname extfootnote#1\endcsname}}
\def\definefootnote#1) #2\endfootnote{%
  \expandafter\def\csname extfootnote#1\endcsname{#2}}
\input{footnotefile}

footnotefile.tex包含脚注文本的文件在哪里)应该可以解决问题,至少如果脚注文件不是特别大的话。

这是main.tex

\documentclass[a4paper]{article}

\def\printfootnote#1){\footnote{\csname extfootnote#1\endcsname}}
\def\definefootnote#1) #2\endfootnote{%
  \expandafter\def\csname extfootnote#1\endcsname{#2}}
\input{footnotefile}

\begin{document}
Text text\printfootnote1) text text text\printfootnote2) text text text.\printfootnote3) Text
\end{document}

下面是footnotefile.tex

\definefootnote1) First footnote\endfootnote
\definefootnote2) Second footnote\endfootnote
\definefootnote3) Third footnote\endfootnote

注意:使用\def不是 \newcommand,因为这个技巧涉及分隔参数。

相关内容