ams 環境での二重線付き分数

ams 環境での二重線付き分数

これは重複した質問になるかどうかわかりませんが、区切り線が2行の分数を知りたいです。Tfracソリューションを使用してみました。二重線のある分数分母にams環境を使用して次の出力を得るまでは正常に動作します。

ここに画像の説明を入力してください

これは の使用法に関連していると思いますooalign。これをどのように進めればよいかをオンラインで調べてみましたが、あまり見つけられません。

私のコードは

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

編集: 意図した使用方法を示すために、代わりに二重線で区切られた分数を使用した次のようなものにしたいと思います。

ここに画像の説明を入力してください

答え1

間違ったツールを使用していると思います。とにかく、リンク先の質問に対する別の回答にある私のコードを少し変更するだけで十分です。

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

違いは\normalbaselines宣言にあります。

前者は間違った間隔を生成するので間違っているので(そしてaround はまったく何もしないので) 、\mathtt{B\oplus}に修正しました。\mathtt{B}\oplus\mathtt\oplus

ここに画像の説明を入力してください

関連情報