问题

问题

请考虑以下代码:

\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) 移动大约上述位置。为此,还有更多可能性:

  1. 使用

    \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}
    
  2. 而不是\newline使用\\[-1.2ex]

  3. 相反\draw(0,0)--(\textwidth,0)使用\draw(0,1.2ex)--++(\textwidth,0)
  4. 另一种可能性是将文本放在节点的行之间,然后绘制框的顶部和底部边框(在这种情况下,文本必须短于一页...):

    \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}
    

我希望这能对你有所帮助。

相关内容