![为 Re 和 Im 创建带前缀的成对分隔符](https://linux22.com/image/386676/%E4%B8%BA%20Re%20%E5%92%8C%20Im%20%E5%88%9B%E5%BB%BA%E5%B8%A6%E5%89%8D%E7%BC%80%E7%9A%84%E6%88%90%E5%AF%B9%E5%88%86%E9%9A%94%E7%AC%A6.png)
我正在尝试为类似这样的事情创建一个新命令:
\operatorname{Re}\left\lbrace\num{1+2i}\right\rbrace
因为我已经在使用该mathtools
包,所以我尝试做这样的事情:(并且我必须取消定义前一个\Re
和\Im
命令,因为它们很丑陋,并且这个命令显然应该被称为\Re
和\Im
。)
\let\Re\undefined
\let\Im\undefined
\DeclarePairedDelimiter\Re{\operatorname{Re}\lbrace}{\rbrace}
\DeclarePairedDelimiter\Im{\operatorname{Im}\lbrace}{\rbrace}
这会起作用,但也会产生许多错误。例如:Missing { inserted. \end{align}
等等。
然后我想:是的,这可能是因为字体无法缩放(也不应该),就像和一样\lbrace
。\rbrace
我尝试了这样的方法:
\let\Re\undefined
\let\Im\undefined
\DeclarePairedDelimiter\braces{\lbrace}{\rbrace}
\newcommand{\Re}{1}{\operatorname{Re}\braces*{#1}}
\newcommand{\Im}{1}{\operatorname{Im}\braces*{#1}}
但这会产生:
缺少插入 $。\newcommand{\Re}{1}{\operatorname{Re}
缺少 \begin{document}。\newcommand{\Re}{1}{\operatorname{Re}
插入\ensuremath
或类似的东西没有多大帮助。
最后一次尝试:
\let\Re\undefined
\let\Im\undefined
\newcommand{\Re}{1}{\operatorname{Re}\left\lbrace #1 \right\rbrace}
\newcommand{\Im}{1}{\operatorname{Im}\left\lbrace #1 \right\rbrace}
缺少插入 $。\newcommand{\Re}{1}{\operatorname{Re}
缺少 \begin{document}。\newcommand{\Re}{1}{\operatorname{Re}
您不能在数学模式下使用“宏参数字符 #”。...nd{\Re}{1}{\operatorname{Re}\left\lbrace #
让这样的事情成功应该不会这么难,对吧?我真的不知道下一步该尝试什么,或者我做错了什么。
答案1
您的语法不正确\newcommand
。
\newcommand{\Re}{1}
应该
\newcommand{\Re}[1]
答案2
您可以使用\DeclarePairedDelimiterXPP
from mathtools
。它将定义 \Re
和命令,它们具有星号版本(在分隔符前\Im
添加一对隐式),但它们还接受、和之间的可选参数,这会添加一对隐式的,&c。\left
\right
\big
\Big
\bigg
\Bigg
\bigl
\bigr
\documentclass[10pt]{article}
\usepackage{mathtools} %
\let\Re\undefined
\let\Im\undefined
\DeclarePairedDelimiterXPP\Re[1]{\operatorname{Re}}{\lbrace}{\rbrace}{}{#1}
\DeclarePairedDelimiterXPP\Im[1]{\operatorname{Im}}{\lbrace}{\rbrace}{}{#1}
\begin{document}
\[ \Re*{\frac{z-1}{z + 1}}\qquad \Im[\Big]{\frac{z-1}{z + 1}} \]%
\end{document}