latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题

我要在latex里面排版的公式如下:

latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题

 

最初使用如下代码进行排版:

\begin{equation}
	\label{deqn_ex13}
	\begin{aligned}
		\widehat{QoE}_{n \rightarrow H-1}(B_{n-1}, {\textbf{D}}_{n \rightarrow H-1}^*) \\
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}{QoE}_{ 0 \rightarrow H-1}(B_{n-1},\textbf{D}_{0 \rightarrow H-1})\\ 
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}\left\lbrace{QoE}_{ 0 \rightarrow h-1}(B_{n-1},\textbf{D}_{0 \rightarrow h-1}) +{QoE}_{ h \rightarrow H-1}(B_{h-1},\textbf{D}_{h-1 \rightarrow H-1})\right\rbrace \\
	\end{aligned} 
\end{equation}

得到如下图所示效果

latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题

但是由于公式过长,已经超出版面了,导致公式显示不全,为了解决这一问题,在了解到&的作用是对齐、\\的作用是换行后,我修改了代码如下:

\begin{equation}
	\label{deqn_ex13}
	\begin{aligned}
		&\widehat{QoE}_{n \rightarrow H-1}(B_{n-1}, {\textbf{D}}_{n \rightarrow H-1}^*) \\
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}{QoE}_{ 0 \rightarrow H-1}(B_{n-1},\textbf{D}_{0 \rightarrow H-1})\\ 
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}\left\lbrace{QoE}_{ 0 \rightarrow h-1}(B_{n-1},\textbf{D}_{0 \rightarrow h-1}) +{QoE}_{ h \rightarrow H-1}(B_{h-1},\textbf{D}_{h-1 \rightarrow H-1})\right\rbrace \\
	\end{aligned} 
\end{equation}

得到如下效果:

latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题但是公式仍然过长,于是我开始考虑换行。直接使用\\换行、&对齐的代码如下:

\begin{equation}
	\label{deqn_ex13}
	\begin{aligned}
		&\widehat{QoE}_{n \rightarrow H-1}(B_{n-1}, {\textbf{D}}_{n \rightarrow H-1}^*) \\
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}{QoE}_{ 0 \rightarrow H-1}(B_{n-1},\textbf{D}_{0 \rightarrow H-1})\\ 
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}\left\lbrace{QoE}_{ 0 \rightarrow h-1}(B_{n-1},\textbf{D}_{0 \rightarrow h-1}) + \\
		&{QoE}_{ h \rightarrow H-1}(B_{h-1},\textbf{D}_{h-1 \rightarrow H-1})\right\rbrace \\
	\end{aligned} 
\end{equation}

可以实现效果如下:

latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题

但发现右面的大括号缺失,还会报错如下:

latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题 

报错原因就是换行是在花括号中间换的,因次会提示上一行缺少一个右括号,下一行缺少一个左括号,为了解决这个问题,可以使用“这是由于换行被断开的左面的括号”{这是上一行的内容}\right.\\&\left.{这是下一行的内容}“这是由于换行被断开的右面的括号”来解决这个问题。代码如下:

\begin{equation}
	\label{deqn_ex13}
	\begin{aligned}
		&\widehat{QoE}_{n \rightarrow H-1}(B_{n-1}, {\textbf{D}}_{n \rightarrow H-1}^*) \\
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}{QoE}_{ 0 \rightarrow H-1}(B_{n-1},\textbf{D}_{0 \rightarrow H-1})\\ 
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}\left\lbrace{{QoE}_{ 0 \rightarrow h-1}(B_{n-1},\textbf{D}_{0 \rightarrow h-1}) + }\right.\\
		&\left.{{QoE}_{ h \rightarrow H-1}(B_{h-1},\textbf{D}_{h-1 \rightarrow H-1})}\right\rbrace\\
	\end{aligned} 
\end{equation}

 此时不报错了,但是偶尔有时候会出现括号一大一小的问题,不知道啥原因,很偶然,有时候出现有时候不出现。去其他博主那里搜索后发现,只需要将括号\left\{\right\} 替换为 \Big\{\Big\} 即可(\left\{\right\} 可以自动调整大小,需要成对出现;\Big\{\Big\}是手动控制大小,可以不成对出现)。代码如下: 

\begin{equation}
	\label{deqn_ex13}
	\begin{aligned}
		&\widehat{QoE}_{n \rightarrow H-1}(B_{n-1}, {\textbf{D}}_{n \rightarrow H-1}^*) \\
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}{QoE}_{ 0 \rightarrow H-1}(B_{n-1},\textbf{D}_{0 \rightarrow H-1})\\ 
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}\Big\{ {{QoE}_{ 0 \rightarrow h-1}(B_{n-1},\textbf{D}_{0 \rightarrow h-1}) + }\\
		&{{QoE}_{ h \rightarrow H-1}(B_{h-1},\textbf{D}_{h-1 \rightarrow H-1})}\Big\}\\
	\end{aligned} 
\end{equation}

 但发现不可以,虽然括号大小一致了,一直报错如下:

latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题

后来发现,报错原因是,使用了\Big以后,\right.\\&\left. 就不能再使用了,不然会一直报错缺少\left和\right,最后,我用如下代码成功解决了所有问题。

\begin{equation}
	\label{deqn_ex13}
	\begin{aligned}
		&\widehat{QoE}_{n \rightarrow H-1}(B_{n-1}, {\textbf{D}}_{n \rightarrow H-1}^*) \\
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}{QoE}_{ 0 \rightarrow H-1}(B_{n-1},\textbf{D}_{0 \rightarrow H-1})\\ 
		&= \underset {(\vec{r}_{0 \rightarrow H-1},\vec{b}_{0 \rightarrow H-1})}{\text{max}}\Big\{ {{QoE}_{ 0 \rightarrow h-1}(B_{n-1},\textbf{D}_{0 \rightarrow h-1}) + }\\
		&{{QoE}_{ h \rightarrow H-1}(B_{h-1},\textbf{D}_{h-1 \rightarrow H-1})}\Big\}\\
	\end{aligned} 
\end{equation}

实现最终排版效果如下:

latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题 

 本例子中用到的一些latex的控制命令总结:

给Q添加下角标a:Q_a

给QoE添加下角标abc:{QoE}_{abc}

指向右面的箭头:\rightarrow

给Q添加上角标a:Q^a

给QoE添加上角标abc:{QoE}^{abc}

给QoE添加上角标abc和下角标abc:{QoE}_{abc}^{abc}

向量的箭头:\vec

在max的正下方添加式子a+b=c:\underset {a+b=c}{\text{max}}

花括号的表达:\{  和 \} ;或 \lbrace 和 \rbrace 

自动控制花括号大小:\left\{ 和 \right\} ;或\left \lbrace 和 \right\rbrace 

手动控制花括号的大小:\big\{ 和 \big\} ;或 \big\lbrace 和 \big\rbrace (其中,\big,\Big,\bigg,\Bigg控制括号依次增大)

字体加粗:\textbf{}

 

上一篇:tp6开发的自动生成后台curd和一键安装插件,自动生成接口文档框架


下一篇:写作与数学公式-工具篇