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