图片环境中的线结束于错误的位置

图片环境中的线结束于错误的位置

我在一个灰色方块内画了一个黄色方块,正好在中间。出乎意料的是,黄色方块没有水平对齐,而是向右移动了:

在此处输入图片描述

为什么?如果我理解正确的话,黄色方块应该在 x=37 处结束,灰色方块应该在 x=38 处结束。

\documentclass{article}
\usepackage{xcolor}
\begin{document}
\setlength{\unitlength}{1mm}
\hrule\noindent

\begin{picture}(40,40)
\linethickness{36mm}
\color{gray}
\put(2,20){\line(1,0){36}}

\linethickness{34mm}
\color{yellow}
\put(3,20){\line(1,0){34}}
\end{picture}

\hrule
\end{document}

答案1

图片模式命令尝试忽略指令之间的空白,但\color失败了,所以你看到后面有空格\color。请注意,TeX 主要设计为文本排版语言,空格不是大多数编程语言中的语法装饰,它(通常)是一种操作说明在该点添加可伸缩的词间空间。

最好避免在图片模式中排版任何不在里面的内容,\put这样

\color{yellow}
\put(3,20){\line(1,0){34}}

不是

\put(3,20){\color{yellow}\line(1,0){34}}

虽然\color事实上\put,只要你避免在它周围增加空间,它外面是安全的

\color{yellow}%

的定义\linethickness已更改(2020 年版本),以避免出现这个多余的空间。

https://github.com/latex3/latex2e/issues/274

相关内容