使用 grid 和 gridleno 重新定义环境和摘要框

使用 grid 和 gridleno 重新定义环境和摘要框

这个问题的灵感来自 Gonzalo 的精彩回答这里关于他的创作,gridleno.sty以增强grid.sty

最终,我有两个看似简单的问题(如果需要,请告诉我是否应该单独发布这些问题),但尽管对参数等进行了一些调整,我仍无法达到我想要的效果。

(1):如何summary修改框/环境以使其具有10pt缩进统一地而不是像现在这样仅在两侧缩进(我认为顶部和底部没有缩进看起来很奇怪,就像盒子很挤一样):

在此处输入图片描述

相关片段:

% environment for a summary
\newenvironment{summary}
  {\grcmpage{\linewidth}{summarybg}
   \hfil{\color{summaryhead}\bfseries\summaryname}\hfil\par%
     \parshape 1 10pt \dimexpr\linewidth-20pt\relax\itshape}
  {\par\endgrcmpage\par\prevdepth\tpd}

(2):这个问题不太重要,因为我知道一个“解决方法”,但它似乎不太有效。我真的很喜欢exercises中的环境gridleno.sty

在此处输入图片描述

相关片段:

% environment for exercises: facy title and redefines enumerate as exenumerate
% to remove labels indentation
\newenvironment{exercises}
  {\section*{\Hrulefill\quad%
    {\bfseries\exercisesname}\quad\Hrulefill}%
  \let\enumerate\exenumerate\let\endenumerate\endexenumerate}
  {}

我希望使用此环境,但又能灵活地使用不同的标题。例如,我还希望有一个与此处环境solutions完全相同的环境exercises,我可以通过简单地创建新环境来实现这一点gridleno.sty,但这里最有效的方法似乎是为环境添加一个可选参数exercises,就像 AMSproof环境有一个可选参数一样,例如\begin{proof}[Solution]...\end{proof}

如果可能的话,我希望能够\begin{exercises}[<heading>]...\end{exercises}使用“解决方案”作为一个标题或完全不同的东西。我认为这比简单地复制代码但在这里更改一个词,在那里更改一个词要好得多(但我不知道如何修改环境exercise来做到这一点)。

有任何想法吗?

答案1

未经测试,因为您没有提供工作代码,但对于第二个问题

\newenvironment{exercises}[1][Exercises]
  {\section*{\Hrulefill\quad%
    {\bfseries #1}\quad\Hrulefill}%
  \let\enumerate\exenumerate\let\endenumerate\endexenumerate}
  {}

会让你说

\begin{exercises}
  \item items with Exercises as title
\end{exercises}

或者

\begin{exercises}[Solutions]
  \item items with Solutions as title
\end{exercises}

可能吧。如果不知道所有位是如何定义的,就很难知道。可能根本行不通。但是,如果你想在职的代码,你应该提供一个最小工作示例,以便我可以测试它。

相关内容