Latex寫博客和論文,因為有模板,所以用起來還是很方便的。
但是在實際使用中,由於論文是雙欄的,因此比較長的公式在排版時會比較困難。下面對Latex中的公式排版方法做一些記錄。
Latex公式排版(編號、換行、括號內換行、對齊)
公式的編寫方法在此不再贅述。可以選擇網頁版的Latex公式編輯器。
一開始使用了align方法,代碼如下所示,該方法優點在於比較簡單,且可以自動編號
\begin{align}
a=(1+2+3+4+5+6+7+8+9+10) %你的公式代碼
\end{align}
效果如下:
\[\begin{align} a=(1+2+3+4+5+6+7+8+9+10) %你的公式代碼 \end{align} \]
但是當公式很長時,公式可能會從一欄侵入另一欄,這就需要我們對公式換行,使用“\”指令進行換行:
\begin{align}
a=1+2+3+4+5
\\+6+7+8+9+10
\end{align}
\[\begin{align} a=1+2+3+4+5 \\+6+7+8+9+10 \end{align} \]
該方法會自動對齊,如需手動設置對齊位置,可以在相應位置前加上“&”指令。另外,換行還會帶來編號的增加,如果只想在這個公式塊設置一個編號,可以在換行前加上 “\notag” 指令:
\begin{align}
a=1+2+3&+4+5
\notag
\\&+6+7+8+9+10
\end{align}
\[\begin{align} a=1+2+3&+4+5 \notag \\&+6+7+8+9+10 \end{align} \]
這樣這個代碼塊就僅有一個編號,而且也按照代碼,4和6前面的+進行了對齊。
最后一個問題,在許多大型公式中,是需要在括號中進行換行,如:
\[\begin{align} a=(1+2+3&+4+5 \notag \\&+6+7+8+9+10) \end{align} \]
\begin{align}
a=(1+2+3&+4+5
\notag
\\&+6+7+8+9+10)
\end{align}
單純的使用“\”是不夠的,還需要加上”\right.“和“\phantom{=;;}\left.”指令:
\[\begin{align} a=\left(1+2+3+4+5 \notag\right. \\ \phantom{=\;\;} \left.+6+7+8+9+10\right) \end{align} \]
\begin{align}
a=\left(1+2+3+4+5
\notag\right.
\\
\phantom{=\;\;}
\left.+6+7+8+9+10\right)
\end{align}
這樣就可以很好實現括號內換行啦。
另外,也可采用以下模塊代替align模塊
\begin{equation}
\begin{aligned}
\end{aligned}
\end{equation}
與align模塊使用方法類似。
補充一個簡單方法
Update:2021/05/28
長公式換行用\,對齊用&,宏包 \usepackage{amsmath}
\begin{equation*}%加*表示不對公式編號
\begin{split}
PMV =&[0.303*exp(-0.036M)+0.0275]*\{M-W-3.05*[5.733-\\
&0.007(M-W)-P_a]-0.42*(M-W-58.2)-0.0173M*\\
&(5.867-P_a)-0.0014M*(34-t_a)-3.96*10^-8*f_cl*[(t_cl+\\
&273)^4-(t_r+273)^4]-f_cl*h_c*(t_cl-t_a)\}
\end{split}
\end{equation*}
\[\begin{equation*}%加*表示不對公式編號 \begin{split} PMV =&[0.303*exp(-0.036M)+0.0275]*\{M-W-3.05*[5.733-\\ &0.007(M-W)-P_a]-0.42*(M-W-58.2)-0.0173M*\\ &(5.867-P_a)-0.0014M*(34-t_a)-3.96*10^-8*f_cl*[(t_cl+\\ &273)^4-(t_r+273)^4]-f_cl*h_c*(t_cl-t_a)\} \end{split} \end{equation*} \]
Latex插入花括號后帶文字的多行公式對齊
\[\begin{eqnarray} q_\theta(\theta_+^\prime|f_{+i}^{\prime},f_{+i},\theta_+)=\nonumber\\ \left\{ \begin{aligned} b_0(\theta_{+,n_i+1}^\prime)\prod_{k=1}^{n_i}\delta_{\theta_{+k}(\theta_{+k}^\prime)},\:\:\:birth\,of\,feature\,n_i+1;\\ \prod_{k\neq l}\delta_{\theta_{+k}(\theta_{+k}^\prime)},\:\:\:\:\:\:\:\:\:\:\:\:\:death\,of\,feature\,l \end{aligned} \right. \end{eqnarray} \]
\begin{eqnarray}
q_\theta(\theta_+^\prime|f_{+i}^{\prime},f_{+i},\theta_+)=\nonumber\\
\left\{
\begin{aligned}
b_0(\theta_{+,n_i+1}^\prime)\prod_{k=1}^{n_i}\delta_{\theta_{+k}(\theta_{+k}^\prime)},\:\:\:birth\,of\,feature\,n_i+1;\\
\prod_{k\neq l}\delta_{\theta_{+k}(\theta_{+k}^\prime)},\:\:\:\:\:\:\:\:\:\:\:\:\:death\,of\,feature\,l
\end{aligned}
\right.
\end{eqnarray}
公式和文字之間的空格可以用:,換行在eqnarray用\,\right后面一定要是加英文句號.
或者使用如下的方法:
\[\begin{eqnarray} q_k(k_i,k_j)=Unif(k_i|f_i)q(k_j|k_i,f_j)\\ q(k_j=k|k_i,f_j)\propto \begin{cases}2C_jf_{jk},& \mbox{if }k=k_i\\f_{jk}\frac{m(x_{k_i},x_k)}{m(x_{k_i})m(x_k)},& \mbox{o.w.}\end{cases} \end{eqnarray} \]
\begin{eqnarray}
q_k(k_i,k_j)=Unif(k_i|f_i)q(k_j|k_i,f_j)\\
q(k_j=k|k_i,f_j)\propto \begin{cases}2C_jf_{jk},& \mbox{if }k=k_i\\f_{jk}\frac{m(x_{k_i},x_k)}{m(x_{k_i})m(x_k)},& \mbox{o.w.}\end{cases}
\end{eqnarray}