为 examwsolns 创建一个键/选项,以全局设置默认解决方案宽度

为 examwsolns 创建一个键/选项,以全局设置默认解决方案宽度

后续行动这个答案, 我想

1- 为包设置一个键/选项,用于设置默认宽度。例如,\usepackage[default-width = outer]{examwsolns}

2- 了解userdefinedwidth = \textwidth传递给宽解决方案的 mdframed 环境的选项的含义。难道不应该意味着默认宽度是 吗\textwidth?如果是,为什么问题和部分的解决方案的宽度不尊重它?

examwsolnsPS可以找到包的定义这里

在此处输入图片描述

\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环境自动检测当前问题级别,然后缩进并相应地选择宽度(与未使用该选项时的行为相同)。您可以将以下任何值传递给此选项:currentouterquestionpartsubpartsubsubpart。例如,\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}

在此处输入图片描述

相关内容