例如,鉴于这一点:
((a+b)c)^d
我希望它显示:
\big((a+b)c\big)^d
但无需明确说明\big
答案1
我建议您加载mleftright
包,发出指令\mleftright
(以避免插入不必要的额外空格),然后发出指令\delimitershortfall-1sp
。这样,自动调整大小的括号将自动增大,即使括号内的内容不“高”。
\documentclass{article}
\delimitershortfall-1sp
\usepackage{mleftright}
\mleftright % make \left & \right behave like \mleft & \mright
\begin{document}
\[
\left(\left\langle\left\{\left[\left(\left(a+b%
\right)c\right)\right]\right\}\right\rangle\right)
\]
\end{document}
如果你注释掉该指令\delimitershortfall-1sp
,你会得到
答案2
我想添加另一种解决方案,因为负面的解决方案\delimtershortfall
看起来有点不愉快。
我所做的是声明一个括号函数,该函数用于\vphantom
为\raisebox
外部定界符添加额外的高度。
解决方案并不完美:
我使用
\mathop
因为其他方法\vphantom
不起作用然后添加负空间来抵消增加的额外空间\mathop
。另外,
\raisebox
您还需要使用\( \)
进入数学模式并\displaystyle
获得正确的虚拟高度
但它对我有用,你仍然可以调整\delimtershortfall
并\delimiterfactor
满足你的喜好(如果你还调整了 中的增加\raisebox
)。你也可以更改 中的值\raisebox
来调整分隔符的增长。
为了进一步阅读,我推荐这篇文章: 嵌套括号的自动大小调整
\documentclass[12pt,a4paper]{article}
\usepackage{mleftright}
\global\delimitershortfall=5.5pt
\global\delimiterfactor=880
\renewcommand*{\left}{\mleft}
\renewcommand*{\right}{\mright}
\newcommand{\braced}[1]
{ \left( #1 \right)
\mskip-1.5mu \vphantom{ \mathop{
\raisebox{3pt}{ \(\left(\displaystyle #1 \right)\) } } }
}
\begin{document}
\[
\braced{ x + \braced{\braced{ y }} }
\]
\end{document}
答案3
更新:
我最终只是使用了一个python脚本来搜索嵌套括号并将其替换为\left, \right
。\pr
在我的情况下,我使用了括号。
tex = re.sub(r"\(([^()\n]*?)\((.*?)\)([^()\n]*?)\)", r"\\pr{\1(\2)\3}", tex)