请考虑以下代码:
\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\noindent \tikz\draw(0,0)--(\textwidth,0);
Some Text. More Text. More Text. \newline
\noindent \tikz\draw(0,0)--(\textwidth,0);
\end{document}
以下是输出中解释该问题的相关部分:
问题
如何减少文本与第二条细线(下方)之间的间距,使得它们之间的间距等于第一条细线(上方)与文本之间的间距?
答案1
对于使用规则划分文本,这里有一种方法。这不能确保规则之间的空间相等,但您设想的应用程序似乎不需要它。
\documentclass{article}
\newcommand{\divider}{\vskip2pt\hrule\vskip2pt}
\setlength{\parindent}{0pt}
\begin{document}
Some text
\divider
Some ptext
\divider
Some text
\divider
Some text
\end{document}
如果您希望规则在分页符处自动消失,请使用
\newcommand{\divider}{%
\vskip2pt
\leaders\vrule width \textwidth\vskip0.4pt
\nointerlineskip
\vskip2pt
}
答案2
这是一个解决方案。
注 1:TikZ 不是获得所需结果的必需品!(因此,我建议两种解决方案......)
注 2:查看TikZ 中长度为 \textwidth 的一行
\documentclass[draft]{amsart}
\usepackage{tikz}
% with TikZ
\newcommand\myhline{%
\noindent\tikz[baseline=-.35em]\draw(0,0)--(\linewidth-\pgflinewidth,0);\par%
}
% without TikZ
\newcommand\myhlinewotikz{%
\noindent\rule[.35em]{\linewidth}{.4pt}\par%
}
\begin{document}
\myhline
Some Text. More Text. More Text. \par
\myhline
abc def ghi jkl mno pqr stu vwx yz. \par
\myhline
{
\LARGE\myhline
Some Text. More Text. More Text. \par
\myhline
abc def ghi jkl mno pqr stu vwx yz. \par
\myhline
}
\myhlinewotikz
Some Text. More Text. More Text. \par
\myhlinewotikz
abc def ghi jkl mno pqr stu vwx yz. \par
\myhlinewotikz
{
\LARGE\myhlinewotikz
Some Text. More Text. More Text. \par
\myhlinewotikz
abc def ghi jkl mno pqr stu vwx yz. \par
\myhlinewotikz
}
\end{document}
编辑:这是一个最小化垂直空间的 TikZ 解决方案(没有 TikZ,egreg 的答案是完美的)。
\documentclass{amsart}
\usepackage{tikz}
\newcommand\myhline{%
\vskip-0.3\baselineskip%
\noindent%
\tikz[baseline=-.35em]%
\draw[blue,dashed](0,0)--(\linewidth-\pgflinewidth,0);
\vskip-0.3\baselineskip%
}
\begin{document}
\myhline
Some Text. More Text. More Text.
\myhline
abc def ghi jkl mno pqr stu vwx yz.
\myhline
{
\LARGE\myhline
Some Text. More Text. More Text.
\myhline
abc def ghi jkl mno pqr stu vwx yz.
\myhline
}
\end{document}
答案3
下一行的位置位于下一个文本行的基线处。因此,您需要将第二行的起点 (0,0) 移动大约上述位置。为此,还有更多可能性:
使用
\documentclass{amsart} \usepackage{tikz} \begin{document} \noindent \tikz\draw(0,0)--(\textwidth,0); Some Text. More Text. More Text.\newline \noindent \tikz[baseline=-1.2ex]\draw(0,0)--(\textwidth,0); \end{document}
而不是
\newline
使用\\[-1.2ex]
- 相反
\draw(0,0)--(\textwidth,0)
使用\draw(0,1.2ex)--++(\textwidth,0)
另一种可能性是将文本放在节点的行之间,然后绘制框的顶部和底部边框(在这种情况下,文本必须短于一页...):
\documentclass{amsart} \usepackage{tikz} \begin{document} \tikz{ \node[text width=\textwidth] (text) { Some Text. More Text. More Text.}; \draw (text.north west)--(text.north east) (text.south west)--(text.south east); } \end{document}
我希望这能对你有所帮助。