昨天剛忙忙完即將要發的paper的prparation,所以抓緊時間來玩一下logdown的內建mathjax支援,也就是在logdown裡面打LaTex的功能。實際嘗試了一下,有點讚嘆,因為mathjax能做的不是只有打display方程式而已,其實還支援了滿多 environment 語法,不過我還沒有一一試過就是了,下面只是整理一些初步的心得。
支援 equation environment
可能因為我還是肉腳吧,所以目前對我來說,其實在 ` ` ` mathjax
下面還要另外用 \begin{equation}
和\end{equation}
包起來就我來看根本就是多此一舉,因為其實照理來說叫出` ` ` mathjax
的block之後應該就可以打display方程式了。
\begin{equation}
\label{EF}
E_F \equiv \frac{{\left[ \sum_{k_x, k_y} {\left ( \left | F^{(m)}{\left( k_x, k_y \right )} \right |
- \left | F^{(c)}{\left(k_x, k_y \right )} \right | \right )}^2 \right ]}^{1/2}}
{{\left [ \sum_{k_x, k_y} \left | F^{(m)}{\left( k_x, k_y \right )} \right | ^2 \right ]}^{1/2}}
\end{equation}
上面的code會產生:
支援 eqalign
沒記錯的話普通的 equation
environment 只能打單行的連續方程式;如果要打多行的單一方程式的話,就需要動用到 \eqalign{}
。值得注意的地方有兩個,第一是支援對齊符號&
,所以排多行方程式,以我的習慣是對齊等號,所以就是把全部的=
前面都加上&
變成&=
;第二就是我剛才試了一下發現換行用\\
或者\cr
都可以。也許有什麼差別吧,不過目前還沒發現就是了。
\newcommand{\bi}[1]{\bf {#1} }
\begin{equation}
\eqalign{
I(\bi k) + \eta(\bi k)
&= \beta \left |A'(\bi k) \right | ^2 \\
&= \beta \left [ \left | A(\bi k) \right | ^2 + 2 \left | A(\bi k) \right | \left | N(\bi k) \right | \cos \theta \left( \bi k \right)
+ \left | N(\bi k) \right | ^2 \right ]
}
\end{equation}
所以上面的code,會產生:
你可能會注意到上面的code第一行是\newcommand{\bi}[1]{\bf {#1} }
,是的\newcommand
也支援,我覺得這點真的滿方便的,畢竟有時候有些東西一直打,還不如就乾脆創一下懶人指令了。例如說 et al. 這東西打久了也是頗煩的,剛脆就做一個
\newcommand{\etal}{{\it et al}.}
來用,這樣以後就只要打\etal
就好了,科科。
支援eqnarray
此外我昨天發現APS期刊很詭異,他們並不用\eqalign{}
來排多行方程式,而是很違反常理地使用eqnarray
來做。就我的理解eqnarray
應該是拿來排方程組的吧,不過他們卻要求你用eqnarray
environment ,再用 \nonumber\\
這種詭異的hack來換行,順便把 auto-numbering 本來會產生的編號 suppress 掉。詭異,真的非常詭異。
回歸正題,我們來看一般來說eqnarray
用的上的地方。
這樣叫做一個方程組;不過我覺得要拿 eqnarray
來排多行的連續方程式實在有點強人所難... 昨天也因此遇到一些逆境,不過這個改天再聊好了。上面的方程組的code是:
\begin{eqnarray}
&x &= &r \cos \theta \\
&y &= &r \sin \theta
\end{eqnarray}
不過值得注意的是其實上面打這麼多&
其實只是我自己龜毛而已,正常來說只要在等號附近打&=
就好了。左邊、中間、右邊都打純粹只是因為我有病......
今天就先聊到這吧。
更新: inline math
inline math 是 logdown 上線一陣子之後才推出的,打法是除了單撇之外還要用用 來包圍。例如如果在文中穿插了
` $ \alpha + \beta = \gamma $`
則可以在文中的行內出現 ,也就是說把方程式與文字排版在一起。