Я не уверен, считается ли это дубликатом вопроса, но я хотел бы иметь дробь, где разделитель состоит из двух линий. Я пробовал использовать решение 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
декларациях.
Я исправил \mathtt{B\oplus}
это на \mathtt{B}\oplus
, так как первый вариант неверен, так как создает неправильный интервал (а \mathtt
around \oplus
вообще ничего не делает).