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
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.
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 \normalbaselines
declaraciones.
\mathtt{B\oplus}
Lo arreglé \mathtt{B}\oplus
, ya que el primero es incorrecto ya que produce un espaciado incorrecto (y \mathtt
alrededor \oplus
no hace nada en absoluto).