Ausrichten von Brüchen mit einem Ausrichtungstabo

Ausrichten von Brüchen mit einem Ausrichtungstabo

Ich weiß nicht, ob das wirklich eine gute Idee ist oder nicht, aber ich frage mich, ob es möglich ist, eine Version zu implementieren, \fracbei der Zähler und Nenner mithilfe einer Ausrichtungsregisterkarte ( &) ausgerichtet werden können.

Auf dieser Site gibt es viele Fragen zur Brücheausrichtung. Die naheliegendste Lösung ist in vielen Fällen die Verwendung von \hfill. Betrachten Sie jedoch einen Bruch wie diesen:

Bildbeschreibung hier eingeben

Das obere sieht in meinen Augen ein wenig chaotisch aus, aber die Verwendung \hfillverschiebt den Zähler zu weit nach links. Was ich wirklich will (glaube ich), ist, sie genau an der öffnenden Klammer auszurichten. Also stelle ich mir einen \alignedfracBefehl vor, der es mir erlaubt, zu schreiben

\[
\alignedfrac{q&(x\mid y)}{p_\mathrm{foo}&(w\mid x,y,z)}
\]

und lassen Sie Zähler und Nenner an den &Zeichen ausrichten.

Ich bin mir bewusst, dass dies möglicherweise eine gute Wahl ist oder nicht und dass ich wahrscheinlich ein Nicht-Problem löse, aber dennoch bin ich neugierig, ob es möglich ist, so etwas umzusetzen.

Hier ist das MWE, das das obige Bild erzeugt:

\documentclass{article}
\begin{document}

\noindent without any alignment:
\[
\frac{q(x\mid y)}{p_\mathrm{foo}(w\mid x,y,z)}
\]
using hfill:
\[
\frac{q(x\mid y)\hfill}{p_\mathrm{foo}(w\mid x,y,z)}
\]
\end{document}

Antwort1

Hier konstruiere ich den linken Teil des Bruchs ( \leftfrac) und den rechten Teil ( \rightfrac) unabhängig voneinander und verwende \hfills, um die Teilausrichtungen zu erreichen. Dann setze ich beide nebeneinander, mit einem Negativ \mkerndazwischen.

Gemäß Micos Vorschlag wurden Vorkommen der besseren Darstellung halber |durch ersetzt .\mid

BEARBEITET, um eine Übereinstimmung hinzuzufügen \vphantom, was meiner Meinung nach hilfreich sein wird, wenn die linken und rechten Teile unterschiedliche vertikale Ausdehnungen haben.

\documentclass{article}
\begin{document}
\newcommand\alignedfrac[2]{%
  \leftfrac#1\\#2\relax\mkern-4.5mu\rightfrac#1\\#2\relax
}
\def\leftfrac#1&#2\\#3&#4\relax{%
  \frac{\hfill#1\vphantom{#2}}{\hfill#3\vphantom{#4}}}
\def\rightfrac#1&#2\\#3&#4\relax{%
  \frac{\vphantom{#1}#2\hfill}{\vphantom{#3}#4\hfill}}
\noindent without any alignment:
\[
\frac{q(x\mid y)}{p_\mathrm{foo}(w\mid x,y,z)}
\]
using hfill:
\[
\frac{q(x\mid y)\hfill}{p_\mathrm{foo}(w\mid x,y,z)}
\]
using alignedfrac
\[
\alignedfrac{q&(x\mid y)}{p_\mathrm{foo}&(w\mid x,y,z)}
\]

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Du kannst es schaffen:

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\alignedfrac}[2]{%
  \begingroup
  \setbox0=\vbox{%
    \m@th
    \ialign{&$\displaystyle##$\cr#1\cr#2\cr}%
    \setbox2=\lastbox
    \hbox{%
      \unhbox2
      \unskip
      \setbox4=\lastbox
      \unskip
      \setbox6=\lastbox
      \global\dimen1=\wd6
      \global\dimen3=\wd4
    }
  }
  \frac{\af@make#1\@nil}{\af@make#2\@nil}
  \endgroup
}
\def\af@make#1&#2\@nil{%
  \makebox[\dimen1][r]{$\displaystyle#1$}%
  \makebox[\dimen3][l]{$\displaystyle#2$}%
}
\makeatother

\begin{document}

\begin{gather*}
\alignedfrac{q&(x\mid y)}{p_\mathrm{foo}&(w\mid x,y,z)} \\
\frac{q(x\mid y)}{p_\mathrm{foo}(w\mid x,y,z)}
\end{gather*}

\end{document}

Was ist der Unterschied? Ich erstelle eine Ausrichtung mit dem Primitiv \halignund untersuche dann dessen letzte Reihe, indem ich die gebaute Box zerlege. Ich speichere die Abmessungen der beiden Teile und verwende sie, um Boxen mit der richtigen Breite herzustellen.

Allerdings sehe ich gegenüber dem Standardbruch keine Verbesserung, wie das Bild deutlich zeigt.

Bildbeschreibung hier eingeben

verwandte Informationen