![等式中的高位引号](https://linux22.com/image/462589/%E7%AD%89%E5%BC%8F%E4%B8%AD%E7%9A%84%E9%AB%98%E4%BD%8D%E5%BC%95%E5%8F%B7.png)
我想在方程式中使用引号(使用 \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$