Расширить применимость \qedhere к элементам класса теорем

Расширить применимость \qedhere к элементам класса теорем

Цель:Я хочу иметь возможность отмечать конец примеров и упражнений, используя какой-то символ, примерно как $\qedsymbol$ отмечает конец доказательств. В частности, я хочу команду, которая действует как \qedhere для моего символа по выбору.

Фон:На самом деле это одна из потенциальных модификаций, перечисленных вдокументация по пакету amsthm: «расширить применимость \qedhere к элементам класса теорем, а также к доказательствам». Они говорят, что, хотя это и имеет свои достоинства, это требует больше работы и, по сути, отложено на второй план.

Моя попытка:

Я попытался реализовать среду упражнений с собственным конечным символом следующим образом:

\documentclass{memoir}

\usepackage{amsthm}
\usepackage[varg,bigdelims]{newpxmath}
\usepackage{ifthen}

\newcounter{madesymbol}

\newtheorem{exc}{Exercise}
\newcounter{exc-counter}
\newenvironment{exercise}[1][]
{
    \begin{exc}[#1]~
    \def\mysymbol{$\lozenge$}
    \setcounter{madesymbol}{0}
    \def\tagsymbol{\stepcounter{madesymbol}\tag*{\mysymbol}}
}
{
    \ifthenelse{\equal{\value{madesymbol}}{0}}{\hspace*{\fill}\mysymbol}{}
    \end{exc}
    \stepcounter{exc-counter}
}

\begin{document}

\begin{exercise}
A function $f$...
\end{exercise}

\end{document}

Это кажется громоздким, и я ищу лучшее решение.

Проблемы с nтеоремой: Одно из предложений, которое я видел, это пакет ntheorem. Я пробовал ntheorem, но он, похоже, меняет "всё", например, вообще не действует как amsthm (даже с загруженной опцией [amsthm]). Если кто-то предложит мне использовать этот пакет, пожалуйста, предоставьте явный код, чтобы он действовал как можно более похоже на amsthm.

решение1

Попробуй это:

\documentclass{article}
\usepackage{amsthm}
\begin{document}

\newtheorem{ex-inner}{Exercise}
\newenvironment{ex}{%
  %\def\qedsymbol{$\lozenge$}% Set the QED symbol. 
  \pushQED{\qed}%
  \begin{ex-inner}%
}{%
  \popQED
  \end{ex-inner}%
}


\begin{ex}
Here is an exercise.
\end{ex}

\begin{ex}
Hi!
\[x=y\qedhere\]
\end{ex}

\begin{proof}
Hi!
\[x=y\qedhere\]
\end{proof}
\end{document} 

решение2

Вот демонстрация того, как это можно сделать с помощью ntheorem. Одной из отличительных особенностей является то, что размещение происходит автоматически, даже если therm заканчивается многострочным дисплеем (может потребоваться две компиляции, и в конце окружения не должно быть пустой строки). Символ QED довольно легко настроить:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage[svgnames, table]{xcolor}
\usepackage{mathtools, nccmath}

\usepackage[thmmarks, thref, amsmath]{ntheorem}
\theoremheaderfont{\itshape\bfseries}% default is \upshape\bfseries
\theoremseparator{. \textemdash}
\newtheorem{thm}{Theorem}[section]
\newtheorem{prop}{Proposition}[section]

\theoremseparator{.}
\theoremheaderfont{\upshape\bfseries}%
\theorembodyfont{\upshape\mdseries}% default is \itshape
\newtheorem{dfn}{Definition}[section]
\theoremsymbol{\raisebox{-0.1\height}{\color{IndianRed}$ \boldsymbol\diamondsuit $}}
\newtheorem{ex}{Exercise}

\theoremstyle{nonumberplain}
\theoremheaderfont{\scshape}
\theoremseparator{:}
\theoremsymbol{\ensuremath{\color{Gainsboro}\blacksquare}}

\newtheorem{proof}{Proof}
\begin{document}
\setcounter{section}{2}

\begin{thm}
Clangle-Wangles’ habits of life are domestic and superfluous, and their general demeanour pensive and pellucid.
\end{thm}

\begin{dfn}
  A \textbf{Snark} is a Boojum.
\end{dfn}

\begin{ex}
Here is an exercise.
\end{ex}

\begin{ex}
Hi!
\[ x=y \]
\end{ex}

\begin{proof}
There are two cases: \useshortskip
\begin{align*}
x & =y \\ u & =v
\end{align*}
\end{proof}

\end{document} 

введите описание изображения здесь

Связанный контент