此代码
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amssymb,amsmath}
\usepackage{amsthm}
\usepackage{dsfont}
\usepackage{empheq}
\theoremstyle{plain}
\newtheorem{lemma}{Lemma}
\newenvironment{lemmaqed}
{\pushQED{\qed}\lemma}
{\popQED\endlemma}
\begin{document}
\begin{lemmaqed}
\begin{itemize}
\item $a^2+b^2=c^2$
\item $a^2+b^2=c^2$
\end{itemize}
\end{lemmaqed}
\begin{lemmaqed}
\begin{align*}
a^2+b^2=c^2
\end{align*}
\end{lemmaqed}
\begin{lemmaqed}
$a^2+b^2=c^2$
\end{lemmaqed}
\end{document}
创建输出 我的问题是:qed 符号应该位于引理 3 所指示的位置,即同一行的右侧。引理 1 和 2 并非如此。我该如何改变这种情况?
答案1
ntheorem
使用而不是 则不会出现这样的问题amsthm
。注意 ntheorem 与 amsthm 具有兼容模式:
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amssymb}
\usepackage{empheq}
\usepackage[thmmarks, amsmath, thref, amsthm]{ntheorem}
\usepackage{dsfont}
\theoremstyle{plain}
\newtheorem{lemma}{Lemma}
\theoremsymbol{\ensuremath{\square}}
\newtheorem{lemmaqed}[lemma]{Lemma}
\begin{document}
\begin{lemmaqed}
\begin{itemize}
\item $a²+b²=c²$
\item $a²+b²=c²$
\end{itemize}
\end{lemmaqed}
\begin{lemmaqed}
\begin{align*}
a²+b²=c²
\end{align*}
\end{lemmaqed}
\begin{lemmaqed}
$a²+b²=c²$
\end{lemmaqed}
\end{document}
我们还不如定义一个引理环境,默认情况下,该环境末尾有一个 qed 符号。可以使用指令 为特定环境停用此 qed 符号\NoEndMarks
。此外,还可以根据每个定理轻松定制符号。