Seite 1 von 1

qedhere und die Beweisumgebung

Verfasst: Mi 25. Mai 2016, 22:44
von theo
Hallo allerseits,
ich habe eine kleine Frage.
Wenn ich schreibe
\begin{proof}
\[1=1\]
\end{proof}
, dann habe ich das Problem, dass das qed-Symbol erst eine Zeile weiter unten als die Formel steht. Alternativ könnte ich auch schreiben
\begin{proof}
\[1=1\qedhere\]
\end{proof}
, was mein Problem löst.
Nun wäre ich froh, wenn ich mir eine Beweisumgebung basteln könnte, bei der ich nicht jedesmal \qedhere schreiben müsste, wenn ich in der letzten Beweiszeile eine Gleichung habe, sondern welche mir das automatisch macht.

Hat da jemand eine Idee?

Verfasst: Do 26. Mai 2016, 23:17
von Bartman
Da Du kein Minimalbeispiel zeigst, kann das folgende Beispiel Dir weiterhelfen oder auch nicht.
\documentclass{scrartcl}

\usepackage[amsthm,thmmarks]{ntheorem}

\begin{document}
\begin{proof}
\[1=1\]
\end{proof}
\end{document}

Verfasst: Fr 27. Mai 2016, 00:22
von theo
Danke für die Antwort!

Sorry, dass bei meinem ersten Beitrag ein Minimalbeispiel fehlte. Hier ist es:
\documentclass{article}

\usepackage {amsthm}

\begin{document}
\begin{proof}
\[1=1\]
\end{proof}
\end{document}
Das Beispiel von Dir funktioniert genau so, wie ich es mir vorgestellt hatte (d.h. das qed-Symbol auf derselben Zeile wie die Gleichung). Der Unterschied liegt offensichtlich daran, ob man amsthm verwendet oder ntheorem.
Ist es möglich, das Problem auch mit amsthm zu lösen?

Zwei Ansätze

Verfasst: Fr 27. Mai 2016, 16:30
von Stamm-
Mit »xparse« lässt sich eine Umgebung für eine Gleichung konstruieren, die nur verwendet werden muss, falls die Gleichung den Abschluss eines Beweises darstellt.
\documentclass[parskip=half,ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß}
}
\usepackage{babel}
\usepackage{mathtools}
\usepackage{amsthm}

\usepackage{xparse}
\DeclareDocumentEnvironment{proofeqn}{}{\[}{\qedhere\]}

\begin{document}
  \begin{proof}[Beweis der Machbarkeit]
    \begin{proofeqn}
      \sum_{k=1}^{n} k = \frac{n(n+1)}{2}
    \end{proofeqn}
  \end{proof}
\end{document}
Ähnlich lässt sich das auch über einen Patch für \[ … \] mit »etoolbox« machen. Dann wäre jedoch jede unnummerierte Gleichung betroffen, die damit gesetzt wird. Als Alternative gäbe es dann aber noch die Umgebung equation*.
\documentclass[parskip=half,ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
  adieresis={ä},
  germandbls={ß}
}
\usepackage{babel}
\usepackage{mathtools}
\usepackage{amsthm}

\usepackage{etoolbox}
\pretocmd{\]}{\qedhere}{}{}

\begin{document}
  \begin{proof}[Beweis der Machbarkeit]
    \[
      \sum_{k=1}^{n} k = \frac{n(n+1)}{2}
    \]
  \end{proof}
\end{document}
Bei Umgebungen für Theoreme und Ähnliches bietet »ntheorem« jedoch mehr Möglichkeiten.

Verfasst: Fr 27. Mai 2016, 18:18
von theo
Ah super, vielen lieben Dank für Deine Antwort!