我正在编写一个使用完形填空题的数学测验:需要确定缺失数字的问题。
为了适应学生的笔迹,我使用创建了一个答案框\fbox{\huge\phantom{NN}}
。
这些都是基本的数学事实,例如 3 + 5 = 8。有三种可能性:第一项可能缺失([缺失] + 5 = 8),第二项可能缺失(3 + [缺失] = 8),或者答案可能缺失(3 + 5 = [缺失])。
这些是垂直排列的数学问题,使用 来\hrule
将前两个项与答案分开(想想初等数学)。我试图将问题排列起来,以便各个部分对齐。
我使用\LARGE
字体 ( \baselineskip = 22 pt
) 表示数字,使用\huge
( \baselineskip = 25 pt
) 表示空白答案框。我尝试通过添加额外的 来对齐它们\vspace{3pt}
,但效果不太好。
使用以下输入:
\documentclass[10pt]{letter}
\usepackage[top=0.5in, bottom=0.5in, left=0.5in, right=0.5in]{geometry}
\def\clozeMiddle[#1][#2][#3]{
\hbox to 72pt{
\vbox{
\vspace{3pt}
\hbox to 46pt{\hfill#1}
\vspace{1pt}
\hbox{\hbox to 12pt{\hfill#3}\hbox to 34pt{\hfill\fbox{\vbox{\huge\phantom{NN}}}}}
\vspace{2pt}
\hrule\vspace{2pt}\vspace{3pt}\hbox to 46pt{\hfill#2}}
}
}
\def\clozeBottom[#1][#2][#3]{
\hbox to 72pt{
\vbox{
\vspace{3pt}
\hbox to 46pt{\hfill#1}
\vspace{1pt}
\vspace{3pt}
\hbox{\hbox to 12pt{\hfill#3}\hbox to 34pt{\hfill#2}}
\vspace{2pt}
\hrule\vspace{2pt}\hbox to 46pt{\hfill\fbox{\vbox{\huge\phantom{NN}}}}}
}
}
\begin{document}
\LARGE
\hbox{
\clozeMiddle[4][7][+]
\clozeBottom[4][3][+]
}
\end{document}
我明白了:
第一\hrule
项几乎与第二个匹配\hrule
,但不完全匹配。我认为这只是因为线条\fbox
有一定的宽度。
真正的问题是,第二个问题中的 4 比第一个问题中的 4 高得多。我不希望出现这种情况,因为在这两种情况下,与\hrule
包含 4 的框底部之间应该有 2 + 25 + 1 = 28 分。
答案1
定义中有很多非乳胶命令,并且生成的命令不遵循正常的乳胶语法,因为它在 中有强制参数[]
。(并且如果您尝试将其居中或开始一个段落,或者使其成为节标题之后的第一件事等,在乳胶中使用 unguarded\hbox
会产生奇怪的效果。
更惯用的 Latex 版本可能是
\documentclass[10pt]{article}
\usepackage{array}
\usepackage[top=0.5in, bottom=0.5in, left=0.5in, right=0.5in]{geometry}
\newcommand\clozeMiddle[3]{{%
\LARGE\setlength\extrarowheight{20pt}%
\begin{tabular}{@{}cc@{}}
&\makebox(72,30)[r]{#1}\\
\makebox(10,30){$#3$}&\framebox(72,30)[r]{}\\
\hline
&\makebox(72,30)[r]{#2}
\end{tabular}}}
\newcommand\clozeBottom[3]{{%
\LARGE\setlength\extrarowheight{20pt}%
\begin{tabular}{@{}cc@{}}
&\makebox(72,30)[r]{#1}\\
\makebox(10,30){$#3$}&\makebox(72,30)[r]{#2}\\
\hline
&\framebox(72,30)[r]{}
\end{tabular}}}
\begin{document}
\clozeMiddle{4}{7}{+}%
\qquad
\clozeBottom{4}{3}{+}
\end{document}