Fracción con doble línea con entorno ams.

Fracción con doble línea con entorno ams.

No estoy seguro de si esto cuenta como una pregunta duplicada, pero me gustaría tener una fracción donde el delimitador consta de dos líneas. Intenté usar la solución Tfrac enFracción con línea duplicaday funciona bien, hasta que uso un entorno ams en el denominador y obtengo el siguiente resultado

ingrese la descripción de la imagen aquí

Supongo que está relacionado con el uso de ooalign. Intenté buscar en línea cómo debería hacer esto, pero parece que no puedo encontrar mucho.

mi codigo es

\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\}
    }
$

Editar: para mostrar el uso previsto, me gustaría terminar con algo como esto, pero con fracciones de doble línea.

ingrese la descripción de la imagen aquí

Respuesta1

Creo que estás usando la herramienta equivocada. De todos modos, una simple modificación de mi código en otra respuesta a la pregunta a la que vincula será suficiente.

\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}

La diferencia está en las \normalbaselinesdeclaraciones.

\mathtt{B\oplus}Lo arreglé \mathtt{B}\oplus, ya que el primero es incorrecto ya que produce un espaciado incorrecto (y \mathttalrededor \oplusno hace nada en absoluto).

ingrese la descripción de la imagen aquí

información relacionada