为两个\hrule之间的空间着色

为两个\hrule之间的空间着色

此代码用于绘制这两条水平线。

{ \color{red}\hrule width \hsize \kern 1mm }{\color{green}\hrule width \hsize height 1pt}

我只需要为规则之间的空间添加颜色。有什么建议吗?

答案1

\hrule相当不寻常,因为它是一个垂直模式宏。(实际上,它是一个 TeX“原始”指令,而不是基于一个或多个原始指令构建的宏。)因此,您的代码,

{\color{red}\hrule width \hsize \kern 1mm }{\color{green}\hrule width \hsize height 1pt}

相当于

{\color{red}\hrule}\kern1mm{\color{green}\hrule height 1pt}

由于\kern1mm夹在两个垂直模式指令之间,因此它也以垂直模式执行,即导致 1mm 的垂直空白插入两个规则之间(上一个是红色,下一个是绿色)。另外:请注意,这width \hsize是多余的,因为绘制的规则的默认宽度\hrule \hsize——封闭的“垂直框”的宽度。

要用浅灰色规则替换红色和绿色规则之间的垂直空白,只需编写

{\color{red}\hrule}%  % default height of \hrule is '0.4pt'
{\color{lightgray}\hrule height 1mm }% replacement for "\kern1mm"
{\color{green}\hrule height 1pt}

在此处输入图片描述

\documentclass{article}
\usepackage{xcolor}
\setlength\textwidth{3cm} % just for this example
\begin{document}
% original expression
{\color{red}\hrule width \hsize \kern 1mm}{\color{green}\hrule width \hsize height 1pt}

\medskip
% modified, equivalent expression:
{\color{red}\hrule}%
\kern1mm%
{\color{green}\hrule height 1pt}

\medskip
% replace "\kern1mm" with "{\color{lightgray}\hrule height 1mm}"
{\color{red}\hrule}%
{\color{lightgray}\hrule height 1mm}%
{\color{green}\hrule height 1pt}
\end{document}

相关内容