tufte-book 和 gb4e 以及脚注/旁注

tufte-book 和 gb4e 以及脚注/旁注

当使用该类tufte-book(我想还有其他tufte类)时,脚注/侧注似乎会在您加载 gb4e 包时立即中断。

这可以正确编译,并按设计显示侧注。

\documentclass{tufte-book}
\begin{document}
This is text.\footnote{This is a sidenote.}
\end{document}

这会引发两个错误,一个是关于“缺失数字,视为零”,另一个是关于非法计量单位。旁注显示不正确 - 有一个 [ 作为旁注放在一边,其余的放在正文中,前面有一个 ]。

\documentclass{tufte-book}
\usepackage{gb4e}
\begin{document}
This is text.\footnote{This is a sidenote.}
\end{document}

这是怎么回事? 尝试gb4e以与 不兼容的方式重新定义脚注tufte-latex? 由于gb4e与脚注无关,表面上看,我很困惑为什么会有冲突。 有没有办法解决这个问题并gb4e在文档中使用tufte-book,或者这是否需要重写一个或另一个包?(或者不值得付出努力?)

答案1

gb4e包确实修改了脚注代码,以便正确地对脚注中的示例进行编号。通常这不会干扰其他脚注修改,但tufte类会做出相当大的更改。因此,您需要重新定义包含修改的tufte脚注gb4e

\documentclass{tufte-book}
\usepackage{gb4e}
\noautomath
\makeatletter
\renewcommand\@footnotetext[2][0pt]{%
  \marginpar{%
    \hbox{}\vspace*{#1}%
    \def\baselinestretch {\setspace@singlespace}%
    \reset@font\footnotesize%
    \@tufte@margin@par% use parindent and parskip settings for marginal text
    \vspace*{-1\baselineskip}\noindent%
    \protected@edef\@currentlabel{%
       \csname p@footnote\endcsname\@thefnmark%
    }%
    \color@begingroup%
       \@noftnotefalse\setcounter{fnx}{0}%
       \@makefntext{%
         \ignorespaces#2%
       }%
    \color@endgroup%
  }%
\@noftnotetrue}%
\makeatother
\usepackage{lipsum}
\begin{document}
\begin{exe}
\ex A regular example
\end{exe}
\lipsum[1]\footnote{A footnote\begin{exe}\ex A footnoted example\end{exe}}
\begin{exe}
\ex A regular example
\end{exe}
\lipsum[2]\footnote{A footnote\begin{exe}\ex A footnoted example\end{exe}}
\end{document}

代码输出

相关内容