我认为自己是 的恢复用户,\left...\right
今天偶然发现了这个问题。我有一个\virtualparens
命令,它在其参数周围放置了浅灰色括号。我可以提供可选的分隔符大小(\big
、\bigg
等)。我注意到当我提供时\biggl
没有发生错误,我不明白为什么。我认为\biggl
需要成对的\biggr
,但我认为这个答案(https://tex.stackexchange.com/a/295041/218142) 解释了原因。我不完全理解那里的论点,但似乎\biggl
只是指示尺寸信息,并不“知道”分隔符是什么。对吗?
此外,如果有更好的方法来处理可选的大小参数,我愿意使用它。
这是我的 MWE:
% !TEX TS-program = lualatexmk
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\NewDocumentCommand{\virtualparens}{ O{} m }{%
\textcolor{lightgray}{#1(}#2\textcolor{lightgray}{#1)}
}%
\begin{document}
\[
\virtualparens[\biggl]{-G\frac{m_1 m_2}{r}}
\]
\end{document}
输出如下:
答案1
您想l
在左侧使用版本,r
在右侧使用版本。我稍微修改了您的语法以实现此目的。使用两个左侧版本不会引发错误,但可能会扰乱周围材料之间的自然间距。
但是,使用这种配对方法有一个缺点...您无法自然地跨换行符分解参数,而如果他单独指定\biggl(
and 则可以做到这一点\biggr)
。因此,您必须权衡利弊。
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\NewDocumentCommand{\virtualparens}{ O{} m }{%
\textcolor{lightgray}{\csname#1l\endcsname(}#2
\textcolor{lightgray}{\csname#1r\endcsname)}
}%
\begin{document}
\[
\virtualparens[bigg]{-G\frac{m_1 m_2}{r}}
\]
\end{document}
答案2
我更喜欢语法阿拉 mathtools
\big
\Big
\bigg
,其中您只需使用或指定大小\Bigg
。无论如何,您都应该指定构建对象的类型,因为\textcolor
会隐藏它。
\NewDocumentCommand{\virtualparens}{ O{} m }{%
\mathopen{\textcolor{lightgray}{#1(}}% opening fence
#2% contents
\mathclose{\textcolor{lightgray}{#1)}}% closing fence
}
这是完整的示例,并带有比较。
\documentclass[twocolumn]{article}
\usepackage{amsmath}
\usepackage{xcolor}
\NewDocumentCommand{\virtualparens}{ O{} m }{%
\mathopen{\textcolor{lightgray}{#1(}}#2\mathclose{\textcolor{lightgray}{#1)}}%
}
%%% for comparison
\NewDocumentCommand{\wrongvirtualparens}{ O{} m }{% your definition
\textcolor{lightgray}{#1(}#2\textcolor{lightgray}{#1)}%
}
\NewDocumentCommand{\alsowrongvirtualparens}{ O{} m }{% Steven's definition
\textcolor{lightgray}{\csname#1l\endcsname(}#2%
\textcolor{lightgray}{\csname#1r\endcsname)}%
}
%%%
\begin{document}
\begin{gather}
\sin\wrongvirtualparens[\bigg]{-G\frac{m_1 m_2}{r}} \\
\sin\alsowrongvirtualparens[bigg]{-G\frac{m_1 m_2}{r}} \\
\sin\virtualparens[\bigg]{-G\frac{m_1 m_2}{r}} \\
\sin\biggl(-G\frac{m_1 m_2}{r}\biggr)
\end{gather}
\end{document}
你看得到差别吗?
答案3
您可以将关于括号大小的决定保留给\left...\right
原始值:
\def\virtualparens#1#2#3{\mathopen{}\color{lightgray}\left#1
\color{black}#2\color{lightgray}\right#3\color{black}\mathclose{}}
$$
\sin \virtualparens ({-G {m_1 m_2\over r}}) x
$$
compare with:
$$
\sin \Bigl( -G {m_1 m_2\over r} \Bigr) x
$$