\hrulefill 或 \rule{\textwidth}{0.5px} 的简单替代方案

\hrulefill 或 \rule{\textwidth}{0.5px} 的简单替代方案

我正在尝试插入水平线,以便学生写答案。如果我使用\hrulefill,它只会从文本末尾到右边距插入水平线。我希望这条水平线单独成一行。为了让水平线单独出现,我必须在前面添加一个字符,这\hrulefill看起来很糟糕。

\rule{\textwidth}{0.5pt}可以工作,但\textwidth使用时会被推到右边距以外\itemize

我正在寻找一个更好的解决方案,在最后一行水平线处放置一个空白行,但没有字母“a”。

抱歉,我不知道如何在下面的代码中包含 pdf 输出。

\documentclass[]{article}
\usepackage{lipsum}
    \begin{document}
    \lipsum[1] \hrulefill \\\\
    \hrulefill
    \begin{itemize}
    \item \lipsum[1]\\\\
    \rule{\textwidth}{0.5pt}
    a \hrulefill
    \end{itemize}

    \end{document}

将 px 更正为 pt,\itemize然后\begin{itemize}\end{itemize}

注意:我实际上很惊讶 px 能够工作,就像它\itemize本身一样。

答案1

您想使用\linewidth

\documentclass[]{article}
\usepackage{lipsum}

\newcommand{\answerrule}{%
  \par\nopagebreak
  \noindent
  \rule{0pt}{1.5\baselineskip}%
  \rule{\linewidth}{0.5pt}%
}

\begin{document}

\lipsum[1][1-4]
\answerrule

\begin{itemize}
\item \lipsum[1][1-4]

\answerrule
\answerrule
\end{itemize}

\end{document}

在此处输入图片描述

重要笔记

  1. \itemize不得在文档正文中使用。使用仅有的环境形式\begin{itemize}...\end{itemize}。同样适用于每一个LaTeX 环境。

  2. 其实没有px单位。好吧,是有的,但是默认与查看 PDF 文件的设备的分辨率相同,pt并且与该设备的分辨率无关。

  3. 避免\\\\占用垂直空间。

答案2

尝试这个:

\item \lipsum[1]
\hrulefill \break \null\hrulefill \break \null\hrulefill

每次\hrulefill\break运行到行尾,下一行必须以“不可见字符”开始\null,而不是以可见字符“a”开始。如果这里没有这样的字符,那么\hrulefillTeX 会取消下一个,因为它是一个胶水,而从 TeX 的角度来看,胶水是“可丢弃的项目”。

相关内容