如何为 \hrule 着色

如何为 \hrule 着色

我正在尝试显示彩色的\hrule

这次讨论意味着将 包装\hrule在 中\textcolor,但是这会在 上方添加一个丑陋的额外垂直空间\hrule

其他问题特克斯, 例如, 或者,处理着色\rule而不是\hrule,但\rule即使没有也已经产生了额外的垂直空间\textcolor

MWE 对原图\hrule进行了两次着色尝试,但均未成功:

\documentclass{article}

\setlength{\parindent}{0cm}

\usepackage{xcolor}

\begin{document}

abc%
\vskip 1mm%
\hrule

abc%
\vskip 1mm%
\textcolor{red}{\hrule}

abc%
\vskip 1mm%
\rule{\textwidth}{.1mm}

\end{document}

得出的结果为:

MWE 源的输出:两次尝试对线条进行着色,包括一个额外的垂直空间

我知道我可能可以使用插入负片的方法\vskip来消除偏移,但我正在寻找一种不涉及这种解决方法的\baselineskip干净的着色方法。\hrule

答案1

尝试{\color{red}\hrule}——您需要{...}周围等等\color,以防止颜色泄漏到文档的其他部分。

\documentclass{article}

\setlength{\parindent}{0cm}

\usepackage{xcolor}

\begin{document}

abc%
\vskip 1mm%
\hrule

abc%
\vskip 1mm%
{\color{red}\hrule}
%\textcolor{red}{\hrule}

abc%
\vskip 1mm%
\rule{\textwidth}{.1mm}

\end{document}

在此处输入图片描述

编辑以下是一些改进

\documentclass{article}

\setlength{\parindent}{0cm}

\usepackage{pgffor}
\usepackage{xparse}
\usepackage[x11names]{xcolor}

\NewDocumentCommand{\colorrule}{O{.4pt}m}{%
  {\color{#2}\hrule height#1}%
}

\begin{document}

abc%
\vskip 1mm%
\hrule

% Now a blue rule
\colorrule{blue}
abc%
\vskip 1mm%
\foreach \x in {Red4,Red3,Red2,Red1,orange,yellow,LightBlue1,LightBlue2,LightBlue3,LightBlue4,blue,green,brown} {%
\colorrule[2pt]{\x}
}

abc%
\vskip 1mm%
\rule{\textwidth}{.1mm}

\end{document}

在此处输入图片描述

相关内容