`ragged2e` 和 `tcolorbox` 之间的干扰:居中粗体文本的额外间距

`ragged2e` 和 `tcolorbox` 之间的干扰:居中粗体文本的额外间距

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
  }

相关内容