我想模拟一些文字处理程序(例如 Microsoft Word、LibreOffice Writer)的功能,在这些程序中我可以(在某种程度上)任意地在任何文本/段落下方插入底部边框。如何在 LaTeX 中实现此操作?
编辑:澄清一下,我想要的是一条横跨页面、位于文本下方的水平线。像这样:
答案1
可能有很多方法可以做到这一点。您是否尝试过发出命令
\hrule
在一条线上?
答案2
与@egreg的回答略有修改将水平线向左移动,以下最小工作示例 (MWE) 提供了,它在段落之间\myrule[<thickness>][<gap>][<color>]
设置了粗细规则(默认值为 )。此外,第二个可选参数允许您增加行与前一个/后一个段落之间的间隙(默认值为)。最后,最后一个可选参数允许您将线条的颜色更改为(默认值为)。颜色通过从<thickness>
1pt
3pt
<color>
black
\color
xcolor
包裹。
\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{xparse}% http://ctan.org/pkg/xparse
\NewDocumentCommand{\myrule}{O{1pt} O{3pt} O{black}}{%
\par\nobreak % don't break a page here
\kern\the\prevdepth % don't take into account the depth of the preceding line
\kern#2 % space before the rule
{\color{#3}\hrule height #1 width\hsize} % the rule
\kern#2 % space after the rule
\nointerlineskip % no additional space after the rule
}
\begin{document}
\lipsum[1]
\myrule
\lipsum[2]
\myrule[10pt][5pt]
\lipsum[3]
\myrule[5pt][5pt][orange]
\lipsum[4]
\end{document}
答案3
这是使用 的另一种方法environment
。这种方法的优点是您可以在序言中全局装饰环境的内容。您可以将这个想法与 Werner 的想法结合起来,使边框更加丰富多彩。
我已经使用该needspace
包来确保不会\hrule
与段落的最后一行分离。
\documentclass{article}
\usepackage{lipsum} % needed for sample text
\usepackage{needspace} % provides the \needspace command
\newenvironment{bottomborder}%
{} % code to be processed before the environment begins
{\needspace{\baselineskip}\hrule} % code to be processed after the environment ends
\begin{document}
\begin{bottomborder}
\lipsum[1-3]
\end{bottomborder}
\end{document}