重新定义括号

重新定义括号

在我的论文中,我使用了很多括号来表示分数,每次我都必须使用 \left( \frac{a}{b} \right)。如果我有一个很长的等式和很多分数,那就会变得非常混乱。

有没有办法重新定义(,以便每次我输入时(它都会自动被解释为\left(

我尝试将其重新定义为宏,但它似乎不能与括号一起使用。

谢谢你的建议。

答案1

重新定义括号(和的含义)可能相当危险,因为它们可能出现在很多情况下,甚至在数学材料中。在某些情况下,你可能会不是希望括号自动扩大。

您可能不想重新定义括号的含义,而是要考虑定义一个新的宏,比如说 \pfrac (我想是“括号分数”的缩写),该宏会自动将分数表达式括在自动调整大小的括号中:

\newcommand{\pfrac}[2]{\left( \frac{#1}{#2} \right)}

这样您就可以编写诸如 之类的表达式\pfrac{1}{2}。请注意,这比编写 稍微简单一些(并且重要的是,不容易因省略左括号和/或右括号而导致“事故”)(\frac{1}{2})

如果您采用这种方式,即,将大量小数表达式括在自动调整大小的括号中,我建议您也加载该mleftright包并在前言中发出命令\mleftright。这样做可以消除在各种情况下由\left和插入的额外空格\right

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\newcommand{\pfrac}[2]{\left(\frac{#1}{#2}\right)}
\usepackage{mleftright}
\mleftright
\begin{document}
\[ 
\pfrac{1}{2} \pfrac{3}{4} \pfrac{5}{6} 
\textstyle \pfrac{1}{2} \pfrac{3}{4} \pfrac{5}{6} 
\]
\end{document}

附录,由 egreg 的评论提示:还可以利用包\genfrac的宏amsmath来定义一个分数宏,该宏会自动用一对括号将其内容括起来。例如,可以定义

\newcommand{\qfrac}[2]{\genfrac {(} {)} {} {} {#1} {#2}}

用这个宏代替\pfrac上面的 MWE 可得出:

在此处输入图片描述

需要注意的是,括号现在非常接近分数表达式。您可能(或可能不喜欢)这种外观,而不是\pfrac上面给出的宏产生的外观。

答案2

第一次尝试(不受数学模式等的限制):

\documentclass{article}

\begin{document}

\let\lb=(
\let\rb=)

\catcode`\(=\active
\def({\left\lb}
\catcode`\)=\active
\def){\right\rb}

$$
\lb\frac{a}{b}\rb
\quad
(\frac{a}{b})
$$


\end{document}

相关内容