当使用该类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}