Latex写博客和论文,因为有模板,所以用起来还是很方便的。
但是在实际使用中,由于论文是双栏的,因此比较长的公式在排版时会比较困难。下面对Latex中的公式排版方法做一些记录。
Latex公式排版(编号、换行、括号内换行、对齐)
公式的编写方法在此不再赘述。可以选择网页版的Latex公式编辑器。
一开始使用了align方法,代码如下所示,该方法优点在于比较简单,且可以自动编号
egin{align}
a=(1+2+3+4+5+6+7+8+9+10) %你的公式代码
end{align}
效果如下:
[egin{align}
a=(1+2+3+4+5+6+7+8+9+10) %你的公式代码
end{align}
]
但是当公式很长时,公式可能会从一栏侵入另一栏,这就需要我们对公式换行,使用“”指令进行换行:
egin{align}
a=1+2+3+4+5
\+6+7+8+9+10
end{align}
[egin{align}
a=1+2+3+4+5
\+6+7+8+9+10
end{align}
]
该方法会自动对齐,如需手动设置对齐位置,可以在相应位置前加上“&”指令。另外,换行还会带来编号的增加,如果只想在这个公式块设置一个编号,可以在换行前加上 “ otag” 指令:
egin{align}
a=1+2+3&+4+5
otag
\&+6+7+8+9+10
end{align}
[egin{align}
a=1+2+3&+4+5
otag
\&+6+7+8+9+10
end{align}
]
这样这个代码块就仅有一个编号,而且也按照代码,4和6前面的+进行了对齐。
最后一个问题,在许多大型公式中,是需要在括号中进行换行,如:
[egin{align}
a=(1+2+3&+4+5
otag
\&+6+7+8+9+10)
end{align}
]
egin{align}
a=(1+2+3&+4+5
otag
\&+6+7+8+9+10)
end{align}
单纯的使用“”是不够的,还需要加上” ight.“和“phantom{=;;}left.”指令:
[egin{align}
a=left(1+2+3+4+5
otag
ight.
\
phantom{=;;}
left.+6+7+8+9+10
ight)
end{align}
]
egin{align}
a=left(1+2+3+4+5
otag
ight.
\
phantom{=;;}
left.+6+7+8+9+10
ight)
end{align}
这样就可以很好实现括号内换行啦。
另外,也可采用以下模块代替align模块
egin{equation}
egin{aligned}
end{aligned}
end{equation}
与align模块使用方法类似。
补充一个简单方法
Update:2021/05/28
长公式换行用,对齐用&,宏包 usepackage{amsmath}
egin{equation*}%加*表示不对公式编号
egin{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*}
[egin{equation*}%加*表示不对公式编号
egin{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插入花括号后带文字的多行公式对齐
[egin{eqnarray}
q_ heta( heta_+^prime|f_{+i}^{prime},f_{+i}, heta_+)=
onumber\
left{
egin{aligned}
b_0( heta_{+,n_i+1}^prime)prod_{k=1}^{n_i}delta_{ heta_{+k}( heta_{+k}^prime)},:::birth\,of\,feature\,n_i+1;\
prod_{k
eq l}delta_{ heta_{+k}( heta_{+k}^prime)},:::::::::::::death\,of\,feature\,l
end{aligned}
ight.
end{eqnarray}
]
egin{eqnarray}
q_ heta( heta_+^prime|f_{+i}^{prime},f_{+i}, heta_+)=
onumber\
left{
egin{aligned}
b_0( heta_{+,n_i+1}^prime)prod_{k=1}^{n_i}delta_{ heta_{+k}( heta_{+k}^prime)},:::birth\,of\,feature\,n_i+1;\
prod_{k
eq l}delta_{ heta_{+k}( heta_{+k}^prime)},:::::::::::::death\,of\,feature\,l
end{aligned}
ight.
end{eqnarray}
公式和文字之间的空格可以用:,换行在eqnarray用, ight后面一定要是加英文句号.
或者使用如下的方法:
[egin{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 egin{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}
]
egin{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 egin{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}