[Tex/LaTex] Switching from two- to one-column mode after loading the ftnright package

footnotestwo-column

The first part of my document is in two-column mode. I load the ftnright package in the preamble so that all footnotes in this part of the document will appear in the right-hand columns.

The second part of my document is in one-column mode. (I issue a \onecolumn command to switch back to one-column mode.)

A problem arises when I want to use footnotes in this one-column part of the document. My document won't compile; instead, I get an error message indicating that I am trying to use the ftnright package in one-column mode.

Is there a way to unload the ftnright package, or otherwise restrict it to operating only in the two-column part of my document — so that I can use footnotes after switching back to one-column mode?

Best Answer

I do not think this can be done with LaTeX 2e without Deep Meddling and possibly not at all.

The package documentation is pretty clear: the package involves rewriting internal LaTeX routines controlling output (page 2 section 2.2). This is why it requires two columns as a class feature or option (footnote 7 page 2). It therefore seems unlikely that you can mix the rewritten routines with regular routines in a single document without significant re-engineering, although LaTeX 3 promises greater flexibility (page 2 section 2.2).


If you are prepared to risk Deep Meddling - something which cannot be recommended - then you could - if you really insisted and genuinely pay no heed to the consequences - attempt something along the following sorely misguided lines.

Just remember that when your document breaks, you get to keep every one of the teeny-weeny itsty-bitsy pieces.

Caveat emptor...


Note that I set \@setmarks to \relax to allow compilation. I have no idea what this does so this is obviously an extremely foolish thing to do. Did I mention that this approach cannot possibly be recommended?

\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}

The result produces footnotes which look like this in the first part of the document:

part 1

and like this in the second:

part 2

which is significantly better than I expected, frankly.

Related Question