我正在尝试排版一个没有分数线的“分数”。我尝试使用 来做到这一点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}