你一定用得到的LaTeX入門資料

賣篇論文娶媳婦發表於2020-12-06

如何安裝textlive請自行百度,網路上面有很多教程。

以下程式碼將我之前的一篇部落格用Python視覺化鋼琴演奏錄音用LaTeX編寫編譯,供各位參考其用法,點選此處直接下載


12.6更新,最近在寫英文論文,模板裡用到了雙頁排版,涉及到處理數學公式的一些問題,在此總結下。

模板檔案點此下載

由於我目前的部落格使用的是 KaTeX \KaTeX KATEX引擎處理的數學公式,而 LaTeX \LaTeX LATEX在使用的時候還是和他有區別的,特別是 LaTeX \LaTeX LATEX有而 KaTeX \KaTeX KATEX沒有的命令在這裡就無法很好的展示。因此我將用圖片展示效果,附上相應的 LaTeX \LaTeX LATEX程式碼

  1. 公式組的大括號。

\begin{equation}
  \label{eq1}
  \left\{
  \begin{aligned}
    x_c = \frac{M_{10}}{M_{00}},y_c = \frac{M_{01}}{M_{00}} \\
    M_{00} = \sum_x \sum_y I(x,y) \\
    M_{10} = \sum_x \sum_y xI(x,y) \\
    M_{01} = \sum_x \sum_y yI(x,y)
  \end{aligned}
  \right.
\end{equation}

\left\right總是成對出現的,但是我們需要的只是左邊的大括號,因此寫成\left\{\right.即可。

如果要達到下面這樣的效果呢?要求每一個公式後面都需要有編號,如下圖:

這樣需要我們在導言區引入兩個package,程式碼也和上面不同,直接使用subequations裡面巢狀numcases即可。

\usepackage{subeqnarray}
\usepackage{cases}


\begin{subequations}
  \label{eq3}
  \begin{numcases}{}
    x_c = \frac{M_{10}}{M_{00}},y_c = \frac{M_{01}}{M_{00}} \\
    M_{00} = \sum_x \sum_y I(x,y) \\
    M_{10} = \sum_x \sum_y xI(x,y) \\
    M_{01} = \sum_x \sum_y yI(x,y)
  \end{numcases}
\end{subequations}
  1. 公式間距微調

雙欄排版,寸土寸金,萬一公式太長,而又不想切換成單欄,就會出現下面的這種情況。可以看到,公式編號已經被擠到下一行去了,但是運算子之間的間距又比較大,可不可以將運算子之間的距離縮小呢?

參考部落格LATEX微調公式間距

\begin{equation}
  \label{eq6}
  L_{o_1 o_2} \! = \! \sqrt{(x_{o_1} \! - \! x_{o_2})^2 \! + \! (y_{o_1} \! - \! y_{o_2})^2 \! + \! (z_{o_1} \! - \! z_{o_2})^2}
\end{equation}

在運算子之間輸入\!即可。其實\quad,\qquad,\,,\:,\;,\!本來是新增空格的,只不過\!增加的是一個負的空格,就把間距縮小了。

縮小後的間距如下:

  1. 單雙欄切換及公式下標大小調整

有時候,公式實在太長,不可能在單欄裡面排下,只能換成雙欄去排版。

對於這個模板來說,單雙欄切換很簡單,只需要將程式碼包含在\singlecolumn{}的大括號之間就行,因為模板已經幫我們設定好了。稍後我們會介紹在沒有模板的情況下的通用做法

\singlecolumn{
  \begin{equation}
    \label{eq5}
    L_{NM} = \frac{
      \begin{Vmatrix}
          x_{C} - x_{A} & y_{C} - y_{A} & z_{C} - z_{A} \\
          x_{B} - x_{A} & y_{B} - y_{A} & z_{B} - z_{A} \\
          x_{D} - x_{C} & y_{D} - y_{C} & z_{D} - z_{C}
      \end{Vmatrix}
    }{
      \sqrt{
        \begin{vmatrix}
          y_{B} - y_{A} & z_{B} - z_{A} \\
          y_{D} - y_{C} & z_{D} - z_{C}
        \end{vmatrix}^2 + 
        \begin{vmatrix}
          z_{B} - z_{A} & x_{B} - x_{A} \\
          z_{D} - z_{C} & x_{D} - x_{C}
        \end{vmatrix}^2 + 
        \begin{vmatrix}
          x_{B} - x_{A} & y_{B} - y_{A} \\
          x_{D} - x_{C} & y_{D} - y_{C}
        \end{vmatrix}^2
      }
    }
  \end{equation}
}

但是這樣還有個小問題,如果你注意看我用紅筆標出來的地方, y B y_B yB y A y_A yA,這個下標會不會顯得太大了?有點醜哦,如果AB能再小一點就更好了。

參考部落格Latex中改變下標的字型尺寸

採用最簡潔的做法,我們在導言區新增一條\let\sss= \scriptscriptstyle,然後在需要讓下標變小的地方,如y_B,使用y_{\sss B}即可。完整程式碼如下:

\let\sss= \scriptscriptstyle


\singlecolumn{
  \begin{equation}
    \label{eq5}
    L_{NM} = \frac{
      \begin{Vmatrix}
          x_{\sss C} - x_{\sss A} & y_{\sss C} - y_{\sss A} & z_{\sss C} - z_{\sss A} \\
          x_{\sss B} - x_{\sss A} & y_{\sss B} - y_{\sss A} & z_{\sss B} - z_{\sss A} \\
          x_{\sss D} - x_{\sss C} & y_{\sss D} - y_{\sss C} & z_{\sss D} - z_{\sss C}
      \end{Vmatrix}
    }{
      \sqrt{
        \begin{vmatrix}
          y_{\sss B} - y_{\sss A} & z_{\sss B} - z_{\sss A} \\
          y_{\sss D} - y_{\sss C} & z_{\sss D} - z_{\sss C}
        \end{vmatrix}^2 + 
        \begin{vmatrix}
          z_{\sss B} - z_{\sss A} & x_{\sss B} - x_{\sss A} \\
          z_{\sss D} - z_{\sss C} & x_{\sss D} - x_{\sss C}
        \end{vmatrix}^2 + 
        \begin{vmatrix}
          x_{\sss B} - x_{\sss A} & y_{\sss B} - y_{\sss A} \\
          x_{\sss D} - x_{\sss C} & y_{\sss D} - y_{\sss C}
        \end{vmatrix}^2
      }
    }
  \end{equation}
}

效果如下:

在沒有模板的情況下, 我們切換單雙欄採用IEEE的做法

\newcounter{mytempeqncnt}
\begin{figure*}[!t]
  % ensure that we have normalsize text
  \normalsize
  % Store the current equation number.
  \setcounter{mytempeqncnt}{\value{equation}}
  % Set the equation number to one less than the one
  % desired for the first equation here.
  % The value here will have to changed if equations
  % are added or removed prior to the place these
  % equations are referenced in the main text.
  \setcounter{equation}{5}

  \begin{equation}
  \label{eqn_dbl_x}
    x = 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 + 21+ 23 + 25
    + 27 + 29 + 31
  \end{equation}

  \begin{equation}
  \label{eqn_dbl_y}
    y = 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20+ 22 + 24
    + 26 + 28 + 30
  \end{equation}
  % Restore the current equation number.
  \setcounter{equation}{\value{mytempeqncnt}}
  % IEEE uses as a separator
  % \hrulefill
  % The spacer can be tweaked to stop underfull vboxes.
  \vspace*{4pt}
\end{figure*}

相關文章