tcolorbox
当使用居中粗体文本时,如果额外加载[halign upper=center]
包,则会出现额外的水平间距。ragged2e
我猜这是无意的行为。——是否可以轻松规避它?
\documentclass{scrartcl}
\usepackage{ragged2e}% <- comment this for normal functioning
\usepackage{tcolorbox}
\begin{document}
\begin{center}
\bfseries centered bold text
\end{center}
\begin{tcolorbox}
\bfseries centered bold text
\end{tcolorbox}
\begin{tcolorbox}[halign upper=center]
\bfseries centered bold text
\end{tcolorbox}
\end{document}
答案1
ragged2e 挂接到字体选择中,并将其设置\spaceskip
为 0pt。这将覆盖 tcolorbox 的设置。0pt\spaceskip
表示使用正常的单词间空间,并且在此上下文中,此空间被拉伸。
本地解决方法是将其重置\spaceskip
为 tcolorbox 的值:
\documentclass{scrartcl}
\usepackage{ragged2e}% <- comment this for normal functioning
\usepackage{tcolorbox}
\begin{document}
\begin{tcolorbox}[halign upper=center]
\bfseries centered bold text
\end{tcolorbox}
\begin{tcolorbox}[halign upper=center]
\bfseries\spaceskip0.3333em\relax centered bold text
\end{tcolorbox}
\end{document}
更好的解决方案可能是如果 ragged2e 的所有命令都处于活动状态,则它不执行任何操作(如文档所述):
\makeatletter
\renewcommand{\@raggedtwoe@everyselectfont}{%
\if@raggedtwoe@spaceskip
\ifdim\fontdimen\thr@@\font=\z@\relax
\spaceskip\z@
\else
\spaceskip\fontdimen\tw@\font
\fi
\else
%\spaceskip\z@ %removed
\fi
}