Я использую latex exam class для коротких вопросов, которые предоставляют строки для ответов. Следующие коды кодов дают мне строки для ответов, которые охватывают всю ширину страницы. Я хочу контролировать ширину этих строк, чтобы я мог уменьшить их по своему выбору (1 дюйм, 2 дюйма и т. д.)
\begin{document}
\begin{questions}
\question What is your name? \fillwithlines{3cm}
\end{questions}
\end{document}
В качестве примера, вот что я получаю с существующим кодом:
Я был бы признателен за любую помощь в этом отношении. Спасибо
решение1
Как упоминалось в комментариях, использование minipage
окружения, вероятно, является самым простым решением. Если вы делаете это часто, вы можете создать minipage
версию команды \fillwithlines
. Она принимает необязательный аргумент ширины, который по умолчанию принимает значение , \linewidth
если не используется.
\documentclass{exam}
\NewDocumentCommand{\Fillwithlines}{O{\linewidth}m}{
\par\begin{minipage}{#1}
\fillwithlines{#2}
\end{minipage}}
\begin{document}
\begin{questions}
\question What is the answer to this question?
\Fillwithlines[3in]{1in}
\question What is the answer to this question?
\Fillwithlines{1in}
\end{questions}
\end{document}
решение2
Этот код заменяет фиксированную длину строк ( \hsize
) на пользовательскую длину ( \linelength
), которую можно задать перед вопросом.
\documentclass{exam}
%**************************************** added <<<<<<<<<<<<
\usepackage{xpatch}
\newlength{\linelength}
\setlength{\linelength}{\hsize}% default length
\makeatletter
\xpatchcmd{\do@fillwithlines}
{\hsize}{\linelength}{}{}
\makeatother
%****************************************
\begin{document}
\begin{questions}
\setlength{\linelength}{1.5in}% choose the line length <<<<<<<<<<<<<<<<<<<<
\question What is your name? \fillwithlines{3cm}
\setlength{\linelength}{2.5in}% choose the line length <<<<<<<<<<<<<<<<<<<<
\question What is your name? \fillwithlines{3cm}
\end{questions}
\end{document}