我的文档的第一部分是双栏模式。我ftnright
在序言中加载了该包,这样文档这一部分的所有脚注都会出现在右侧栏中。
我的文档的第二部分处于单列模式。(我发出\onecolumn
命令切换回单列模式。)
当我想在文档的这一列部分使用脚注时,出现了一个问题。我的文档无法编译;相反,我收到一条错误消息,指出我正试图ftnright
在单列模式下使用该包。
有没有办法卸载 ftnright 包,或者限制它仅在我的文档的两列部分运行 - 以便我可以在切换回单列模式后使用脚注?
答案1
我认为,如果没有深度干预,使用 LaTeX 2e 无法做到这一点,甚至根本做不到。
软件包文档非常清楚:软件包涉及重写控制输出的内部 LaTeX 例程(第 2 页第 2.2 节)。这就是为什么它需要两列作为类功能或选项(第 2 页第 7 脚注)。因此,似乎不太可能在单个文档中混合重写的例程和常规例程,而无需进行重大的重新设计,尽管 LaTeX 3 承诺提供更大的灵活性(第 2 页第 2.2 节)。
如果您准备冒险进行深度干预(这是不推荐的),那么您可以 - 如果您真的坚持并且真正不顾后果 - 尝试以下严重误导的事情。
只要记住,当您的文件损坏时,您可以保留每一个微小的碎片。
买者自负...
请注意,我设置\@setmarks
为\relax
允许编译。我不知道这有什么用,所以这显然是一件极其愚蠢的事情。我有没有提到这种方法不可能被推荐?
\documentclass{article}
\makeatletter
\global\let\old@startcolumn\@startcolumn
\global\let\old@makecol\@makecol
\global\let\old@outputdblcol\@outputdblcol
\makeatother
\usepackage{ftnright,kantlipsum}
\begin{document}
\twocolumn
text\footnote{footnote}
\kant[1-3]
text\footnote{footnote}
\kant[4-5]
text\footnote{footnote}
\makeatletter
\global\let\@startcolumn\old@startcolumn
\global\let\@makecol\old@makecol
\global\let\@outputdblcol\old@outputdblcol
\global\let\@setmarks\relax
\makeatother
\onecolumn
\kant[6-8]
text\footnote{footnote}
\kant[9-10]
text\footnote{footnote}
\end{document}
结果在文档的第一部分产生了如下的脚注:
第二部分如下:
坦率地说,这比我预期的要好得多。