彩色分数条

彩色分数条

创建一个可以根据需要为其条形着色的分数的最简单方法是什么?我知道可以使用命令,\genfrac{left-delim}{right-delim}{thickness}{mathstyle}{numerator}{denominator}但我似乎无法理解。以下是 MWE(如果您能看到的话,就不是那么多):

\documentclass[letterpaper]{article}
\usepackage{amsmath,amssymb}
\usepackage{xcolor}

\begin{document}
$\genfrac{}{}{0.4pt}{}{a}{b}$
\end{document}

更新

应用下面的 Herbert 解决方案会产生一些奇怪的结果。如下所示:

在此处输入图片描述

\documentclass[letterpaper]{article}
\usepackage{amsmath,amssymb}
\usepackage{xcolor}

\def\Frac#1#2{ #1 \color{red}\above 0.4pt \normalcolor #2}

\begin{document}

$ \Frac{n+1}{n-1} $$\displaystyle \Frac{n+1}{n-1} $

\end{document}

注意第二个分数的分母与第一个分数的大小相同。

答案1

感谢@Herbert,我能够利用amsmath软件包文档并提出\frac命令定义的修改版本。文档内容如下:

隐藏广义分数原语\over\atop等,因为它们的语法很奇怪,这在 LaTeX 文档中显然是不合适的。

\@saveprimitive\over\@@over

如果有人坚持使用\over,请先发出警告,然后恢复旧定义。放任政策。

\DeclareRobustCommand{\primfrac}[1]{% \PackageWarning{amsmath}{%
Foreign command \@backslashchar#1;\MessageBreak \protect\frac\space or
\protect\genfrac\space should be used instead% \MessageBreak }
\global\@xp\let\csname#1\@xp\endcsname\csname @@#1\endcsname
\csname#1\endcsname }

因此,LaTeX 在 @Herberts 的回答中发出了警告。文档继续说道

\frac直接调用\@@over,而不是通过\genfrac

并定义\frac

\DeclareRobustCommand{\frac}[2]{{\begingroup#1\endgroup\@@over#2}}

我对 的定义做了\frac一些修改,得出 的命令\cbfrac,仅供colored bar fraction我自己参考。请参阅下面的定义:

\DeclareRobustCommand{\cbfrac}[3][OrangeRed]{{\begingroup#2\endgroup\color{#1}\@@over\normalcolor#3}}

以下 MWE 说明了它的工作原理:

在此处输入图片描述

\documentclass[dvipsnames,letterpaper]{article}
\usepackage{amsmath,amssymb}
\usepackage{xcolor}
\def\Frac#1#2{ #1 \color{red}\above 0.4pt \normalcolor #2}
\makeatletter
\DeclareRobustCommand{\cbfrac}[3][OrangeRed]{{\begingroup#2\endgroup\color{#1}\@@over\normalcolor #3}}
\makeatother
\begin{document}
\noindent
$ \Frac{n+1}{n-1} $
$\displaystyle \Frac{n+1}{n-1} $\\[1ex]
$ \cbfrac{n+1}{n-1} $
$\displaystyle \cbfrac{n+1}{n-1} $
\end{document}

注释该命令\Frac将删除警告。

答案2

\genfrac指的是\over或 ,\above它们是原语。但你可以定义一个自己的,\frac它使用\above

\documentclass[letterpaper]{article}
\usepackage{amsmath,amssymb}
\usepackage{xcolor}

\newcommand\Frac[3][]{ #1 #2\color{red}\above 0.4pt \normalcolor #1#3}

\begin{document}

$ \Frac{n+1}{n-1} $$\Frac[\displaystyle]{n+1}{n-1} $

\end{document}

相关内容