有没有办法写一条延伸到整个页面长度的下划线来表示部分的中断?
到目前为止,我正在\blank{?cm}
使用这个答案但是使用此解决方案,我需要手动指定空白的长度(因此,如果我稍后更改页面大小,我将不得不返回并更改所有这些参数)...
答案1
以下是不带参数的另一种宏定义:
\documentclass{article}
\def\blank{\medskip\hrule\medskip}
\begin{document}
Cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit
anim id est laborum.
\blank
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
\end{document}
插入\hrule
一条水平线,占据所有可用空间。\medskip
前后确保在水平线上方和下方留出一点空间。您也可以使用\smallskip
或\bigskip
来获得更小或更大的空间。
附录:我喜欢彼得·格里尔添加一些装饰品他的解决方案。这是一个\blankwith
宏,它使用类似于 中的装饰物\blankwith{$\clubsuit$}
。这个宏再次更多地依赖于 TeX 而不是 LaTeX。它将装饰物放在线中间稍微低的位置,左右留出一些空间。使用 绘制线条\hrulefill
。
\def\blankwith#1{\par\nobreak\bigskip
\hbox to \hsize{\hrulefill\kern.5em\lower.5ex\hbox{#1}\kern.5em\hrulefill}
\bigskip}
答案2
使用
\newcommand\blank[1][\textwidth]{\noindent\rule[-.2ex]{#1}{.4pt}}
而是将前一个强制参数变为可选参数。现在你可以使用
\blank
它将排版\rule
为宽度为\textwidth
。否则,请指定\blank[5cm]
。如果您有兴趣保持相同的格式(使用\blank{<len>}
而不是\blank[<len>]
),也可以通过使用xparse
。这里有这样一个定义:
\documentclass{article}
\usepackage{xparse}% http://ctan.org/pkg/xparse
\NewDocumentCommand{\blank}{G{\textwidth}}{%
\noindent\rule[-.2ex]{#1}{.4pt}%
}
\begin{document}
Here is some text. \blank{5cm} \par
\blank \par
\blank{2cm} Here is some more text.
\end{document}
答案3
您可以使用\linewidth
来指定线的宽度,这样如果\linewidth
发生更改,则无需进行调整,就像我在下面示例中对第一条规则所做的那样。如果您使用多列,这也将适应列宽。
如果你想要更花哨,有很多选择可以用作分隔符。为了说明这一点,我使用了来自这个问题的装饰另一个来自这个问题如何插入边框:
\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\newcommand*{\MyLine}[1][black]{\par\noindent{\color{#1}{\underline{\hspace{\linewidth}}}\newline\par}}
%------------------------
% Ornament from https://tex.stackexchange.com/questions/11320/end-of-paragraph-with-ornament
\usepackage{pifont,fourier-orns}% These are needed only for the ornament
\newcommand\crulefill[1][1ex]{\leavevmode\leaders\hrule depth \dimexpr-#1+0.4pt height #1\hfill\kern0pt}
\newcommand\ornline[2][1ex]{\trivlist\item\crulefill[#1]#2\crulefill[#1]\endtrivlist}
%------------------------
%https://tex.stackexchange.com/questions/30973/how-do-i-insert-a-border-below-text/30979#30979
\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}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam in erat vitae libero dictum imperdiet volutpat nec orci. Nam vel magna vitae risus tristique ornare. Etiam iaculis tincidunt ante, sed consectetur dui sagittis at.
\MyLine[red]
Duis porttitor lacus ut sapien varius ut dapibus odio dapibus. Pellentesque sed odio et nisl lacinia rutrum at quis diam. Mauris a nulla sed est blandit varius eget id massa.
\ornline[0.6ex]{\decoone}
Vivamus libero nibh, dignissim laoreet sollicitudin nec, lobortis nec orci. Pellentesque dolor libero, pretium ut euismod nec, tempor sit amet diam. Mauris vestibulum ornare lacus, in tincidunt dolor adipiscing vel.
\myrule[5pt][5pt][orange]
Maecenas mattis sodales justo, ut fringilla leo vulputate sit amet.Vivamus in felis quis justo viverra blandit id mollis velit. Aenean mi dolor, pulvinar eu ornare et, hendrerit sed tortor. In vitae vulputate felis.
\end{document}
答案4
我建议\leaders
在规则定义中使用,以保证如果分页符恰好出现在新的分页符之前,它不会出现\section
:
\documentclass{article}
\newcommand\MySecRule{%
\leaders\vrule width \textwidth\vskip0.4pt\smallskip}
\begin{document}
\section{Test}\MySecRule
\section{Test}\newpage
\MySecRule\section{Test}
\end{document}