后续行动这个答案, 我想
1- 为包设置一个键/选项,用于设置默认宽度。例如,\usepackage[default-width = outer]{examwsolns}
2- 了解userdefinedwidth = \textwidth
传递给宽解决方案的 mdframed 环境的选项的含义。难道不应该意味着默认宽度是 吗\textwidth
?如果是,为什么问题和部分的解决方案的宽度不尊重它?
examwsolns
PS可以找到包的定义这里。
\documentclass[answers]{exam}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{examwsolns}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{tikz}
% Default additional arguments to pass to the 'mdframed' environment
\examwsolnsSetMdFramedDefaultArgs{
skipabove = \baselineskip,
innertopmargin = \baselineskip,
innerbottommargin = \baselineskip,
userdefinedwidth = \textwidth
}
\begin{document}
Here is a full line:
\par\noindent\hrulefill
\begin{wsolution}
Autodetected outer level.
\end{wsolution}
\begin{questions}
\question A question.
\begin{wsolution}
Autodetected question level.
\end{wsolution}
\begin{parts}
\part A part
\begin{wsolution}[][innertopmargin = 2\baselineskip,
innerbottommargin = 2\baselineskip,
backgroundcolor=gray!40,
userdefinedwidth = \textwidth]
Autodetected part level.
\end{wsolution}
\end{parts}
\end{questions}
\end{document}
答案1
对于您的第一个问题,examwsolns
版本 0.4 及更高版本提供了default-level
包选项。其初始值为current
,这会导致wsolution
环境自动检测当前问题级别,然后缩进并相应地选择宽度(与未使用该选项时的行为相同)。您可以将以下任何值传递给此选项:current
,outer
,question
,part
,subpart
,subsubpart
。例如,\usepackage[default-level=outer]{examwsolns}
。
选项值也可以在文档中间更改,例如:(\examwsolnsSetup{default-level=part}
这尊重 TeX 的分组规则)。wsolution
如果您只想覆盖一个环境的默认级别,您可以在第一个参数中使用 0 到 4 之间的整数。要手动选择一组连续环境的级别,在包含环境的组中wsolution
执行操作更容易:\examwsolnsSetup{default-level=...}
{%
\examwsolnsSetup{default-level=...}%
\begin{wsolution} ... \end{wsolution}
...
\begin{wsolution} ... \end{wsolution}
}
关于你的第二个问题,当你指定时userdefinedwidth
,你强加了框的宽度,从左边框到右边框。这确实不是包括缩进,这取决于问题级别。您的示例似乎按设计工作(但由于缩进,您的框超出了右边距)。下面是 的简单变化userdefinedwidth = 0.5\textwidth
,以使效果更加明显。最后一个环境不受影响,因为它明确指定了环境的自己的选项mdframed
( 的第二个参数wsolution
会覆盖您给 的任何选项\examwsolnsSetMdFramedDefaultArgs
)。
\documentclass[answers]{exam}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{examwsolns}
% Default additional arguments to pass to the 'mdframed' environment
\examwsolnsSetMdFramedDefaultArgs{
skipabove = \baselineskip,
innertopmargin = \baselineskip,
innerbottommargin = \baselineskip,
userdefinedwidth = 0.5\textwidth
}
\begin{document}
Here is a full line:
\par\noindent\hrulefill
\begin{wsolution}
Autodetected outer level.
\end{wsolution}
\begin{questions}
\question A question.
\begin{wsolution}
Autodetected question level.
\end{wsolution}
\begin{parts}
\part A part
\begin{wsolution}[][innertopmargin = 2\baselineskip,
innerbottommargin = 2\baselineskip,
backgroundcolor=gray!40]
Autodetected part level.
\end{wsolution}
\end{parts}
\end{questions}
\end{document}