Автоматически QED в новой команде LaTeX - PullRequest
1 голос
/ 05 мая 2010

Как видно из заголовка, мне нужно автоматически определить символ КЭД (предпочтительно цветовой ящик) в конце моей новой новой теории.

Любые предложения будут оценены.

Ответы [ 3 ]

4 голосов
/ 06 мая 2010

Совет: не делай этого.Размещение символа QED напрямую зависит от содержания вашего текста в вашей среде.Например, код Андреа потерпит неудачу, если ваша теорема заканчивается отображением математики.Вам, вероятно, придется иногда размещать его вручную, и вы вряд ли будете упускать из виду вещи, если будете всегда это делать.

Гораздо лучше было бы иметь среду, которая жаловалась бы, если символ QED не был размещен.Вы можете сделать это, задав флаг qedused, скажем, \newififqedused, который не устанавливается при входе в среду (определите оболочку, используя \newenvironment, как сказал Андреа), установите в оболочку вокруг символа QED и протестируйте, когда вывыйти из среды.Если флаг все еще не установлен при выходе, введите \PackageWarning или \PackageError.

Если вы действительно хотите попытаться получить среду qed, которая изо всех сил пытается делать правильные вещи, независимо от того, что находится вокружении, вам нужно просмотреть содержимое \lastbox, чтобы попытаться определить, куда должен идти символ QED.Если это hbox, вы в порядке, просто поместите QED согласно решению Андреаса.Если это mbox, то я думаю, что создание hbox, содержащего этот mbox, за которым следует символ QED, должно сработать - я не уверен, я обычно не связываюсь с набором математики.Если это vbox, вам нужно заглянуть внутрь структуры vbox, чтобы найти, куда он должен идти, что звучит сложно - я не могу думать, как это сделать в чистом тексте. В Luatex я думаю, что хитрость Ханса Хагена в Способ LuaTEX: \ framed может быть адаптирован для этого.

1 голос
/ 06 мая 2010

Альтернативой является использование пакета ntheorem с опциями thmarks. то есть \usepackage[thmarks]{ntheorem}.

Затем вы можете поиграть с настройками, чтобы получить именно то, что вы хотите ...

1 голос
/ 05 мая 2010

Я не уверен, что вы имеете в виду.Если вы используете пакет amsthm, у вас есть команда \ qed, чтобы поместить QED куда угодно.

Вы можете настроить \ qed, изменив команду \ qedsymbol.Таким образом, вы бы сделали что-то вроде

\usepackage{amsthm}
\renewcommand{\qedsymbol}{$\heartsuit$}
\newtheorem{thm}{Theorem}
\newenvironment{\mythm}{\begin{\thm}}{\qed \end{thm}}
...
\begin{mythm}
blah
\end{mythm}

Это, если вы хотите, чтобы символ QED был таким же, как в доказательствах.Если нет, то вы можете просто сделать

\newtheorem{thm}{Theorem}
\newenvironment{\mythm}{\begin{\thm}}{\hfill $\heartsuit$ \end{thm}}
...
\begin{mythm}
blah
\end{mythm}

Конечно, вы можете изменить \ сердец на любое, что захотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...