Seite 1 von 2

Align komplett über Seitenrand

Verfasst: So 29. Nov 2020, 16:38
von DEVV

Hi Leute,

ich habe folgende Formel, die sich selbst komplett rechts aus der Seite schiebt.
Wie genau bekomme ich die vernünftig angezeigt? Ich habe bereits diverse Kombinationen mit & ausprobiert:

Minimalbeispiel:

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}
\usepackage[latin1]{inputenc}

\title{Minimalbeispiel}


\begin{document}
\maketitle

\newpage
\begin{align*}
MsgBrk: (In \times In_{sub}) \rightarrow (Out \times Ack_{sender} \times Ack_{receiver} ) \\
MsgBrk \equiv  \ \exists mds, mdr \in \mathbb{N}, mstore \in \mathbb{N}\textbackslash \{ 0\}: \\
\forall x\in In^*, x' \in In_{sub}^\omega, t\in T, m \in M: \exists y \in Ack_{sender}^\omega, y'\in Ack_{receiver}, z\in Out^\omega: f(x,x') = (z,y,y') \ \land \\
\# y \leq \# x \leq mds + \# y  \ \land \\
\# y' \leq \# x' \leq mdr + \# y'  \ \land \\
z \sqsubseteq success(x, y)  \ \land\\
\# success(x, y) - \# z > 0 \Rightarrow lt(y') \neq subFail  \ \land \\
success(x, y) - \# z < mstore \Rightarrow lt(y) \neq error \ \land \\
\# (t,m) \text{\textcopyright} z > 0 \Rightarrow \# t \text{\textcopyright} x' > 0.
\end{align*}


\end{document}

Verfasst: So 29. Nov 2020, 17:59
von Gast

Du müsstest irgendwo in der zu langen Zeile einen Zeilenumbruch setzen.


Re: Align komplett über Seitenrand

Verfasst: Mo 30. Nov 2020, 13:28
von DEVV

Ich würde das ja verstehen, wenn die lange Zeile den kompletten verfügbaren Platz ausreizen würde. Aber die Gleichung beginnt doch bereits sehr weit rechts und verlässt dann die Seite...


Re: Align komplett über Seitenrand

Verfasst: Mo 30. Nov 2020, 13:59
von gast

Ich glaube, dir fehlt das Grundverständnis dafür, was align eigentlich ist.

align ist (in der einfachsten Form) eine zweispaltige Tabelle. Die linke Spalte ist rechtsbündig und die rechte Spalte ist linksbündig. Die ganze Tabelle wird zentriert. Da du keinen Spaltentrenner (&-Zeichen) verwendest, bleibt die rechts Spalte leer und alle Zeilen sind rechtsbündig. Dabei bestimmt die längste Formelzeile dann die Breite dieser Spalte.

Was du da machst, ist aber insgesamt nicht korrekt. So werden im Mathemodus Dinge wie "MsgBrk" beispielsweise als Produkt einzelner Variablen (also letztlich M * s * g * B * r * k) formatiert. Wenn du Wörter haben willst, musst du diese explizit als \text{MsgBrk} markieren. Mehrbuchstaben-Variablen sind ggf. als \mathrm{Hohoho} möglich, aber normalerweise wenig sinnvoll.

Hier stellt sich auch die Frage, ob das wirklich ein Gleichungssystem sein soll oder einzelne Gleichungen. Das kann ich aber nicht beurteilen, weil ich weiß, worum es hier geht. Deshalb kann ich dir auch nicht sagen, wo alternativ die & sinnvoll zu platzieren wären. Ich vermute, dass das Pseudo-Logik ist. Auch hat \textbackslash in Mathematik eher nichts verloren. Da wäre eher \backslash angebracht.

Die erste Zeile könnte beispielsweise

\text{MsgBrk} &: (\text{In} \times \text{In}_{\text{sub}}) \rightarrow (\text{Out} \times \text{Ack}_{\text{sender}}
                \times \text{Ack}_{\text{receiver}} ) \\

lauten. Natürlich ändert sich dadurch noch nicht viel, insbesondere nicht die generelle Ausrichtung, solange man die restlichen Zeilen in derselben align*-Umgebung unverändert hat. Nimmt man den Rest raus, kann man den Unterschied deutlich sehen (und damit wird dann auch klar, welche Auswirkungen lange Zeilen auf das gesamte Gleichungssystem haben). Für den Rest und vor allem, wo die Zeilen korrekt in Spalten zu trennen oder auf mehrere Zeilen zu verteilen wären, fehlt mir das wissen, was das ganze soll.

Ich würde dringend empfehlen, eine ausführliche LaTeX-Einführung zu studieren. Das hilft beim Grundverständnis ungemein. Die Anleitungen zu den Pakten, insbesondere amsldoc kann zusätzlich helfen. Wenn komplizierte Mathematik zu setzen ist, ist aber sogar ein weiterführendes Buch zu empfehlen. So gibt es beispielsweise das Mathematiksatz-Buch von Herbert Voss.


Re: Align komplett über Seitenrand

Verfasst: Mo 30. Nov 2020, 17:14
von DEVV

Danke für die ganzen Tipps. Ich werde jetzt die \text-Umgebung für alle Bezeichner in meinen Formeln verwenden. Wobei ich aktuell überlegen muss, ob ich dann \text oder \textit nehme, da Mengen und andere Mathemodule alle leicht kursiv gezeichnet sind und die Bezeichner dann nicht kursiv in den Formeln ständen.


Re: Align komplett über Seitenrand

Verfasst: Mo 30. Nov 2020, 17:43
von gast

Eher \mathit als \textit, wenn es Variablen sein sollen.


Re: Align komplett über Seitenrand

Verfasst: Mo 30. Nov 2020, 19:18
von DEVV
gast hat geschrieben:
Mo 30. Nov 2020, 17:43

Eher \mathit als \textit, wenn es Variablen sein sollen.

Gibt es da im Endprodukt einen Unterschied?


Re: Align komplett über Seitenrand

Verfasst: Mo 30. Nov 2020, 19:20
von gast

Das hängt vom Font ab. Da aber LaTeX nun einmal zwischen Text- und Mathefonts unterscheidet, sollte man sich gar nicht erst auf Fontabhängigkeiten einlassen, sondern es gleich richtig lernen.


Re: Align komplett über Seitenrand

Verfasst: Mo 30. Nov 2020, 19:44
von DEVV

Aber sollte dann \text{} in der Matheumgebung nicht auch die falsche Font verwenden?


Re: Align komplett über Seitenrand

Verfasst: Mo 30. Nov 2020, 20:01
von gast

Wenn man damit Wörter=Text setzt, ist das genau richtig. Oben wurde doch explizit unterschieden.