获取 Fraction Latex 顶级报价

获取 Fraction Latex 顶级报价

我正在尝试在 LaTeX 中将分数放在引号中。到目前为止,我有以下内容:

\documentclass{article}

\newcommand*{\mquote}[1]{\text{``\(#1\)''}}

\begin{document}
\[
  \frac{f(x)}{g(x)} \implies \mquote{\frac{0}{0}}
\]
\end{document}

不幸的是,这会使报价过低。我怎样才能使它们达到分数的顶部?

答案1

测量要引用的物体;如果高于引用,则将其抬高。

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\mquote}[1]{{\mathpalette\mqu@te{#1}}}

\newcommand{\mqu@te}[2]{%
  \sbox0{$\m@th#1\text{``}$}%
  \sbox2{$\m@th#1\text{''}$}%
  \sbox4{$\m@th#1#2$}%
  \ifdim\ht4>\dimexpr\ht0+1pt\relax
    \raisebox{\dimexpr\ht4-\height}{\box0}%
    #2%
    \raisebox{\dimexpr\ht4-\height}{\box2}%
  \else
    \box0 #2\box2
  \fi
}
\makeatother

\begin{document}
\[
  \mquote{x} \implies \mquote{\frac{0}{0}} \implies \mquote{A}
  \implies \mquote{\frac{\dfrac{x}{x+1}}{\dfrac{y^2}{y+1}}}
\]
\[
\textstyle \mquote{\frac{0}{0}}
\]
\end{document}

在此处输入图片描述

一些解释。首先,\mathpalette在以下问题的答案中解释了\mathpalette 的奥秘所以我不会触及这个话题;只需说在 的代码中\mqu@te,代表当前样式。我们需要它,因为中的#1数学排版不同。在同一个宏中,代表要引用的子公式。\displaystyle\textstyle#2

工作原理很容易解释。我将引号设置在两个框中,并使用与数学样式相对应的正确字体大小\text。在临时框寄存器 4 中,我设置要引用的公式,以便我们可以访问其尺寸。然后,代码检查公式的高度是否大于引号的高度(加上 1pt 的小缓冲区),如果是,则将包含引号的框升高子公式的高度减去引号的高度(\ht4-\height);在此期间,公式被排版。否则,包含引号的框将与它们之间的子公式一起传递。

答案2

这能满足你的需要吗?

\documentclass{article}
\usepackage{amsmath,scalerel}
\newsavebox\tmpbox
\newcommand*{\mquote}[1]{\ThisStyle{\savebox{\tmpbox}{\hbox{$\SavedStyle#1$}}%
  \raisebox{\dimexpr\ht\tmpbox-.7\ht\strutbox}{``}\usebox{\tmpbox}%
  \raisebox{\dimexpr\ht\tmpbox-.7\ht\strutbox}{''}}}

\begin{document}
\[
  \frac{f(x)}{g(x)} \implies \mquote{\frac{0}{0}} \implies \mquote{A} 
  \implies \mquote{\frac{~\dfrac{x}{x+1}~}{\dfrac{y^2}{y+1}}}
\]
\end{document}

在此处输入图片描述

相关内容