![在考试中,将 \raggedright 修补到解决方案环境不起作用](https://linux22.com/image/332015/%E5%9C%A8%E8%80%83%E8%AF%95%E4%B8%AD%EF%BC%8C%E5%B0%86%20%5Craggedright%20%E4%BF%AE%E8%A1%A5%E5%88%B0%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E7%8E%AF%E5%A2%83%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
考虑下面给出的 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}