如何使用Python自动补全LaTeX公式中\left与\right配对标记
问题背景
在LaTeX中,(…)、[…]、{…}这类分隔符可以分别在开、闭分隔符前加\left和\right,实现尺寸随内部公式自动适配,典型用法是\left( <equation> \right)。
但\left和\right必须配对使用,每出现一个\left就要对应一个\right,否则会触发编译错误。如果只需要单侧分隔符,可以在缺失配对的位置加\left.(\left加英文句号)或者\right.(\right加英文句号)解决,示例用法为\left(<equation>\right.或者\left.<equation>\right)。
需求说明
需要用Python实现自动插入缺失的配对标记,遵循以下规则:
- 若存在未配对的
\left,需要插入对应数量的\right.,位置优先选当前区间内的&、换行符\\或者\end{}之前;如果区间结束前有\nonumber标签,要把\right.插入到\nonumber之前。 - 若存在未配对的
\right,需要插入对应数量的\left.,位置优先选当前区间内的&、换行符\\或者\begin{}之后。
示例
输入示例
\begin{align} \left( content & content \right) content \left( content \left( content \right) \\ content \right) \left(content \left( content \\ content \right) \end{align} \begin{align} \left( content & content \right) content \left( content \left( content \right) \nonumber \\ content \right) \left( content \left( content \nonumber \\ content \right) \end{align}
预期输出
(方括号内容为自动生成,实际输出不需要方括号)
\begin{align} \left( content \right. & \left. content \right) content \left( content \left( content \right) \right. \\ \left. content \right) \left( content \left( content \right. \right. \\ \left. content \right) \end{align} \begin{align} \left( content \right. & \left. content \right) content \left( content \left( content \right) \right. \nonumber \\ \left. content \right) \left( content \left( content \right. \right. \nonumber \\ \left. content \right) \end{align}
内容的提问来源于stack exchange,提问作者jee-ar
相关产品推荐
相关产品推荐

