PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vertikale Ausrichtung der Formelnummerierung, amsmath vs. ntheorem



marius79
12-03-2008, 13:21
Hallo,

ich habe hier (http://www.mrunix.de/forums/showthread.php?t=54885) eine Methode empfohlen bekommen, mit der ich normalen Text sowohl vom Format als auch von der Zählung her in die equation- und align-Umgebungen integrieren kann. Das klappt alles sehr schön. Das folgende Beispiel gefällt mir aber nicht in der vertikalen Ausrichtung von Text und Zähler im ersten Satz:

\documentclass[fleqn,leqno]{scrartcl}

\usepackage[english,ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{calc}
\usepackage[amsmath,thmmarks]{ntheorem}

\setlength{\mathindent}{1.5cm}

\begin{document}

\begin{equation}
\parbox[t]{\textwidth-\mathindent}{Ein kurzer Satz mit unschöner Ausrichtung.}
\end{equation}

\begin{align}
\parbox[t]{\textwidth-\mathindent}{Noch ein Satz, allerdings mit richtiger vertikaler Ausrichtung.}\\
\parbox[t]{\textwidth-\mathindent}{Ein weiterer Satz, der sehr viel länger als die anderen ist und trotzdem keinerlei Probleme bezüglich der vertikalen Ausrichtung bereitet.}
\end{align}

\end{document}

Es scheint, als sei das Label des ersten Satzes zu breit, so dass ein Umbruch erfolgt. Aber es ist ja nicht zu breit, wie die korrekte Ausrichtung in der align-Umgebung zeigt. Ohne ntheorem funktioniert es einwandfrei.

Gibt es eine Möglichkeit, den "Fehler" unter Beibehaltung von ntheorem zu vermeiden? Oder sollte ich auf amsthm umsteigen? Da ich bisher immer ntheorem verwendet habe, würde ich gerne dabei bleiben.

Vielen Dank
marius

Stefan_K
12-03-2008, 19:30
Hallo marius,

das liegt wohl an \endmathdisplay aus ntheorem.sty. Man könnte das so umgehen:
\usepackage{amsmath}
\newcommand*\amsendmathdisplay[1]{}
\let\amsendmathdisplay\endmathdisplay
\usepackage[amsmath,thmmarks]{ntheorem}
\let\endmathdisplay\amsendmathdisplay

Im angegebenen Minimalbeispiel funktioniert es. Evtl. schau Dir an, was \endmathdisplay eigentlich tun sollte (endmarks) bzw. prüfe, ob das nicht evtl. ungewollte Effekte auf Deine anderen Umgebungen hat.

Viele Grüße,

Stefan

marius79
13-03-2008, 12:43
Vielen Dank schon mal, Stefan! Das klappt in meinem Text schon mal ganz gut, und, zumindest soweit ich das überblicke, auch ohne allzu viel Unheil anzurichten.

Den ntheorem-Code für \endmathdisplay verstehe ich nicht so recht. Liegt es vielleicht an der Definition der \postdisplaypenalty?

Naja, wenn sich doch noch ein unerwünschter Nebeneffekt einstellt, steige ich wohl auf amsthm um.

Grüße
marius