我正在尝试打印两条水平线,使其看起来像一本旧书的分隔线。使用\hrule
略有不同的宽度和长度会使线条看起来像手工绘制的。
但尝试使用\moveleft
或\nointerlineskip
建议居中hrule
我收到一条错误消息,提示无法在水平模式下执行此操作。问题是hrule
带缩进类似,但如果是这样,我不知道如何应用这些信息。我遇到了 \indent 和 \item 等错误。
我想了解如何修复\hrule
,但使用规则或其他命令回答也可以。
这是我正在使用的代码,它可以编译,但是每次尝试调整都会导致无法编译。
\documentclass{scrartcl}
%\usepackage{fontspec}
%\setmainfont{Gentium Plus}
%\usepackage{microtype}
\begin{document}
\begin{center}
\normalfont\large Some Text Above
\vspace{9pt}
\hrule height .8pt width .870\textwidth
\vspace{14pt}
\hrule height 1.1pt width .877\textwidth
\vspace{6pt}
1 6 4 7.
\end{center}
\end{document}
答案1
\rule
和的问题\leavevmode
在于每个基线之间的 的累积\baselineskip
。在此解决方案中,您可以删除所有 0pt 项,并看到它们精确对齐。
\documentclass{scrartcl}
%\usepackage{fontspec}
%\setmainfont{Gentium Plus}% Please don't make me download another font
%\usepackage{microtype}
\begin{document}
\begin{center}
\normalfont\large Some Text Above
\hrule height 0pt
\vrule height 9pt width 0pt
\vbox{\hrule height .8pt width .870\textwidth}
\hrule height 0pt
\vrule height 14pt width 0pt
\vbox{\hrule height 1.1pt width .877\textwidth}
\hrule height 0pt
\vrule height 6pt width 0pt
\hrule height 0pt
1 6 4 7.
\end{center}
\end{document}
答案2
使用规则代替\hrule
:
\documentclass{scrartcl}
\begin{document}
\begin{center}
\large Some Text Above\\
\rule[1ex]{.8\textwidth}{1pt}\\
\rule[1.9ex]{.7\textwidth}{.6pt}\\[-6pt]
1 6 4 7
\end{center}
\end{document}
Whit\hrule
也是可能的,但是没有必要更复杂:
\documentclass{scrartcl}
\begin{document}
{\centering
\large Some Text Above\\[-4pt]
\leavevmode\vbox{\hrule height 1pt width .8\textwidth}\\[-4pt]
\leavevmode\vbox{\hrule width .7\textwidth}\\
1 6 4 7\par}
\end{document}