Как управлять переносами строк, если строка содержит `makebox`?

Как управлять переносами строк, если строка содержит `makebox`?

Если я напишу в классе вопросы с заполнением пропусков exam, например:

\documentclass[addpoints]{exam}

\begin{document}
\begin{questions}
\question [3] The protagonist, originally from \makebox[2in]{\dotfill}, has to travel up the \makebox[2in]{\dotfill} River to retrieve \makebox[2in]{\dotfill}.
\end{questions}
\end{document}

Строки не разрываются должным образом, а доходят до самого края страницы, вот так:

введите описание изображения здесь

Я могу применить \\принудительный перенос строки, что даст приемлемый результат:

введите описание изображения здесь

Но это кажется неуклюжим. Есть ли более элегантный способ справиться с этой ситуацией?

решение1

Вы также можете позволить расширяться точкам, а не пробелам, и тогда перенос строк будет намного проще.

введите описание изображения здесь

\documentclass[addpoints]{exam}

\newcommand\mydotfill[1]{{\def\hfill{\hskip #1 plus 1fill\relax}\nolinebreak\dotfill}}
\begin{document}
\begin{questions}
\question [3] The protagonist, originally from \mydotfill{2in}, has to travel up the \mydotfill{2in} River to retrieve \mydotfill{2in}.
\end{questions}
\end{document}

Связанный контент