在回答这个问题时为小节添加下划线,我提供了一个依赖于该sectsty
包的答案(与使用该包的@GonzaloMedina 的答案相比titlesec
)。
最终,@GonzaloMedina 的答案更有帮助,因为 OP 也使用了行号,而且这个包和lineno
之间似乎没有不兼容的地方,而titlesec
ulem
是sectsty
、lineno
和之间明显存在联合不兼容性ulem
。
具体来说,至少当您使用提供的任何命令来sectsty
修改部分的外观时(例如,,,,,\allsectionsfont{}
\sectionfont{}
\subsectionfont{}
ETC。)结合 ulem
并且\underline
,出现了一个问题,导致文档无法编译。我一直无法弄清楚为什么会这样,更不用说是否有任何解决方法。
我最好奇的是为什么会发生这种情况(为了学习),但如果您也可以提供一种解决方法,那就太棒了。
这是一个将会崩溃的 MWE:
\documentclass[11pt]{article}
\usepackage[normalem]{ulem}
\usepackage{sectsty}
\subsectionfont{\normalfont\large\itshape\underline} % document compiles fine without this line and/or without the \underline command in this line
\usepackage{lineno}
\linenumbers % or without this line; both lines, however, cause the compilation to crash
\begin{document}
\section*{Materials and Methods}
\subsection*{Sampling}
\subsection*{A very long sectional heading title that will probably have to be split over two lines}
Lorem ipsum
\end{document}
错误信息如下:
./test-sectsty.tex:11: 不正确的 \prevdepth。\prevdepth
l.11 \subsection*{采样}
? ./test-sectsty.tex:11: 紧急停止。\prevdepth
l.11 \subsection*{采样}
文档确实sectsty
说明了以下内容(第 16 页):
该
sectsty
包通过盲目地重新定义各种分段命令来工作,因此任何要求 LaTeX 的分段命令与标准类中定义的完全一致的包在使用时都会遇到麻烦sectsty
。例如,该
fncychap
包重新定义了生成章节标题的代码。如果您使用fncychap
withsectsty
,则必须fncychap
在 之后加载sectsty
:\usepackage{sectsty} \usepackage{fncychap}
因此,我怀疑 的这个特定功能sectsty
与下划线的工作方式有关,是罪魁祸首。但是,相对于加载和发出由和 提供的节字体命令之一,更改lineno
(和) 的加载/发出顺序不会改变任何事情;代码仍然崩溃。\linenumbers
sectsty
sectsty
\underline
我的怀疑正确吗?如果不是,那到底是怎么回事?如果正确,您能否更详细地解释一下这些软件包之间的不兼容性?而且,如果您喜欢冒险(如果可能的话),解决不兼容性的方法是什么?