置頂介紹文

這裡主要放一些關於數學和 LaTeX 的文章, 文章內的檔案一律用 xelatex 編譯而成。
如果你想下載我的 tex 檔回去修改編譯, 請將 preamble.7z 解壓縮後和 tex 檔放在同一個資料夾中即可編譯。
部落格內的文章也有部份是網路或書籍中的資料經過統整編輯而成, 如有侵權請告知。
有任何問題也歡迎留言或 E-mail 給我。
顯示具有 套件 標籤的文章。 顯示所有文章
顯示具有 套件 標籤的文章。 顯示所有文章

2016年12月15日 星期四

LaTeX 自訂巨集指令 - 條件式 xifthen 套件

先前說明了自訂巨集指令 (command) 的基本用法, 這篇我們來介紹如何在指令中加上條件式, 讓指令的使用更靈活。

首先我們需要載入 xifthen 這個套件。每個 LaTeX 的套件通常都用一個說明的檔案, 在 google 輸入名稱就找得到。比方說這個連結: xifthen

當然我們還是會介紹用法, 如下例:

......
\usepackage{xifthen}

\newcommand{\AAA}[1]{\ifthenelse{\equal{#1}{a}}{True}{False}}
\newcommand{\BBB}[1]{\ifthenelse{\equal{#1}{a}}{預設文字A}{#1}}
\newcommand{\CCC}[1][a]{\ifthenelse{\equal{#1}{a}}{預設文字B}{#1}}

\begin{document}

\AAA{a}\; \AAA{b}

\BBB{a}\; \BBB{在這裡寫一些字}

\CCC\; \CCC[還可以設定成有預設值的]

\end{document}

結果如下:

xifthen 提供了條件式的語法為 \ifthenelse{判斷式}{真}{假}, 當我們用在定義新的指令時, 就變成上例中(條件式為 \equal{}{}), 當輸入的值與 a 相等時, 就顯示{真}裡面的內容, 否則顯示{假}的內容。

\ifthen 也有其他的條件式像是:
  1. \cnttest 比較數字大小
  2. \dimtest 比較長度
  3. \isempty 判斷是否為空集合
  4. \endswith 判斷結尾是否為某字串
  5. \isin 判斷內容中是否包令某字串
也可以用 \newtest 自行設定比較複雜的條件式, 用法上都是類似的, 說明檔裡也有很清楚的例子, 在這裡就先不一一細說了。

2016年12月10日 星期六

LaTeX 好用套件 (package) - catchfilebetweentags

這個套件的名稱實在非常直白 (笑), 用途就是在一個 tex 檔中取出某一段文字, 用來合併檔案十分方便。

在這裡我們有三個文件, 分別是 00.tex, 01.tex 和 02.tex, 我們要在 01.tex 和 02.tex 中取出一段文字放在 00.tex 裡。

% 00.tex

......

\usepackage{catchfilebetweentags}

\begin{document}

這個文件可以先有一些文字

\ExecuteMetaData[01]{mytaga}

\ExecuteMetaData[02]{mytagb}

\end{document}

接下來是 01.tex

% 01.tex

......

\begin{document}

%<*mytaga>
這是會被取走的文字 text part1....
%</mytaga>

\end{document}

然後是 02.tex

% 02.tex

......

\begin{document}

%<*mytagb>
這也是會被取走的文字 text part2....
%</mytagb>

\end{document}

那麼編譯 00.tex 就會出現這樣的結果:


這個套件的優點是, 原本把檔案合併只能用 \input 把整個檔案放到另一檔案中, 但用這個套件可以保證每個檔案都是可以獨立編譯的檔案, 然後如果需要合併則只取文字部份合併即可。

一個小缺點就是這個套件可以合併編譯出 PDF 檔, 但是對原始檔案文字沒有合併的功能。