這篇文章將說明如何修改 ntuthesis 內建的模板,使其能用於他校論文的撰寫。

對於有興趣以 ntuthesis 撰寫他校論文模板者,我們非常歡迎將新模板貢獻至此套件 (可將論文資料夾壓縮 Email 給我們),讓日後的使用者可直接使用新的模板。
在開始閱讀前,請確定已閱讀過 ntuthesis使用說明。若有任何問題,歡迎來信詢問。

模板組成

ntuthesis 的模板組成有兩個部份 – 封面內文。封面是獨立於內文生成的,亦即,每此輸出論文 (按下 RStudio 的 build book) 時,只有內文會重新生成但封面不會。一個學校的論文格式,排版最複雜的地方就是在封面,但內文通常都大同小異。換句話說,要製作一個新的論文模板,只要搞定封面的生成,就完成了大多數的工作。

以臺大論文模板為例,其兩部份的組成如下:

  1. 封面
  2. 內文
    • 致謝、摘要、Abstract、目錄、內容 …

這兩部份的樣式,大致上可對應到模板1中的兩個資料夾 – front_matter/ (封面) 與 latex/ (內文):

├── front_matter/
│   ├── certification.tex
│   ├── ntuthesis.cls
│   ├── ntuvars.tex
│   ├── output.yml
│   └── template-rewrite.tex
├── latex/
│   ├── mathjax_bm.tex
│   ├── preamble-en.tex
│   ├── preamble-zh.tex
│   └── template.tex
|
├── _person-info.yml     # Info to generate front matter
├── index.Rmd            # Book Layout (font, watermark, biblio, ...)
├── _output.yml          # preamble, pandoc args, cite-pkg
├── watermark.png        # 臺大浮水印 (右上角)
├── certification-scan.pdf  # 已簽名'口試委員審查書'
|
|   ####### 僅上方檔案與論文樣式設定有關 #########
|
├── _bookdown.yml        # label names in gitbook; Rmd files order
├── R/                   # code chunk root dir, put R scripts and data here
├── figs/                # Put figures to include in the thesis here
├── _acknowledge.Rmd     # acknowledgement
├── _abstract-en.Rmd     # abstract
├── _abstract-zh.Rmd     # Same as above, but in Chinese
├── 01-intro.Rmd         # Chapter 1 content
├── ...
├── 99-references.Rmd    # Edit "References" Title
├── ref.bib              # References
└── cite-style.csl       # Citation style

封面製作 (front_matter/ 設定)

front_matter/ 內有許多檔案,看似相當複雜。確實,如果想要從結構化資料生成封面 (如臺大論文模板使用 _person-info.yml 生成封面資料),需要對 \(\LaTeX\) 有相當程度的認識,同時也會使 front_matter/ 會變得有點複雜。一個更簡單直接的方式是直接使用 Word 檔製作封面並輸出成 PDF 檔。如果使用這種方式,則可略過說明文件中編輯封面的步驟。

論文封面

  1. 使用 Word 製作論文封面,將 Word 檔命名為 front_matter.docx 置於 front_matter 資料夾中

  2. 將由 Word 輸出的論文封面命名為 front_matter.pdf 置於 front_matter 資料夾中

  3. latex/template.tex 找到下方這行:

    \includepdf[pages={1}, scale=1]{front_matter/front_matter.pdf}

    將其修改為需要的格式。例如,你想將 front_matter.pdf所有頁面加入論文,可將其修改為:

    \includepdf[pages={1-}, scale=1]{front_matter/front_matter.pdf}

    或是,你只需要 front_matter.pdf第二頁

    \includepdf[pages={2}, scale=1]{front_matter/front_matter.pdf}

口試委員審定書

  1. 使用 Word 製作口試委員審定書,將 Word 檔命名為 certification.docx 置於 front_matter 資料夾中

  2. 將由 Word 輸出的口試委員審定書命名為 certification.pdf 置於 front_matter 資料夾中,此應為空白、尚未簽名的口試委員審定書

  3. 將已簽名的口試委員審定書掃描成 PDF 檔,命名為 certification-scan.pdf,並放在論文資料夾 (而非 front_matter/)

  4. latex/template.tex 找到下方這幾行:

    \phantomsection
    \addcontentsline{toc}{chapter}{口試委員會審定書}
    \includepdf[pages={1}, scale=1]{certification-scan.pdf}

    若口試委員審定書僅有 1 頁,則不需更動。若超過 1 頁,請依上方 論文封面 的說明修改 \includepdf[pages={1}, scale=1]{certification-scan.pdf}

\phantomsection
\addcontentsline{toc}{chapter}{口試委員會審定書}

這兩行是用以將口試委員審定書加入論文目錄。若論文格式尚包含其它內文以外的頁面需加入目錄,請依照此節的方式新增這些頁面。

內文

關於內文的修改,例如,語言、頁邊距離、字體、行距、浮水印樣式index.Rmd, latex/template.tex, latex/preamble-en.tex, latex/preamble-zh.tex 內的設定有關。有些設定 (例如,浮水印樣式) 需牽涉到一些 \(LaTeX\) 的知識才能自訂,並非本文重點 (有興趣者可研究原始碼)。

語言

與語言設定最相關的兩個檔案是 latex/preamble-en.tex, latex/preamble-zh.tex

latex/preamble-zh.tex 中,語言的設定僅與下列幾行有關:

\renewcommand{\figurename}{圖}
\renewcommand{\tablename}{表}
\renewcommand{\contentsname}{目錄}
\renewcommand{\listfigurename}{圖目錄}
\renewcommand{\listtablename}{表目錄}
\renewcommand{\appendixname}{附錄}

例如,想要更改原本的圖片開頭名稱,可將 \renewcommand{\figurename}{表} 修改為:

\renewcommand{\figurename}{表格}

至於中文論文的樣式 (例如,\(LaTeX\) 預設的章節開頭名稱為 Chapter,但這裡中文的論文輸出為 第 x 章),主要是 ctex 套件的內建設定,並不建議修改:

\usepackage[heading, fontset = none]{ctex}

頁邊距離、字體、行距

至於頁邊距離、字體與行距可直接在 index.Rmd 的 yaml header 中設定:

two-side: false  # Whether to start new chapter on odd pages
cjk-mainfont: 'AR PL KaitiM Big5'  # Default: 標楷體
#cjk-boldfont:    # Don't set if same as cjk-mainfont
cjk-style: 'AutoFakeBold=2.5, AutoFakeSlant=.3' # comment out this line if `cjk-boldfont` is set
en-mainfont: 'Liberation Serif'  # Default: Times New Roman
#ipa-font: 'Doulos SIL'  # works with 'linguisticsdown', delete if not needed
#secnumdepth: 2        # section numbering at most to x.y.z
linestretch: 1.5       # If Chinese: 1.5
linestretch-code: 1.5  # linestretch for code chunks
watermark: watermark.png  # path to watermark file (must be in root dir)
geometry: a4paper, left=1.18in, right=1.18in, top=1.18in, bottom=0.787in
fontsize: 12pt
acknowledgements-title: '誌謝'

  1. 見使用說明:匯入論文模板