将 QED 符号与居中表的最后一行对齐

将 QED 符号与居中表的最后一行对齐

编译代码

\documentclass{svmono}
\smartqed
\usepackage{amsmath}
\begin{document}
\begin{example}[Some example]
  This table is centered:
  \begin{center}
    \begin{tabular}{|c|c|c|}
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
    \end{tabular}
  \end{center}
  The table below should be centered, but it's not:
  \begin{center}
    \begin{tabular}[b]{|c|c|c|}
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
    \end{tabular}\qed
  \end{center}
\end{example}
Text after the example.
\end{document}

结果是

PDF 输出

如何使第二个表格居中,校样结束符号与表格的最后一条水平线对齐?请不要建议在\par\vspace{-1.7\baselineskip}\qed后面放置类似的东西\end{center},除非您确定您的解决方案对于字体系列的变化是稳健的。

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

编辑:如果有人希望除了放置 halmos 符号之外,还想将 marginnote 用于其原始目的,请参见。 有边注(和待办事项)的案例和表格的 QED

答案1

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


我建议使用\marginnote将 放在\qed页边距中,使用 删除自动插入的空格,并将 的长度向左\makebox移动,使位于页边距内而不是外。为了方便起见,我将这三个部分都放在一个宏中:\marginparsep\qed\marginqed

\usepackage{marginnote}
\newcommand{\marginqed}{\marginnote{\makebox[0pt][r]{\qed\hspace*{\marginparsep}}}}

对于垂直对齐,放置的位置很重要\marginqed:将其直接放在后面\end{tabular}以与最后一条水平线对齐,或放在最后一行内以与文本基线对齐。

到目前为止,这只适用于奇数页。为了让它在偶数页上也能同样工作,我按照这个答案并借助marginnote以下宏进行修补etoolbox

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@mn@margintest}{\@tempswafalse}{\@tempswatrue}{}{}
\patchcmd{\@mn@margintest}{\@tempswafalse}{\@tempswatrue}{}{}
\makeatother

现在,无论是在奇数页还是偶数页,qed 符号\marginqed都将靠近页面的右边距。

以下 MWE 针对偶数页和奇数页演示了这一点。由于您在实际文档中使用了marginfixtodonotes,因此我也添加了它们以及一个长标准\marginpar和 ,\todo以表明 不会相互干扰marginqed

\documentclass{svmono}
\smartqed
\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  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]
  This table is centered:
  \begin{center}
    \begin{tabular}{|c|c|c|}
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
    \end{tabular}
  \end{center}
  The table below should be centered, but it's not:
  \begin{center}
    \begin{tabular}[b]{|c|c|c|}
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
    \end{tabular}\marginqed
  \end{center}
\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  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]
  This table is centered:
  \begin{center}
    \begin{tabular}{|c|c|c|}
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
    \end{tabular}
  \end{center}
  The table below should be centered, but it's not:
  \begin{center}
    \begin{tabular}[b]{|c|c|c|}
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
    \end{tabular}\marginqed
  \end{center}
\end{example}
Text after the example.
\end{document}

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

答案2

svmono该类的问题似乎 ntheorem来自于 svmono 定义了自己的一组类似定理的结构,因此与 svmono 冲突,除非你更改名称。

无论如何,svmono 以 ntheorem 的方式定义其定理结构,并且您可以选择nospthms停用 svmono 定理集。这组定理很容易模拟。我这样做了example,以下代码运行良好:

\documentclass[nospthms]{svmono}
\usepackage{amsmath, amssymb}
\usepackage[amsmath, thmmarks]{ntheorem}
\theoremstyle{nonumberplain}
\theoremheaderfont{\itshape}
\theorembodyfont{\upshape}
\theoremsymbol{\ensuremath{\square}}
\newtheorem{example}{Example}

\begin{document}

\begin{example}[Some example]
  This table is centered:
  \begin{center}
    \begin{tabular}{|c|c|c|}
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
    \end{tabular}
  \end{center}
  The table below should be centered, but it's not:
  \begin{center}
    \begin{tabular}[b]{|c|c|c|}
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
      Some cell & some cell & some cell\\
      \hline
    \end{tabular} %
  \end{center}
\end{example}
Text after the example.

\end{document} 

在此处输入图片描述

相关内容