Bruch mit Doppelstrich mit ams-Umgebung

Bruch mit Doppelstrich mit ams-Umgebung

Ich bin nicht sicher, ob dies als doppelte Frage zählt, aber ich hätte gerne einen Bruch, bei dem das Trennzeichen aus zwei Zeilen besteht. Ich habe versucht, die Tfrac-Lösung unter zu verwendenBruch mit doppelter Linieund es funktioniert gut, bis ich eine ams-Umgebung im Nenner verwende und die folgende Ausgabe erhalte

Bildbeschreibung hier eingeben

Ich nehme an, es hängt mit der Verwendung von zusammen ooalign. Ich habe versucht, online nachzuschlagen, wie ich dabei vorgehen soll, aber ich kann nicht viel finden.

Mein Code ist

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{xcolor}% http://ctan.org/pkg/xcolor

\newcommand{\Tfrac}[2]{%
  \ooalign{%
    $\genfrac{}{}{1.2pt}1{#1}{#2}$\cr%
    $\color{white}\genfrac{}{}{.4pt}1{\phantom{#1}}{\phantom{#2}}$}%
}

$
\Tfrac
    {
        \phantom{test}
    }
    {
        \mathtt{B} \oplus \{\mathit{repeat}:\, \mathtt{B?[int]; S'}\}
        \, \leq \,
        \mathtt{B \oplus}
        \left\{
        \begin{aligned}
            & \mathit{notify} : \mathtt{B![bool]; end} \\
            & \mathit{repeat}: S_4 \\
            & \mathit{stop}: \mathtt{end} \\
        \end{aligned}
        \right\}
    }
$

Bearbeiten: Um den beabsichtigten Verwendungszweck anzuzeigen, würde ich am Ende gerne so etwas haben, aber stattdessen mit doppelten Zeilen für Brüche.

Bildbeschreibung hier eingeben

Antwort1

Ich denke, Sie verwenden das falsche Tool. Wie dem auch sei, eine einfache Änderung meines Codes in einer anderen Antwort auf die Frage, auf die Sie verlinken, genügt.

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newlength{\doublefracgap}
\setlength{\doublefracgap}{0.75pt}
\DeclareRobustCommand{\doublefrac}[2]{%
  \mathinner{\mathpalette\doublefrac@{{#1}{#2}}}%
}
\newcommand{\doublefrac@}[2]{\doublefrac@@#1#2}
\newcommand{\doublefrac@@}[3]{%
  \ooalign{%
    \raisebox{\doublefracgap}{\normalbaselines$\m@th#1\frac{#2}{\phantom{#3}}$}\cr
    \raisebox{-\doublefracgap}{\normalbaselines$\m@th#1\frac{\phantom{#2}}{#3}$}\cr
  }%
}
\newcommand{\ddoublefrac}[2]{{\displaystyle\doublefrac{#1}{#2}}}
\newcommand{\tdoublefrac}[2]{{\textstyle\doublefrac{#1}{#2}}}
\makeatother

\begin{document}

\[
\doublefrac
    {
        \phantom{test}
    }
    {
        \mathtt{B} \oplus \{\mathit{repeat}:\, \mathtt{B?[int]; S'}\}
        \, \leq \,
        \mathtt{B} \oplus
        \left\{
        \begin{aligned}
            & \mathit{notify} : \mathtt{B![bool]; end} \\
            & \mathit{repeat}: S_4 \\
            & \mathit{stop}: \mathtt{end} \\
        \end{aligned}
        \right\}
    }
\]

\end{document}

Der Unterschied liegt in den \normalbaselinesDeklarationen.

Ich habe es \mathtt{B\oplus}auf korrigiert \mathtt{B}\oplus, da Ersteres falsch ist, weil es falsche Abstände erzeugt (und \mathttum \oplusüberhaupt nichts bewirkt).

Bildbeschreibung hier eingeben

verwandte Informationen