Como gerenciar quebras de linha quando a linha contém `makebox`?

Como gerenciar quebras de linha quando a linha contém `makebox`?

Se eu escrever perguntas para preencher as lacunas na examaula, assim:

\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}

As linhas não se quebram corretamente, mas vão até a borda da página, assim:

insira a descrição da imagem aqui

Posso forçar \\uma quebra de linha, o que produz um resultado aceitável:

insira a descrição da imagem aqui

Mas isso parece desajeitado. Existe uma maneira mais elegante de lidar com essa situação?

Responder1

Você também pode deixar os pontos se expandirem em vez dos espaços em branco, e então a quebra de linha será muito mais fácil

insira a descrição da imagem aqui

\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}

informação relacionada