在考试中,将 \raggedright 修补到解决方案环境不起作用

在考试中,将 \raggedright 修补到解决方案环境不起作用

考虑下面给出的 MWE。

我正在尝试用 修补解决方案环境\raggedright。但似乎不起作用。但是,当\raggedright在同一环境的启动时发出显式命令时,它可以工作。


\documentclass{exam}

\printanswers 


\unframedsolutions
\usepackage{etoolbox}
\AtBeginEnvironment{solution}{\raggedright}

\usepackage{lipsum}

\begin{document} 



\begin{questions} 

  \question Question

  \begin{solution}

    Text without explicit \verb@\raggedright@.

    \lipsum[2]

  \end{solution}

  \begin{solution}

    Text with explicit \verb@\raggedright@.

    \raggedright

    \lipsum[2]

  \end{solution}

\end{questions}

\end{document}

在此处输入图片描述

答案1

内部 TheSolution 环境明确将\lineskip和重置\rightskip为 0pt,从而取消\raggedright。必须稍后发出该命令才能生效:

\documentclass{exam}

\printanswers


\unframedsolutions
\usepackage{etoolbox}

\appto\TheSolution{\raggedright}
\usepackage{lipsum}

\begin{document}



\begin{questions}

  \question Question

  \begin{solution}

    Text without explicit \verb@\raggedright@.

    \lipsum[2]

  \end{solution}

  \begin{solution}

    Text with explicit \verb@\raggedright@.

    \raggedright

    \lipsum[2]

  \end{solution}

\end{questions}

\end{document}

在此处输入图片描述

相关内容