我正在尝试使用该ulem
包来强调章节标题,同时仍然能够自动换行:
\documentclass{scrartcl}
\usepackage[normalem]{ulem}
\begin{document}
\addtokomafont{section}{\uline}
\section{A section title so long that it causes a line break. A section title so long that it causes a line break.}
\end{document}
这就像预期的那样。一旦我添加了hyperref
包,自动换行似乎就被禁用了,例如
\documentclass{scrartcl}
\usepackage[normalem]{ulem}
\usepackage{hyperref}
\begin{document}
\addtokomafont{section}{\uline}
\section{A section title so long that it causes a line break. A section title so long that it causes a line break.}
\end{document}
产生章节标题的超满行。
如果删除,\addtokomafont{section}{\uline}
换行符又会回来,但当然不再有下划线了......
如何实现启用自动换行的下划线章节标题?
注意:我知道不应该在章节标题中使用下划线,但这不是我的决定。
注2:对于那些抱怨使用下划线的人:如果我使用删除线\sout
而不是,也会出现此问题\uline
,这在文档的编辑过程中绝对有用。
答案1
这要求所有章节标题都使用可选参数,但至少可以满足您的要求。
\documentclass{scrartcl}
\usepackage[normalem]{ulem}
\usepackage{hyperref}
\renewcommand\othersectionlevelsformat[3]{%
\ifnum\pdfstrcmp{#3}{\thesection}=0
\uline{#3\autodot\enskip}%
\else
#3\autodot\enskip
\fi
}
\begin{document}
\section
[A section title so long that it causes a line break.
A section title so long that it causes a line break.]
{\uline{A section title so long that it causes a line break.
A section title so long that it causes a line break.}}
\subsection{Whatever}
\end{document}
必须使用一些技巧来为章节编号加下划线,但不要对小节执行相同的操作。
答案2
\uline
在标题本身中使用可选参数和:
\documentclass{scrartcl}
\usepackage[normalem]{ulem}
\usepackage{hyperref}
\begin{document}
\section[A section title so long that it causes a line break. A section title so long that it causes a line break.]
{\uline{A section title so long that it causes a line break. A section title so long that it causes a line break.}}
\end{document}