在数学模式下,如何使分数线“不可见”?

在数学模式下,如何使分数线“不可见”?

我正在尝试排版一个没有分数线的“分数”。我尝试使用 来做到这一点genfrac,但如下例所示, 中的分子和分母genfrac比 中的分子和分母相距更远frac。我该如何纠正这个问题?

我正在尝试创建一个表格,其中一个条目(“单元格”)包含两个条目——一个在另一个之上——如下方 MWE 中的第 5 行所示。换句话说,我想让下方 MWE 表格中的分数条“不可见”。

\documentclass[oneside,11pt]{book}

\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage[T1]{fontenc}
\usepackage[
  expansion = false ,
  tracking = smallcaps ,
  letterspace = 40 ,
  final
]{microtype}
\usepackage{booktabs}
\usepackage[font={sf,small},labelsep=quad,labelfont=sc]{caption}
\usepackage[subrefformat=parens]{subcaption}

\begin{document}

$\frac{1}{2}\;\genfrac{}{}{0pt}{}{1}{2}$

\begin{table}[!h]
  \begin{tabular}{lll}
    Row 1 & 1.23 & Some text.\\
    Row 2 & 7.89 & Additional text.\\
    Row 3 & 4.56 & More text.\\
    \addlinespace
    Row 4 & 1.23 & Some text.\\
    Row 5 & $\frac{\textit{A}:\;3.14}{\textit{B}:\;6.28}$ & Additional text.\\
    Row 6 & 4.56 & More text.\\
  \end{tabular}
\end{table}

\end{document}

例子

答案1

这有点出乎意料,我得再读一遍附录 G……但这\genfrac只是暴露了底层的原语,\atop并且\above0pt两者都省略了规则,但增加了分子的高度。您可以指定默认规则的负宽度( )以获得与(使用原语)-0.4pt相同的高度。\frac\over

这里的前四种形式使用与 相同的高度\frac,后三种较高。

在此处输入图片描述

请注意,这仅适用于文本样式,而不适用于显示样式。

\documentclass[oneside,10pt]{book}
\usepackage{amsmath}

\usepackage[T1]{fontenc}

\begin{document}

\hrule
$
\frac{1}{2}\;
\genfrac{}{}{-.4pt}{}{1}{2}\;
{1 \above -.4pt 2}\;
{1\over 2}\;
{1 \above 0pt 2}\;
\genfrac{}{}{0pt}{}{1}{2}\;
{1\atop 2}
$
\hrule
\smallskip
\hrule
$\displaystyle
\frac{1}{2}\;
\genfrac{}{}{-.4pt}{}{1}{2}\;
{1 \above -.4pt 2}\;
{1\over 2}\;
{1 \above 0pt 2}\;
\genfrac{}{}{0pt}{}{1}{2}\;
{1\atop 2}
$
\hrule


\end{document}

答案2

\frac定义为(在终端中\begingroup #1\endgroup \over #2输入定义)。您可以重新定义它以白色打印该行:texdef -t latex \frac\over

\newcommand{\fracnoline}[2]{{\begingroup #1\endgroup \color{white}\over\color{black} #2}}

正如 Mico 在评论中指出的那样,为了在原始颜色不是黑色的情况下概括宏,您可以使用以下定义:

\newcommand{\fracnoline}[2]{\colorlet{foo}{.}{\begingroup #1\endgroup \color{white}\over\color{foo} #2}}

完整代码:

\documentclass[oneside,11pt]{book}

\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage[T1]{fontenc}
\usepackage[
  expansion = false ,
  tracking = smallcaps ,
  letterspace = 40 ,
  final
]{microtype}
\usepackage{booktabs}
\usepackage[font={sf,small},labelsep=quad,labelfont=sc]{caption}
\usepackage[subrefformat=parens]{subcaption}
\usepackage{xcolor}

\begin{document}
\newcommand{\fracnoline}[2]{\colorlet{foo}{.}{\begingroup #1\endgroup \color{white}\over\color{foo} #2}}

$\frac{1}{2}\;\genfrac{}{}{0pt}{}{1}{2}$

\begin{table}[!h]
  \begin{tabular}{lll}
    Row 1 & 1.23 & Some text.\\
    Row 2 & 7.89 & Additional text.\\
    Row 3 & 4.56 & More text.\\
    \addlinespace
    Row 4 & 1.23 & Some text.\\
    Row 5 & $\frac{\textit{A}:\;3.14}{\textit{B}:\;6.28} \fracnoline{\textit{A}:\;3.14}{\textit{B}:\;6.28}$ & Additional text.\\
    Row 6 & 4.56 & More text.\\
  \end{tabular}
\end{table}

\end{document}

结果:

在此处输入图片描述

答案3

amsmath可以使用以下\substack命令:

\documentclass[oneside,11pt]{book}
\usepackage{amsmath}
\usepackage{booktabs}

\begin{document}
 
  \begin{table}[!h]
   \begin{tabular}{lll}
    Row 1 & 1.23 & Some text.\\
    Row 2 & 7.89 & Additional text.\\
    Row 3 & 4.56 & More text.\\
    \addlinespace
    Row 4 & 1.23 & Some text.\\
    Row 5 & $ \substack{\textit{A}:\;3.14\\[1pt]\textit{B}:\;6.28}$ & Additional text.\\
    Row 6 & 4.56 & More text.\\
  \end{tabular}
 \end{table}
 
\end{document}

在此处输入图片描述

答案4

从 David 的回答开始,一个可以在显示、文本和脚本样式(而不是使用其他优化的 scriptscript 样式)中工作的固定版本。

\documentclass[oneside,10pt]{book}
\usepackage{amsmath}
\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage[T1]{fontenc}

\makeatletter
\DeclareRobustCommand{\xabove}[2]{{%
  \mathpalette\fix@genfrac{{#1}{#2}}%
}}
\newcommand{\fix@genfrac}[2]{\fix@@genfrac#1#2}
\newcommand{\fix@@genfrac}[3]{%
  \genfrac{}{}{\fix@@@genfrac{#1}}{}{#2}{#3}%
}
\newcommand{\fix@@@genfrac}[1]{%
  \ifx#1\displaystyle 0pt\else
  \ifx#1\textstyle -\fontdimen8\textfont2 \else
  \ifx#1\scriptstyle -\fontdimen8\scriptfont2 \else
  0pt % but doesn't really work :-(
  \fi\fi\fi
}
\makeatother

\begin{document}

$\displaystyle\frac{1}{2}\xabove{1}{2}$

$\textstyle\frac{1}{2}\xabove{1}{2}$

$\scriptstyle\frac{1}{2}\xabove{1}{2}$

%$\scriptscriptstyle\frac{1}{2}\xabove{1}{2}$

\end{document}

在此处输入图片描述

相关内容