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?