我正在尝试插入水平线,以便学生写答案。如果我使用\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}
重要笔记
\itemize
不得在文档正文中使用。使用仅有的环境形式\begin{itemize}...\end{itemize}
。同样适用于每一个LaTeX 环境。其实没有
px
单位。好吧,是有的,但是默认与查看 PDF 文件的设备的分辨率相同,pt
并且与该设备的分辨率无关。避免
\\\\
占用垂直空间。
答案2
尝试这个:
\item \lipsum[1]
\hrulefill \break \null\hrulefill \break \null\hrulefill
每次\hrulefill\break
运行到行尾,下一行必须以“不可见字符”开始\null
,而不是以可见字符“a”开始。如果这里没有这样的字符,那么\hrulefill
TeX 会取消下一个,因为它是一个胶水,而从 TeX 的角度来看,胶水是“可丢弃的项目”。