为什么 footmisc 包禁用了我的脚注字体设置?我想要无衬线字体的脚注,并且找到了使用 的方法\addtokomafont
,但我还想要一个使用包启用的悬挂缩进样式footmisc
。它们似乎不能很好地协同工作。
\documentclass[paper=6in:9in,10pt,twoside,pagesize=pdftex,openright]{scrbook}
%\usepackage[hang]{footmisc}
\addtokomafont{footnote}{\footnotesize\sffamily}
\begin{document}
this is text\footnote{this is the footnote in sans serif font}
\end{document}
上面的代码块将生成无衬线字体的脚注。如果取消注释该\usepackage
行,脚注段落的格式将更合适,但字体不再是无衬线字体。如何同时获得悬挂缩进格式和无衬线字体?
答案1
问题是在其重新定义中footmisc
包括,其等同于。然后它发出一个,因此您最终会得到默认字体系列中脚注大小的文本。如果是衬线字体,您将得到衬线字体。如果是无衬线字体,您将得到无衬线字体。这通常是您想要的:希望脚注文本排版在与正文不同的系列中根本不常见。\reset@font
\@footnotetext
\normalfont
\footnotesize
至少有两个解决方案。一个使用 Koma 已经提供的设施,如果你不需要的话,这绝对是更干净的解决方案footmisc
。另一个修补\@footnotetext
命令后 footmisc
已将其重新定义为直接插入对 sans 系列的调用。(您可以将其设置为使用 Koma 的字体命令,但如果您决定使用 serif,则删除补丁会更容易。)
Koma 解决方案
\documentclass[paper=6in:9in,10pt,twoside,pagesize=pdftex,openright]{scrbook}
\addtokomafont{footnote}{\footnotesize\sffamily}
\deffootnote{1.5em}{1em}{% modified example from page 83
\makebox[1.5em][l]{\textsuperscript{\thefootnotemark}}}
\begin{document}
this is text\footnote{this is the footnote in sans serif font but it needs to be a lot longer than it was if the actual effect is to be clearly illustrated}
\end{document}
修补footmisc
这需要etoolbox
进行修补。控制台输出和/或日志文件将记录修补是否成功。
\documentclass[paper=6in:9in,10pt,twoside,pagesize=pdftex,openright]{scrbook}
\usepackage[hang]{footmisc}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@footnotetext}{\reset@font}{\reset@font\sffamily}{\typeout{Footnotes patched successfully.}}{\typeout{Footnote patching failed.}}
\makeatother
\begin{document}
this is text\footnote{this is the footnote in sans serif font}
\end{document}
请注意,从排版角度来说,我绝对不推荐这样做。我认为,如果正文是衬线字体,而脚注是无衬线字体,看起来就很不对劲。(那么应该如何处理标记呢?它们应该是无衬线字体以匹配注释,还是衬线字体以匹配文本?或者,为了混淆人们,应该在两个地方以不同的方式排版相同的标记?)但是,本网站并不关心排版美学。