以下是我尝试过的:
\documentclass{article}
\usepackage{amsmath,mathtools}
\usepackage{environ,scalerel}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont{OldStandard-Regular.otf}[range={"0028,"0029},]
\let\pmatrix\relax
\let\endpmatrix\relax
\NewEnviron{pmatrix}{\scaleleftright[.8ex]{(}{\begin{matrix}\BODY\end{matrix}}{)}}
\begin{document}
\begin{align*}
\scaleleftright[2ex]{(}{a^{\dfrac{n^{k}}{2}}}{)}\\
\begin{pmatrix}
ajsbdjkhfbv & \mbox{ where}\\
\alpha,\beta,\Omega & \mbox{ otherwise}
\end{pmatrix}
\end{align*}
\end{document}
该scalerel
包应该可以帮助使用所述字体的括号并调整大小。但我一直收到此错误:
Argument of \pmatrix has an extra }. ^^I\end{align*}
Paragraph ended before \pmatrix was complete. ^^I\end{align*}
注意:没有限制,任何可以处理这个问题的解决方案都可以。
答案1
这是一个解决方案。它通过将环境的主体放在一个框 ( ) 中来避免将环境的整个主体作为参数\l_masum_box
。然后该框用于 的第二个强制参数\scaleleftright
。
\documentclass{article}
\usepackage{mathtools}
\usepackage{scalerel}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont{OldStandard-Regular.otf}[range={"0028,"0029},]
\ExplSyntaxOn
\box_new:N \l_masum_box
\RenewDocumentEnvironment{pmatrix}{}
{
\hbox_set:Nw \l_masum_box
\c_math_toggle_token
\begin{matrix}
}
{
\end{matrix}
\c_math_toggle_token
\hbox_set_end:
\scaleleftright[.8ex]{(}{\box_use:N \l_masum_box}{)}
}
\ExplSyntaxOff
\begin{document}
\begin{align*}
\scaleleftright[2ex]{(}{a^{\dfrac{n^{k}}{2}}}{)}\\
\begin{pmatrix}
ajsbdjkhfbv & \mbox{ where}\\
\alpha,\beta,\Omega & \mbox{ otherwise}
\end{pmatrix}
\end{align*}
\end{document}
该代码必须用 xelatex 或 lualatex 进行编译(因为它使用unicode-math
)。