我想为trace
已定义的矩阵编写一个新命令,如下所示:
\newcommand{\trace}[1]{\mathsf{trace}\!\left[#1\right]}
但是当我调用
\trace{A^\top}
自动缩放时,会使[
和]
字符\bigl[
和\bigr]
。我如何将可选的附加参数传递给我的新命令,以便我可以控制缩放?理想情况下,它会
\trace[\big]{A^\top}
获取缩放版本并
\trace{A^\top}
获得标准版本。
答案1
我建议你使用数学工具包及其宏来创建满足语法要求的\DeclarePairedDelimiterXPP
用户宏。使用此设置,\trace
\trace
可用于生成基本大小的方括号,\trace*
可用于自动调整方括号的大小,以及\trace[\big]
可以通过\trace[\Bigg]
直接选择方括号的具体尺寸来选择。
\documentclass{article} % or some other suitable document class
\usepackage{mathtools} % for '\DeclarePairedDelimiterXPP' macro
% See pp. 27f. of user guide of 'mathtools' package:
\DeclarePairedDelimiterXPP\trace[1]{\operatorname{\mathsf{trace}}}[]{}{#1}
\begin{document}
$\trace{A}$, $\trace[\big]{A^\top}$, $\trace*{A^\top}$, $\trace[\Bigg]{A^\top}$
\end{document}
答案2
您可以像以下代码一样定义两个新命令:
\documentclass[11pt,a4paper]{article}
\usepackage{amsmath}
\newcommand{\trace}[1]{\mathsf{trace}\!\left[#1\right]}
\newcommand{\traceb}[1]{\mathsf{trace}\!\Bigl[#1\Bigr]} %<-- Big not big
\begin{document}
$\traceb{A^\top}$ \qquad $\trace{A^\top}$
$\traceb{\dfrac{x+y}{x-y}}$ \qquad $\trace{\dfrac{x+y}{x-y}}$
$\traceb{\begin{matrix}a&b\\c&d\end{matrix}}$
\qquad $\trace{\begin{matrix}a&b\\c&d\end{matrix}}$
\end{document}
输出为: