我在考试课中使用 \fillwithlines 时怎样获取行数?

我在考试课中使用 \fillwithlines 时怎样获取行数?

我使用exam package命令\fillwithlines{1.25 in}。现在我想得到的行数是 3、4、... 我想,我使用 \linefillheight{.35in} * 行数。但我得不到结果。在此代码中,我得到了三行。

\documentclass[12pt]{exam}
\setlength\linefillthickness{0.6pt}
\setlength\linefillheight{.35in}
\begin{document}
\fillwithlines{1.25 in}
\end{document} 

当我在考试课中使用 \fillwithlines 时如何获取行数?

答案1

尝试这个:

\def\numlines#1{
    \ifdim\dimexpr#1/\linefillheight*\linefillheight\relax<#1\relax
        \the\numexpr\dimexpr#1\relax/\linefillheight\relax
    \else
        \the\numexpr\dimexpr#1\relax/\linefillheight-1\relax
    \fi
}

当您只进行除法时,会出现一些舍入问题,有时会导致答案太高。此代码通过检查您给出的除以和乘以相同事物的维度是否小于您开始时的维度(我们希望向下舍入)来检查是否发生了此舍入问题。如果不是,它会从结果中减去一。还请注意,您需要将维度表达式包装在with1in中,否则当它看到维度时将停止解析。\numexpr\dimexpr\numexpr

我不确定您希望如何输出。我编写的方式只是将其写入输出,但您可以轻松修改它以将结果存储在某处或其他地方。这是一个完整的示例:

\documentclass{exam}

\begin{document}
\def\numlines#1{
    \ifdim\dimexpr#1/\linefillheight*\linefillheight\relax<#1\relax
        \the\numexpr\dimexpr#1\relax/\linefillheight\relax
    \else
        \the\numexpr\dimexpr#1\relax/\linefillheight-1\relax
    \fi
}


\numlines{0.6in}:
\fillwithlines{0.6in}

\numlines{1.2in}:
\fillwithlines{1.2in}

\numlines{1.6in}:
\fillwithlines{1.6in}

\numlines{2in}:
\fillwithlines{2in}
\end{document} 

相关内容