我希望子脚注能够自动完成(以便能够\footnote
在 中写入\footnote
)。通过使用这个答案我能够得到想要的结果。
但问题是脚注编号使用了另一个计数器。我希望子脚注与主脚注具有相同的计数器
我尝试过这个答案(期望结果相同)但没有成功。
最小示例
\usepackage{bigfoot}
\DeclareNewFootnote{default}
\DeclareNewFootnote{A}
\DeclareNewFootnote{B}
\MakeSortedPerPage{footnoteA}
\MakeSortedPerPage{footnoteB}
\makeatletter
\let\oldfootnote\footnote
\let\oldfootnoteA\footnoteA
\def\footnote{%
\refstepcounter{footnote}%
\kernel@ifnextchar[{\footnotenew}{\footnotenew[\c@footnote]}%
}
\def\footnotenew[#1]#2{%
\oldfootnote[#1]{\let\footnote\footnoteA#2}%
}
\def\footnoteA{%
\refstepcounter{footnoteA}%
\kernel@ifnextchar[{\footnotenewA}{\footnotenewA[\c@footnoteA]}%
}
\def\footnotenewA[#1]#2{%
\oldfootnoteA[#1]{\let\footnote\footnoteB#2}%
}
\makeatother
\begin{document}
Some text with a footnote
\footnote{%
First footnote%
\footnote{%
Second inner footnote%
\footnote{%
Third inner footnote%
}%
}%
}
Some more text
\end{document}
答案1
如果我正确理解了你的问题,这应该可以实现你想要的。但是,你有没有测试过之后是否还有另一个脚注。脚注的显示不会按照其编号的顺序进行。因为子脚注位于它们自己的单独组中。我认为在这种情况下使用它们自己的计数器可能会更好。此外,如果您想要另一层嵌套的脚注,则需要继续定义下一个\DeclareNewFootnote
(例如footnoteC
)。一般来说,我认为你不应该使用\footnote
来生成嵌套的脚注。最好使用\footnotemark
和\footnotetext
。
\documentclass{article}
\usepackage{bigfoot}
\DeclareNewFootnote{default}
\DeclareNewFootnote{A}
\DeclareNewFootnote{B}
\DeclareNewFootnote{C}
\MakeSortedPerPage{footnoteA}
\MakeSortedPerPage{footnoteB}
\MakeSortedPerPage{footnoteC}
\makeatletter
\let\oldfootnote\footnote
\let\oldfootnoteA\footnoteA
\let\oldfootnoteB\footnoteB
\def\footnote{%
\stepcounter{footnote}%
\kernel@ifnextchar[{\footnotenew}{\footnotenew[\c@footnote]}%
}
\def\footnotenew[#1]#2{%
\oldfootnote[#1]{\let\footnote\footnoteA#2}%
}
\def\footnoteA{%
\stepcounter{footnote}%
\kernel@ifnextchar[{\footnotenewA}{\footnotenewA[\c@footnote]}%
}
\def\footnotenewA[#1]#2{%
\oldfootnoteA[#1]{\let\footnote\footnoteB#2}%
}
\def\footnoteB{%
\stepcounter{footnote}%
\kernel@ifnextchar[{\footnotenewB}{\footnotenewB[\c@footnote]}%
}
\def\footnotenewB[#1]#2{%
\oldfootnoteB[#1]{\let\footnote\footnoteC#2}%
}
\makeatother
\begin{document}
Some text with a footnote
\footnote{%
First footnote%
\footnote{%
Second inner footnote%
\footnote{%
Third inner footnote%
}%
}%
}
Some more text\footnote{%
Another footnote%
\footnote{%
Another second inner footnote%
\footnote{%
Another third inner footnote%
}%
}%
}
\end{document}
编辑:根据您的评论:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{bigfoot}
\DeclareNewFootnote{default}
\DeclareNewFootnote{A}
\DeclareNewFootnote{B}
\DeclareNewFootnote{C}
\MakeSortedPerPage{footnoteA}
\MakeSortedPerPage{footnoteB}
\MakeSortedPerPage{footnoteC}
\makeatletter
\let\oldfootnote\footnote
\let\oldfootnoteA\footnoteA
\let\oldfootnoteB\footnoteB
\patchcmd{\MFL@makemark}{#2{#1}}{\setcounter{#1}{1}}{}{}
\renewcommand{\thefootnoteA}{\arabic{footnote}.\arabic{footnoteA}}
\renewcommand{\thefootnoteB}{\arabic{footnote}.\arabic{footnoteA}.\arabic{footnoteB}}
\def\footnote{%
\footnotenew%
}
\def\footnotenew#1{%
\oldfootnote{\let\footnote\footnoteA#1}%
}
\def\footnoteA{%
\footnotenewA%
}
\def\footnotenewA#1{%
\oldfootnoteA{\let\footnote\footnoteB#1}%
}
\def\footnoteB{%
\footnotenewB%
}
\def\footnotenewB#1{%
\oldfootnoteB{\let\footnote\footnoteC#1}%
}
\makeatother
\begin{document}
Some text with a footnote\footnote{%
First footnote%
\footnote{%
Second inner footnote%
\footnote{%
Third inner footnote%
}%
}%
}
Some more text\footnote{%
Another footnote%
\footnote{%
Another second inner footnote%
\footnote{%
Another third inner footnote%
}%
}%
}
\end{document}