填空对齐

填空对齐

我想写一个包含几道填空题的测试。但我不喜欢这个结果。因为有些句子显示为两行或更多行,并且有一段文本位于要填充的行下方。我希望该行下方的所有文本都与句子第一行空格后的第一个字母对齐。我使用的是枚举环境,例如:

 \begin{enumerate}
      \item \underline{\hspace{2.5cm}} \hspace{1em} bla bla bla bla ....
\end{enumerate}

我想要的是,正如我之前所说,文本与第一个“b”对齐。

多谢。

答案1

或者使用 TeX 原语:

在此处输入图片描述

\def\fbindent{3cm}
\def\dorule{\leaders\vrule depth2pt height-1.6pt \hfil}
\def\fb#1.{\noindent\hbox to\fbindent{\bf#1. \dorule\ }%
  \hangindent=\fbindent \ignorespaces}

\fb 1. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla.

\fb 2. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla.

\fb 3. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla.

答案2

Marco Daniel 的解决方案枚举描述列表可能有帮助:

\documentclass{article}

\usepackage{enumitem}
\newcounter{descriptcount}
\renewcommand*\thedescriptcount{\arabic{descriptcount}}

\begin{document}

\begin{description}[leftmargin=3.2cm, style=sameline,
before={\setcounter{descriptcount}{0}},
font=\bfseries\stepcounter{descriptcount}\thedescriptcount .]
\item [\underline{\hspace{2.5cm}}]
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\item [\underline{\hspace{2.5cm}}]
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\item [\underline{\hspace{2.5cm}}]
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\end{description}

\end{document}

在此处输入图片描述

答案3

这是一个选项,用于\question设置tabularx,使其无法跨页面边界之内一个问题。可选参数允许您指定数字,否则它会随着每次使用而自然增加\question

在此处输入图片描述

\documentclass{article}

\usepackage{tabularx,xparse}

\newcounter{question}
\newlength{\questionlen}
\setlength{\questionlen}{7em}
\NewDocumentCommand{\question}{o m}{%
  \noindent
  \begin{tabularx}{\linewidth}{ @{}p{\questionlen} X@{}}
    \bfseries
    \IfNoValueTF{#1}{% \question{..}
      \stepcounter{question}%
      \thequestion. \hrulefill
    }{% \question[.]{..}
      #1 \hrulefill
    }%
    & #2
  \end{tabularx}%
}

\begin{document}

\question{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla.}

\question{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla.}

\question[4.]{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla.}

\setlength{\questionlen}{10em}

\question{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla.}

\end{document}

问题宽度的调整是使用 进行的\setlength{\questionlen}{<width>}

相关内容