等式中的高位引号

等式中的高位引号

我想在方程式中使用引号(使用 \begin{equation} ... \end{equation}),并且希望它们能够适应中间文本的高度。例如:

\begin{equation}
    x = \left''\frac12\right``
\end{equation}

或者

\begin{equation}
    x = \Big{''}\frac12\Big{``}
\end{equation}

但是,这两种方法,以及我尝试的其他任何方法,都没有达到我想要的效果。

如果有人能帮忙的话请帮忙。

答案1

您将报价提高到所需的金额,但绝不会降低报价。

\documentclass{article}

\makeatletter

\NewDocumentCommand{\mathquotes}{m}{% #1 = subformula to be quoted
  {\mathpalette\mathquotes@{#1}}%
}

\newcommand{\mathquotes@}[2]{%
  \begingroup
  \sbox\z@{$\m@th#1#2$}%
  \sbox\tw@{\normalfont``}%
  \ifdim\ht\tw@>\ht\z@
    \dimen@=0pt
  \else
    \dimen@=\dimexpr\ht\z@-\ht\tw@\relax
  \fi
  \raisebox{\dimen@}{\normalfont``}\box\z@\raisebox{\dimen@}{\normalfont''}%
  \endgroup
}

\makeatother

\begin{document}

\[
\mathquotes{a}+\mathquotes{\frac{1}{2}}
\]

\end{document}

在此处输入图片描述

\mathquotes*这是使用单引号的版本。

\documentclass{article}

\makeatletter

\NewDocumentCommand{\mathquotes}{sm}{{% #2 = subformula to be quoted
  \IfBooleanTF{#1}{%
    \mathpalette\mathquotes@{{`}{#2}{'}}%
  }{%
    \mathpalette\mathquotes@{{``}{#2}{''}}%
  }%
}}

\newcommand{\mathquotes@}[2]{\mathquotes@@#1#2}
\newcommand{\mathquotes@@}[4]{%
  \begingroup
  \sbox\z@{$\m@th#1#3$}%
  \sbox\tw@{\normalfont#2}%
  \ifdim\ht\tw@>\ht\z@
    \dimen@=0pt
  \else
    \dimen@=\dimexpr\ht\z@-\ht\tw@\relax
  \fi
  \raisebox{\dimen@}{\normalfont#2}\box\z@\raisebox{\dimen@}{\normalfont#4}%
  \endgroup
}

\makeatother

\begin{document}

\[
\mathquotes{a}+\mathquotes{\frac{1}{2}}+\mathquotes*{A}
\]

\end{document}

在此处输入图片描述

答案2

引号不是分隔符,因此您不能使用\left...\right\Big和朋友。而且它们仅适用于单个字符,而这''并不适用。

此解决方案将把引号提升到分数的高度:

引号

\catcode`\@=11
% \raisearound{<left material>}{<right material>}{<center material>}
\def\raisearound#1#2#3{\mathpalette\raisearoundA{{#1}{#2}{#3}}}
\def\raisearoundA#1#2{\raisearoundB#1#2}
\def\raisearoundB#1#2#3#4{{%
    \setbox0=\hbox{#2}%
    \setbox1=\hbox{#3}%
    \setbox2=\hbox{$\m@th#1#4$}%
    \raise\dimexpr\ht2-\ht0\relax\box0%
    \copy2%
    \raise\dimexpr\ht2-\ht1\relax\box1%
}}
\catcode`\@=12

$A+\raisearound{``}{''}{\frac12}+B$

$\displaystyle A+\raisearound{``}{''}{\frac12}+B$

相关内容