编译以下代码
\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
用于其原始目的(但我会向您展示您可以将marginfix
或todonotes
用于此类目的),并且您有交替的奇数页和偶数页(如果不是,则需要另一种破解方法来修复内部计数器 - 如果您想看到解决方案,请将此作为新问题提出)。如果这适合您(例如,它适合我个人迄今为止完成的所有 LaTeX 项目),那么请随意使用它。
我对你的另一个问题的回答在这种情况下也有效:
\marginnote
从包中使用marginnote
,\makebox
并\marginparsep
定义一个宏\marginqed
。- 跟随这个答案使其在奇数页和偶数页上都能正常工作。
- 检查它不会与您对
marginfix
和todonotes
包的使用发生冲突。
梅威瑟:
\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}