在序言中使用脚注文本之前声明

在序言中使用脚注文本之前声明

我想重复使用脚注。问题是它在里面\authors,有些解决方案不起作用。

我首先尝试固定脚包,但它提供了一个错误,并且该软件包已经 4 年没有更新了。

很棒的答案我发现 TeX Stackexchange 运行良好,但我有兴趣理解并创建一个简单的调整。

第一:它是如何工作的

\documentclass{article}

\newcommand{\setfoot}[2]{%
    \footnote{#2}%
    \newcounter{#1}%
    \setcounter{#1}{\value{footnote}}%
}

\newcommand{\getfoot}[1]{%
    \footnotemark[\value{#1}]%
}

\title{Comparing two solutions}

\author{Last1, A.\setfoot{unia}{University of Pedramburguer}\\ [email protected]\and
Last2, B.\getfoot{unia}\\ [email protected] \and
Last3, C.\getfoot{unia}\\ [email protected] \and
Last4, D.\setfoot{unib}{University of Martalface}\\ [email protected]}

\begin{document}

\maketitle

body...

\end{document}

当前解决方案

第二:我希望它如何工作

\documentclass{article}

\newcommand{\setfoot}[2]{%
    \footnote{#2}% <<<<<<<<<<<< error when you
    \newcounter{#1}%
    \setcounter{#1}{\value{footnote}}%
}

\newcommand{\getfoot}[1]{%
    \footnotemark[\value{#1}]%
}

\title{Comparing two solutions}

\setfoot{unia}{University of Pedramburguer} %<<<<<<<<<<< try to set it out
\setfoot{unib}{University of Martalface}    %<<<<<<<<<<< of begin document

\author{Last1, A.\getfoot{unia}\\ [email protected]\and
Last2, B.\getfoot{unia}\\ [email protected] \and
Last3, C.\getfoot{unia}\\ [email protected] \and
Last4, D.\getfoot{unib}\\ [email protected]}

\begin{document}

\maketitle

body...

\end{document}

因此,为了能够使用命令设置脚,\setfoot需要\begin{document}一些 TeX 魔法。对这个具体的例子有什么帮助吗?谢谢。

答案1

这更接近您的要求。请注意,这\maketitle会重置脚注计数器并更改\thefootnote使用星号等的定义。此外,作者是在环境内格式化的,您不能在任何环境中放置脚注。相反,它存储\footnotetext在全局宏中\@thanks以供以后扩展。

中的标签拼写错误\getfoot将产生?

\documentclass{article}

\title{Comparing two solutions}

\makeatletter
\newcommand{\setfoot}[2]{% #1=label, #2=footnote text
  \stepcounter{footnote}%
  \expandafter\xdef\csname fn@#1\endcsname{\thefootnote}% create global macro
  \protected@xdef\@thanks{\@thanks
    \protect\footnotetext[\the\c@footnote]{#2}}%
  \ignorespaces}
\newcommand{\getfoot}[1]% #1=label
  {\@ifundefined{fn@#1}{?}{\textsuperscript{\csname fn@#1\endcsname}}}
\makeatother

\author{\setfoot{unia}{University of Pedramburguer}
        \setfoot{unib}{University of Martalface}
Last1, A.\getfoot{unia}\\ [email protected]\and
Last2, B.\getfoot{unia}\\ [email protected] \and
Last3, C.\getfoot{unia}\\ [email protected] \and
Last4, D.\getfoot{unib}\\ [email protected]}

\begin{document}

\maketitle

body...

\end{document}

相关内容