\hrule 和 \vrule 的定位

\hrule 和 \vrule 的定位

我尝试用 4 条规则构造一个符号,一条水平的和三条垂直的。 \showoutput为我提供了所有规则的正确尺寸(见下文)。但是,水平的在 PostScript 和 PDF 中不知何故不规则地向左或向右轻微移动。给定四个维度\@omwd(所需宽度)、\@omht(所需高度)、\@omhtn(水平线上方部分的所需高度)、\@omhtp (水平线下方部分的所需高度),其中\@omht= \@omhtp+ \@omhtn;我正在使用此代码:

\documentclass{article}

\title{Testing}
\author{Michael Nüsken}

\begin{document}

\showoutput\fboxsep=0pt

\makeatletter
\newdimen\@omwd 
\newdimen\@omht
\newdimen\@omhtn
\newdimen\@omhtp
\newdimen\@roundlinewidth
\@omwd=3.72299pt
\@omht=7.05666pt
\@omhtn=5.57127pt
\@omhtp=1.48538pt
\@roundlinewidth=0.438pt
%
\def\Y{%
  \vbox to\@omht{\hsize=\@omwd%
    \hbox to\@omwd{%
      \hfil
      \vrule\@width\@roundlinewidth\@height\@omhtn\@depth\z@
      \hfil
    }%
    \kern-.5\@roundlinewidth% overlap vertical and horizontal lines
    \hrule\@width\@omwd\@height\@roundlinewidth\@depth0\@roundlinewidth
    \kern-.5\@roundlinewidth% overlap vertical and horizontal lines
    \hbox to\@omwd{%
      \vrule\@width\@roundlinewidth\@height\@omhtp\@depth\z@
      \hfil
      \vrule\@width\@roundlinewidth\@height\@omhtp\@depth\z@
    }%
  }%
}
\makeatother

Y\Y

\begin{itemize}
\item Y\Y
\end{itemize}

\end{document}

我还观察到,甚至\fbox在它的角落里也没有正确匹配的规则。

例如我获得:

....\vbox(7.05666+0.0)x3.72299
.....\hbox(5.57127+0.0)x3.72299, glue set 1.6425fil
......\glue 0.0 plus 1.0fil
......\rule(5.57127+0.0)x0.438
......\glue 0.0 plus 1.0fil
.....\kern -0.219
.....\rule(0.438+0.0)x3.72299
.....\kern -0.219
.....\hbox(1.48538+0.0)x3.72299, glue set 2.84698fil
......\rule(1.48538+0.0)x0.438
......\glue 0.0 plus 1.0fil
......\rule(1.48538+0.0)x0.438

\rule(0.438+0.0)x3.72299似乎稍微向左或向右移动了。然而,这种情况并不发生在页面上的所有位置!???

这是 TeX 的一个 bug 吗?如何修复或绕过它?请不要告诉我这是一个舍入问题...

答案1

我没有得到“不稳定”的行为。但是,有一种更好的方法来绘制符号,使其具有与 Y 相同的高度;我在当前字体中将宽度设置为 .5em,并将两部分之间的比例设置为 1:3

\documentclass{article}
\usepackage{amsmath}
\usepackage{pict2e,picture}

\newcommand\drawY{%
  \begingroup
  \dimen0=.5em
  \dimen2=\fontcharht\font`Y
  \dimen4=.25\dimen2
  \begin{picture}(\dimen0,\dimen2)
  \roundcap
  \put(0,0){\line(0,1){\dimen4}}
  \put(\dimen0,0){\line(0,1){\dimen4}}
  \put(0,\dimen4){\line(1,0){\dimen0}}
  \put(.5\dimen0,\dimen4){\line(0,1){\dimexpr\dimen2-\dimen4}}
  \end{picture}%
  \endgroup
}
\newcommand{\Y}{\text{\drawY}}

\begin{document}

{\fboxsep=0pt \fbox{\Y}}

$Y\Y_{Y\Y}$

\end{document}

在此处输入图片描述

相关内容