显示数学模式中的多个脚注

显示数学模式中的多个脚注

我在数学模式的显示样式中使用方程内的footnotemarkfootnotetext。我已经知道,为了使其工作,您需要在环境外部写入,但问题是我在环境中footnotetext有多个,但每个都认为它链接到最后一个。我尝试在每个中指定数字,但这似乎只会改变显示的数字,而不是链接到相应标记。我也尝试过修改出现之前的计数器,但同样,这只会改变显示的数字!footnotemarkfootnotetextfootnotemarkfootnotetext[n]footnotemarkfootnotefootnotetext

例如,

 \documentclass{article}
 \usepackage[margin=2.5cm]{geometry}
 \usepackage[spanish]{babel}
 \usepackage{amssymb}
 \usepackage{mathtools}
 \usepackage{amsthm}
 \usepackage{mathrsfs} 
 \usepackage[shortlabels]{enumitem}
 \usepackage{relsize}
 \usepackage{marvosym} 
 \usepackage{graphicx} 
 \graphicspath{ {./images/} } 
 \usepackage[official]{eurosym}

 \usepackage[hang]{footmisc} % used only for hanged style
 \usepackage{fnpct}% fix multiple footnotes separator
 \usepackage[colorlinks=true]{hyperref}% hyperlinks to footnotes
 \hypersetup{allcolors=blue}

 \usepackage{footnotebackref}% hyperlinks to text, loads hyperref


 \title{Super lorem ipsum}

 \author{}
 \date{}

 \setlength{\parskip}{10pt plus 1pt minus 1pt}
 \renewcommand{\baselinestretch}{1.2}

 \makeatletter
 \LetLtxMacro{\BHFN@Old@footnotemark}{\@footnotemark}

 \renewcommand*{\@footnotemark}{%
    \refstepcounter{BackrefHyperFootnoteCounter}%
    \xdef\BackrefFootnoteTag{bhfn:\theBackrefHyperFootnoteCounter}%
    \label{\BackrefFootnoteTag}%
    \BHFN@Old@footnotemark}
 \makeatother

 \makeatletter 
      \renewcommand\@makefntext[1]{%
          \renewcommand\@makefnmark{%
           \mbox{{\normalfont%
             \hyperref[\BackrefFootnoteTag]{\@thefnmark}}}.}%
               \BHFN@OldMakefntext{#1}}%
 \makeatother

  \begin{document}

   \maketitle

 \[1=1\footnotemark\Rightarrow 2=2\footnotemark\Rightarrow 3=3\footnotemark\]

 \footnotetext{This should be linked to 1=1}
 \footnotetext{This should be linked to 2=2}
 \footnotetext{This is linked, along with the other footnotes, to 3=3}

\end{document}

有没有办法指定或更改标记计数器,以便将 的第一个实例footnotetext链接到环境中 的第一个实例?如果需要的话,footnotemark我愿意对 的每个实例都这样做!提前祝你好运。footnotetext

答案1

\footnotemark好吧,和之间的脚注链接\footnotetext很难 ;-)。只要你有一排\footnotemark超链接,名字就会松散。

您可以尝试使用某种明确的标签:

\documentclass{article}
\usepackage{hyperref}
\usepackage{lipsum}
\makeatletter
\ExplSyntaxOn
\newcommand\storefnmark[1]
 { 
   \tl_new:c{g__darsen_fnmark.#1_tl}%
   \tl_gset:cx{g__darsen_fnmark.#1_tl}{{\Hy@footnote@currentHref}{\int_use:N\c@footnote}}
 }
  
\newcommand\restorefnmark[1]
 {
   \tl_gset:Nx\Hy@footnote@currentHref
    {\exp_last_unbraced:Nv\use_i:nn {g__darsen_fnmark.#1_tl}}
   \setcounter{footnote}{\exp_last_unbraced:Nv\use_ii:nn {g__darsen_fnmark.#1_tl}}
 }  
\ExplSyntaxOff
\makeatother
\begin{document}
\footnote{a}\quad \footnotemark\storefnmark{b}\quad \footnotemark\storefnmark{c}
\lipsum[1]
\footref{fn:b}

\restorefnmark{b}\footnotetext{\label{fn:b}b}%
\restorefnmark{c}\footnotetext{c}
\end{document}

作为替代方案,您可以尝试新的输出例程代码,它会尝试自动跟踪。但请注意,它还不兼容所有东西(例如,它目前会因 footmisc 的挂起选项而出错):

\DocumentMetadata{testphase={new-OR}}

\documentclass{article}
\usepackage{hyperref}
\usepackage{lipsum}
\begin{document}
\footnote{a}\quad \footnotemark\quad \footnotemark
\lipsum[1]
\footref{fn:b}

\addtocounter{footnote}{-1}\footnotetext{\label{fn:b}b}%
\stepcounter{footnote}\footnotetext{c}
\end{document}

我没有尝试使用您的 backref 代码,我个人不建议这样做。它无法处理与脚注相关的多个标记的情况。最好使用 pdf 查看器的按键返回。

相关内容