其他分享
首页 > 其他分享> > latex debug——解决长公式括号内换行及换行后出现括号大小不一致的问题

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

作者:互联网

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

 

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

\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}

得到如下图所示效果

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

\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}

得到如下效果:

但是公式仍然过长,于是我开始考虑换行。直接使用\\换行、&对齐的代码如下:

\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}

可以实现效果如下:

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

 

报错原因就是换行是在花括号中间换的,因次会提示上一行缺少一个右括号,下一行缺少一个左括号,为了解决这个问题,可以使用“这是由于换行被断开的左面的括号”{这是上一行的内容}\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}

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

后来发现,报错原因是,使用了\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的控制命令总结:

给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{}

 

标签:latex,换行,max,textbf,括号,QoE,vec,text,rightarrow
来源: https://blog.csdn.net/qq_50599660/article/details/122661153