Seite 1 von 1
Horizontale Abstände in Matheumgebungen
Verfasst: Mi 29. Okt 2014, 15:20
von Dimitri
Hallo liebe Latex-Freunde,
trotz "exaktem Untereinanderausrichten" der alignxxx-Umgebungen treten - bei genauem Hinsehen - Verschiebungen der horizontalen Abstände auf: "x" steht weiter rechts als "\mathbf{J}y" was wiederum weiter rechts steht als "xyz":
\documentclass[fontsize=12pt]{scrreprt}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{2}
&\text{berechne}~ & & x\\
&\text{und} & &
\!\begin{alignedat}[t]{1}
&\!\begin{aligned}[t]
\mathbf{J}y
\end{aligned}\\
&\!\begin{aligned}
xyz
\end{aligned}
\end{alignedat}
\end{alignat*}
\end{document}
Die Verschiebung ist zwar sehr gering, aber mich nervt es trotzdem. Kann Mir jemand erklären, woran das liegt und Mir bei der Beseitigung helfen?
Beste Grüße,
Dimitri
Verfasst: Mi 29. Okt 2014, 20:15
von esdd
Vielleicht verstehe ich nicht richtig, was Du wie ausrichten möchtest, aber in Deinem Beispiel sind x, \mathbf{J}y und xyz linksbündig ausgerichtet. Damit das wirklich sichtbar wird, habe ich mal per overlay noch einen Rahmen eingefügt.
\documentclass[fontsize=12pt]{scrreprt}
\usepackage{amsmath}
\usepackage{tikz}% für den overlay Rahmen
\begin{document}
\begin{alignat*}{2}
&\text{berechne}~ & & x\\
&\text{und} & &
\!\begin{alignedat}[t]{1}
&\!\begin{aligned}[t]
\mathbf{J}y
\end{aligned}\\
&\!\begin{aligned}
xyz
\end{aligned}
\end{alignedat}
\end{alignat*}
\begin{alignat*}{2}
&\text{berechne}~ & & x\\
&\text{und} & &
\!\begin{alignedat}[t]{1}
&\!\begin{aligned}[t]
\mathbf{J}y
\end{aligned}\\
&\!\begin{aligned}
xyz
\tikz[remember picture,overlay]
\node[anchor=east,inner sep=0pt,draw,minimum height=3cm]
{\phantom{$xyz$}};
\end{aligned}
\end{alignedat}
\end{alignat*}
\end{document}
Gruß
Elke
Verfasst: Mi 29. Okt 2014, 21:27
von Dimitri
Also bei meinem pdf-Reader und einem Zoom ab 800% wird deutlich sichtbar, dass x, \mathbf{J}y und xyz nicht exakt untereinander stehen...
Verfasst: Mi 29. Okt 2014, 21:32
von Dimitri
Stop, war ein Fehler meinerseits. Habe ein \! vergessen...
Danke vielmals.
Verfasst: Mi 29. Okt 2014, 21:56
von Dimitri
Wenn ich aber Folgendes nehme, funktionierts nicht mehr:
\documentclass[fontsize=12pt]{scrreprt}
\usepackage{amsmath}
\usepackage{tikz}% für den overlay Rahmen
\newcommand{\changefont}[3]{\fontfamily{#1} \fontseries{#2} \fontshape{#3} \selectfont}
\DeclareMathAlphabet{\test}{OML}{cmm} {bx}{it}
\begin{document}
\begin{alignat*}{2}
&\text{berechne}~ & & x\\
&\text{und} & &
\!\begin{alignedat}[t]{1}
&\!\begin{aligned}[t]
\mathbf{J}y
\end{aligned}\\
&\!\begin{aligned}
\test{x}yz
\end{aligned}
\end{alignedat}
\end{alignat*}
\begin{alignat*}{2}
&\text{berechne}~ & & x\\
&\text{und} & &
\!\begin{aligned}[t]
&\langle\mathbf{J}y\\
&\! \begin{gathered}
bla\\
\test{x}yzbla\\
bla
\end{gathered}
\end{aligned}
\tikz[remember picture,overlay]
\node[anchor=east,inner sep=0pt,draw,minimum height=4cm]
{\phantom{$\test{x}yzbla$}};
\end{alignat*}
\end{document}
Welche Abstände fügt Latex denn da ein und wieso?
Ich möchte gerne, dass x exakt unter \langle und \test{x}yzbla steht - die (horizontal) längste Komponente in der gathered-Umgebung soll linksbündig zu x und \langle sein.
Kann Mir da bitte jemand helfen?
Viele Grüße,
Dimitri
PS: Habe die Box noch etwas verschoben, damit man es besser sieht: 30.10., 00:22 Uhr
Verfasst: Do 30. Okt 2014, 09:38
von esdd
Wenn Du eine \fbox mit einem fboxsep von 0pt einfügst, siehst Du das die Abstände Bestandteil der Zeichen sind:
\documentclass[fontsize=12pt]{scrreprt}
\usepackage{amsmath}
\usepackage{tikz}% für den overlay Rahmen
\DeclareMathAlphabet{\test}{OML}{cmm} {bx}{it}
\setlength\fboxsep{0pt}
\begin{document}
\begin{alignat*}{2}
&\text{berechne}~ & & \fbox{$x$}\\
&\text{und} & &
\!\begin{aligned}[t]
&\fbox{$\langle$}\mathbf{J}y\\
&\! \begin{gathered}
bla\\
\fbox{$\test{x}yzbla$}\\
bla
\end{gathered}
\end{aligned}
\tikz[remember picture,overlay]
\node[anchor=east,inner sep=0pt,draw,minimum height=4cm]
{\phantom{\fbox{$\test{x}yzbla$}}};
\end{alignat*}
\end{document}
Gruß
Elke
Verfasst: Do 30. Okt 2014, 10:32
von Dimitri
Kann ich daran (in einfacher Weise) irgendwas ändern??? Oder sollte ich das deiner Meinung nach einfach so lassen?