Stackengine 居中问题

Stackengine 居中问题

我在使用堆叠使文本居中时遇到问题stackengine。我的 MWE 是:

\documentclass{article}
\usepackage{stackengine}
\begin{document}
\Shortstack[c]{Cognicion abstractiva}
\end{document}

结果是这样的: 在此处输入图片描述

(我用 Adob​​e Acrobat Pro 测量了距离。)

如您所见,两个文本无法居中。我在使用的所有情况下都注意到了这种情况\Shortstack。这是正常的吗?

答案1

我认为您只是没有考虑字符的边距,因此用于居中的实际字符宽度包括一些空白。TeX 没有关于字形形状的信息,它无法分辨指定字符宽度的哪些部分是黑色。

在此处输入图片描述

\documentclass{article}
\usepackage{stackengine}
\begin{document}

$\left|\Shortstack[c]{Cognicion abstractiva}\right|$


$\left|\Shortstack[c]{\frame{Cognicion} \frame{abstractiva}}\right|$
\end{document}

答案2

这个例子应该可以消除对于要测量什么的任何疑问;请注意,在前两种情况下,发际线完美地叠加在一起,表明没有问题\Shortstack

另一方面,您测量的差异小于 0.4pt,太小而无法真正察觉:这取决于字符的边界框。

\documentclass{article}
\usepackage{color}
\usepackage{stackengine}
\newcommand{\hairline}[1][black]{%
  \leavevmode\kern-0.05pt
  \smash{\color{#1}\vrule height 20pt depth 20pt width 0.1pt}%
  \kern-0.05pt
}
\begin{document}
\centering
\Shortstack[c]{\hairline{}XXXXXX\hairline{} XXXXXXXXXX}

\hairline{}XXXXXX\hairline{}\\ XXXXXXXXXX

\vspace{20pt}

\Shortstack[c]{%
  \hairline[red]Cognicion\hairline[red]
  \hairline[green]abstractiva\hairline[green]%
}
\end{document}

在此处输入图片描述

相关内容