我正在尝试为我的文档实现以下样式的自定义水平规则。
我尝试了以下 LATEX 代码。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[top=1cm, left=1cm, right=1cm, bottom=1.5cm]{geometry}
\usepackage{xcolor,lipsum}
\begin{document}
\lipsum[1]\\
{\color{gray} \rule{4.85 cm}{2 pt}}\ {\color{lightgray} \rule{\linewidth}{2 pt}}
\lipsum[1]
\end{document}
这给出了以下令人满意的结果,但我无法打破跨越线宽的规则。如何解决这个问题?还有其他方法可以得到这种类型的水平规则吗?
答案1
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[top=1cm, left=1cm, right=1cm, bottom=1.5cm, showframe]{geometry}
\usepackage{xcolor,lipsum,calc}
\newlength{\spacelength}
\setlength{\spacelength}{\widthof{\ }}
\begin{document}
\lipsum[1]\\
{\color{gray} \rule{4.85 cm}{2 pt}}\ {\color{lightgray} \rule{\dimexpr\linewidth-4.85cm-\spacelength\relax}{2 pt}}
\lipsum[1]
\end{document}
问题是你想要
- 4.85厘米的规则
- 空间
- 和 的规则
\linewidth
。这当然不止一行,所以你必须缩短最后一行。你希望它有\linewidth - 2.85cm - WidthOfASpace
。你只需输入 就可以计算出这个长度\dimexpr WhatYouWantToCalculate \relax
。为了获得空间的宽度,我使用了-package\widthof
中的calc
。
我添加了 showframe 选项只是geometry
为了显示该线现在具有完美的长度,您可以将其删除而不会破坏任何东西。