我经常遇到这样的情况我想快速包含一些“填空”样式的带下划线的水平空格(通常在枚举环境中)但每次我搜索 tex.SE 时,我找到的都是更具体或更高级的应用程序。即使我使用“可能已经有答案的问题”和“类似问题”,我也找不到任何解决这一特定情况的内容。
我觉得我应该能够相对轻松地实现这一点,无需加载新包(如果那是最好的,那么那就是最好的,但我正在尝试学习如何自己建立表达式,而不是总是依赖现有的包),但我似乎无法实现它。
到目前为止,我还没有发布这个问题,因为我认为我只是没有使用正确的语言,但这是我第四次或第五次这样做了,所以我想我不可能是唯一一个没有找到结果的人。
基本上,我只想要像
\newcommand{\myBlank}{\underline{\qquad\qquad\qquad\qquad}.}
或者
\newcommand{\myBlank}{\underline{\hspace{5cm}}.}
不同之处在于,它不采用固定长度,而是扩展到当前行剩余空间(即直到行尾)。
我尝试使用胶水(我最近才发现,并且对其了解甚少),但似乎也不起作用:
\newlength{\myBlankSp}
\setlength{\myBlankSp}{10cm plus 10cm minus 15cm}
\def\myBlank{\underline{\hspace{\myBlankSp}}}
有什么简单的解决方案吗?同样,我们既想了解如何创建它,又想确保在 SE 上可以找到一个简单的答案(理想情况下不仅仅是调用一个包),因为它看起来既有用又像是可以教你一些关于 LaTeX 工作方式的重要知识的问题。
答案1
您正在寻找\hrulefill
。已编辑以在环境中显示enumerate
。
\documentclass{article}
\begin{document}
\begin{enumerate}
\item blah \hrulefill.
\item blah blah \hrulefill.
\item blah blah blah \hrulefill. (10pt)
\end{enumerate}
\end{document}
OP 要求更深的线路。没问题,通过设置 的参数\hrule
(这是 的定义的一部分\hrulefill
)。
\documentclass{article}
\usepackage[nopar]{lipsum}
\makeatletter
\newcommand\arulefill{%
\leaders\hrule\@width0pt\@height-6pt\@depth6.5pt\hfill\kern\z@}
\makeatother
\begin{document}
\begin{enumerate}
\item blah \arulefill.
\item blah blah \arulefill.
\item \lipsum[3] \arulefill. (10pt)
\end{enumerate}
\end{document}
已编辑,包括评论中提供的定义
宏使用引线的概念(例如,允许在目录中使用一串点)。但在本例中,它使用的是\hrule
而不是点填充。的实际定义\hrulefill
是\leaders\hrule\hfill\kern\z@