qed 当“cases”是带有 svmono 类(不带 amsthm 和 ntheorem)的证明结束显示的最后一个元素时

qed 当“cases”是带有 svmono 类(不带 amsthm 和 ntheorem)的证明结束显示的最后一个元素时

编译以下代码

\documentclass{svmono}%%% v 5.5
\smartqed
\usepackage{amsmath}
%%% Loading lots of other packages here, marginfix among them.
\begin{document}
\begin{example}[Some example]
\begin{align*}
  x & =f(y)\\
  z & =
      \begin{cases}
        a,&\text{if}\ \varphi,\\
        b,&\text{otherwise}
      \end{cases}
\end{align*}
\par\vspace{-1.7\baselineskip}\qed%%%% Way too hardcoded, and not the best vertical alignment.
\end{example}
Text after the example.
\end{document}

导致pdflatex

在此处输入图片描述

正如我们所见,qed 符号的位置并不理想,当有人(例如,编辑)决定更改 align* 或 cases 环境的垂直间隙但忘记更新 qed 位置时,qed 符号的位置可能会发生变化。 有没有一种更自动化的方法可以将 qed 符号准确地放置在以 结尾的最后align*一行cases

相反在显示的公式中将 \qed 推到右侧amsthm 的 \qedhere 在以显示的案例数组结尾的证明中

  • 根据定义,这个问题排除了加载 amsthm 或 ntheorem(在我的完整、非最小示例中加载它们会对其他一些包产生不良影响。此外,SVmono 提供了自己的定理类,应根据 Springer 的参考指南使用。最后但并非最不重要的一点是,ntheorem 在某些方面被破坏了,而且似乎不再维护了。);

  • 简单地复制并粘贴 amsthm 的代码并不能完全右刷新 qed 符号。

svmono课程及其手册可从以下网址获取:Springer 网站

答案1

免责声明:亲爱的读者,这不是最通用的解决方案,而是针对 OP 情况的特定破解方法。它要求您不要将其\marginnote用于其原始目的(但我会向您展示您可以将marginfixtodonotes用于此类目的),并且您有交替的奇数页和偶数页(如果不是,则需要另一种破解方法来修复内部计数器 - 如果您想看到解决方案,请将此作为新问题提出)。如果这适合您(例如,它适合我个人迄今为止完成的所有 LaTeX 项目),那么请随意使用它。


我对你的另一个问题的回答在这种情况下也有效:

  • \marginnote从包中使用marginnote\makebox\marginparsep定义一个宏\marginqed
  • 跟随这个答案使其在奇数页和偶数页上都能正常工作。
  • 检查它不会与您对marginfixtodonotes包的使用发生冲突。

梅威瑟:

\documentclass{svmono}%%% v 5.5
\smartqed
\usepackage{amsmath}
\usepackage[showframe]{geometry}
\usepackage{marginnote}
\usepackage{marginfix}
\usepackage{todonotes}
\newcommand{\marginqed}{\marginnote{\makebox[0pt][r]{\qed\hspace*{\marginparsep}}}}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@mn@margintest}{\@tempswafalse}{\@tempswatrue}{}{}
\patchcmd{\@mn@margintest}{\@tempswafalse}{\@tempswatrue}{}{}
\makeatother
\begin{document}
Some text\marginpar{Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text }\todo{Does this work together?}
\begin{example}[Some example]
\begin{align*}
  x & =f(y)\\
  z & =
      \begin{cases}
        a,&\text{if}\ \varphi,\\
        b,&\text{otherwise}\marginqed
      \end{cases}
\end{align*}
\end{example}
Text after the example.
\newpage
Some text\marginpar{Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text }\todo{Does this work together?}
\begin{example}[Some example]
\begin{align*}
  x & =f(y)\\
  z & =
      \begin{cases}
        a,&\text{if}\ \varphi,\\
        b,&\text{otherwise}\marginqed
      \end{cases}
\end{align*}
\end{example}
Text after the example.
\end{document}

在此处输入图片描述 在此处输入图片描述

相关内容