2012年6月24日 星期日

LyX 簡易入門

這篇簡介文章提供給已經用慣 Word, 想要試用 LyX, 或是第一次剛接觸 LyX,卻徬徨不知如何下手的人。

雖然 LyX 的手冊,或是其他參考文件都已經有很詳細指引,但幾乎都是英文的。而中文的資料,幾乎都是大陸的,字體設定也大多針對簡體字。因此, 我想自己寫個簡易的入門,不僅自己留作紀錄, 也作為有興趣的人參考。

雖然我用的平台是 Linux, 但與 Windows 版本沒有差別,因此使用 Windows 的人也可以照著試做。以下範例所使用的 LyX 版本是 2.0.3 版的。



前言

對於長久使用 Microsoft Office Word 系列的人來說,一改用 LyX 時,很多事情都會無法適應。對我自己來說,我一開始用 LyX 時,光寫個標題就已經快累死我自己了。因為在 Word 中,標題的格式是可以自己改的。用什麼字體、大小、行距、置中或置左,都可以自由控制,很方便。但到了 LyX 中 ... 這怎麼做?Title 不想置中還不行。如果「硬」要做,初學者可能就用「Standard」的文字,直接改變字體大小、位置,當做標題。不過,當要這麼做的話,那麼還不如回去改用 Word 還比較熟悉、方便。


Word 的好處之一,就是排版很自由,但這也是壞處之一。因為這會讓許多人誤會文章排版沒什麼學問,是一件人人都做的好的事情。實際上不然,排版問題牽涉很廣,有許多人是專門在研究這個的,小到字型的結構、大到整本書的呈現,都有人研究。只是很少人會對他們的研究有興趣,而且也不太會知道排版中也有一些「基本原則」,遵照這些基本原則,可以讓文件看起來很舒服。但使用 Word 製作文件的人,並不一定每個人都想花時間去了解或是去實踐這些排版規則,而 Word 也不會聰明到幫你自動排版。因此有許多用 Word 製作的文件,看起來就很醜,但製作的人卻不以為意。甚至很多政府機關的報告、計劃書等,不看內容,光看格式, 就讓我覺得很不專業了。

使用 TeX/LaTeX 的好處之一,就是作者不用管排版,因為許多的排版套件都已經按照「基本原則」去設計,因此就算是一個初學者,只用最基本的功能去製作一份文件,看起來就像是一份精心設計的專業文件。

我有時候翻一下現在台灣出版社出版的理工類書籍,看到裡面的數學式不按照通用規則排版,就大概可以猜出這本書可能只是用 Word 編排一下,就出版了。這樣品質的書籍,就算不跟國外同質書比,跟大陸的北京大學出版社、科學出版社等等的書籍一比, 就會覺得台灣的出版社實在太混了。


基本流程

我以學生最常寫的實驗報告作為例子,藉由完成一份基本的文件,來說明如何使用 LyX。
使用 LaTeX/LyX 編寫文件時,與 Word 最大的不同點,在於必須指定目前你所輸入的東西,屬於什麼內容?指定好之後,排版時電腦會依據你的設定,套用排版的格式。

首先,先開啟 LyX, 新增一個文件。開啟後,出現如下的視窗。

這時候,請注意左上角有個「Standard」,這個部份,就是讓你「指定」你輸入的文字,屬於哪種東西?你可以點開來看看,看看有哪些選項可選。這部份的內容,會隨著你選擇的文件樣板而不同。

更換樣板到 KOMA-Script

由於我覺得預設值得樣板容易造成邊界空白過多的問題,所以我常用的樣板是 KOMA-Script 樣板。先將樣板作修改,在選單列上選擇「Document → Settings... 」,出現如下的視窗。將 Document class 改為 article (KOMA-Script)。

不要急著按 OK。注意看看左方選項,可以看到有很多項目可以選。如果要製作中文文件,檢查一下 Fonts 的地方,看看 CJK 是否有指定 bsmi 字體了。

再看一下 Language 的部份,Encoding 的部份是否已經為 Unicode(CJK)(utf8) 了?

最後看一下 Page Layout 選項,Format 如果沒有特別指定 A4, 預設值有時候可能是 Letter 紙張,因此這邊改一下,強制定義紙張為 A4 比較安全。

以上都設定好之後,可以按下「Save as Document Defaults」按鈕,這樣下次開任何一個新的文件,預設值就會全部按照目前的設定,以後就不用再一一檢查目前的設定。完成之後,按 OK 離開。


文章標題、作者、日期

接著就可以開始製作文件。通常一開始都是先輸入標題。因此,先選左上角「Standard」,改為「Title」(這時候你應該可以感覺到選項似乎變多了!沒錯,因為 KOMA-Script 樣板能選擇的樣式比 article 來的多)。
接著輸入標題,按下 Enter。仔細看看左上角的樣式鈕,它會跳回「Standard」的樣式。
接著,你可以試試先輸入文字後,再選擇左上角的樣式,也是可以的。

按照下圖格式,試著輸入如圖內容。前四行樣式分別為: Title, Subtitle, Author, Date

Date 如果想要放製作文件當天的日期,可以輸入 TeX 程式碼。方法為按下 Ctrl-L 鍵,會跳出一個紅色框框,在裡面輸入 \today 即可。

現在,可以按下 Ctrl-R 鍵,或是左上方工具列中的眼睛圖案(如右圖),就可以預覽生成的 PDF 文件。以下您做完一任何一個部份後,都可以隨時生成 PDF 文件看看結果。

現在我們來修改一下中文字體。將標題的中文字改為「標楷體」。由於 CJK 內建的中文字體只有2種 (明體, 楷體), 所以除非您有安裝其他新字型,否則就只有這2種中文字體可以用了。

在中文字的前方,按下 Ctrl-L 鍵,輸入 TeX 程式碼 \CJKfamily{bkai}, 即可。如下圖


段落與內容

接著,您就可以開始撰寫內容了。一份文件通常需要分章、節,這部份可以也是類似於指定標題的方法,您可以輸入文字之後,將其指定為 Part, Section, Subsection, ... 如下圖。
注意看樣式選單中,Part, Section, Subsection ... 這個層級是由大到小。此份報告我使用的最大層級是 Section, 因此要再細分時,就選擇 Subsection。
若是有加星號的, 如 Part*, Section*, Subsection* ... 代表這段文字前,不加上數字編號。
因此,您可以按照文章大綱的分類,指定其層級。

內容編號

文件中常會列舉一些東西,這時候就需要用到編號。LyX 中的編號按鈕在如下圖中的位置

前面2個很按鈕容易懂,中間兩個在 Word 中就沒看過了,這 2 個分別叫做 List, Description,用來列舉或說明用的。 例如解釋好幾個定義名詞時,就可以用 Description 這個選項。

至於編號要分階層的話,就可以使用右邊2個按鈕來達成,或是 Tab, Shift-Tab 鍵來完成。
這部份很容易,初學者練習一下應該就能夠掌握,製作出如下的編號階層。

你實際試一下的話,就會知道上面看起來很正常的內容,好像不如想像中的容易。其實這裡藏著 2 個小重點,分別在如下的位置。

  1. 第一個圓圈框起來的範圍,樣式為「Standard」。因此操作步驟為,在輸入完 ABCDEFG 之後,「按 Enter, 按 Tab, 選擇左上方的樣式為 Standard」接著輸入內容。
    如果你嫌由選單來選擇「Standard」太慢,那麼可以按「Default 鈕 (數字編號按鈕左邊一個)」,即可將樣式恢復成 Standard。
  2. 第二個圓圈指的地方,是換行。這裡有兩種換行方式; 如果你本來就是希望內容分成2段,那麼可以在文字中間,直接按 Enter, 即可換到下一個段落。但如果你只是要強制換行,希望下一行的內容看起來還是跟上一行是屬於同一段,那麼可以按 Ctrl-Enter,會出現一個強制換行的符號, 如右圖。
請自行輸出 PDF 後,比較這兩種換行有何差別了。

插入圖片

報告中,常常需要放入圖表之類的東西,在 LaTeX 中,圖片擺放的位置,基本原則是除了頁面中只有單獨一張圖除外,圖片都是擺在頁面的最上方或最下方,不會擺在頁面的中間。當然這都只是「原則」,都可以更改的。

文件中擺放圖片,一般都是先設定一個浮動框 (float figure),把照片放進去,然後讓排版程式自己去決定圖片擺放位置。文件中如果需要解說到該圖時,使用「參考圖xx」的方式說明。

LyX 中放置圖表的相關按鈕如下:

(1) 號按鈕的功能,就是加入浮動圖框、浮動表格框。
(2) 號按鈕的功能,就是插入圖片、插入表格。

試著先按(1) 號的插入浮動圖片,然後再按(2) 按鈕, 插入一張圖片。插入圖片後,會跳出一個視窗,可以選擇圖片路徑,大小(我通常是以 Column Width % 為單位)。

按下 OK 後,就可以建立如下的浮動圖框+圖+圖說了。

如果圖片在浮動框中,需要將圖片調整為置中的話,可以藉由改變段落設定達成目的。如下圖, 先點選右上方的按鈕,跳出段落設定的視窗,再選擇置中即可。

要注意的是,LyX 不像 Word,將照片直接嵌入 LyX 的檔案中,它存的都是「路徑名稱」而已,因此,如果圖的路徑不正確,照片就無法顯示了。

參考標籤(label) 及 參照(cross-reference)

為了要讓內容中的「請參考圖xx」能夠自動連結,我們需要加入標籤。這個功能對 Word 使用者來說可能都有點進階,但這個功能在 LaTeX 文件中,算是基本功能了。

LyX 中相關的按鈕如下圖,使用方法很簡單:
  1.  按鈕(1),先在圖說的地方加入標籤(在圖說的開頭、結尾都可以),取名。通常電腦會先自動幫你取個名字,你如果接受,就直接 Enter 接受。如下圖的標籤名稱為「fig:OP-circuit」。
  2. 將游標停在文章中需要交互參照的地方,按按鈕(2),會跳出一個標籤列表,你可以直接選則參照的標籤。這樣,文字中自動多個灰色區塊的交互參照標籤。這樣就完成了。

當然,表格也可以這樣用,如下圖。

圖片只能放一個嗎?當然不只囉!常見的並排圖片,圖片下方各有圖說,製作的方法就如下圖, 如果我在一個浮動圖框中,再放兩個寬度為 50% Column 的圖片這兩個子圖就可以並排在一起了。

點擊 「float:圖」灰色的區域,可將圖片摺疊起來,這樣有助於看到前後文字。如下圖.

數學方程式

數學排版是 LaTeX 的強項。要進入輸入數學模式,只需要按 Ctrl-M , 或 Ctrl-Shift-M 。
要切換 inline mode 或是 display mode,可按 Ctrl-Shift-M 切換。所謂的 inline mode 就是數學式放在文字中使用。例如下圖的上半部文字。而 display mode 就是展示式, 如下圖的下半部。


當數學式跟文字放在一起時,就是 inline mode, 這時候按 Ctrl-M。
當要輸入 (3) 那行的數學式,就是屬於 display mode, 這時候直接按 Ctrl-Shift-Mode。但若反悔,想改回 inline mode, 就再按 Ctrl-Shift-Mode 即可切換到 inline mode。

輸入數學式,可以使用數學工具列,或是使用 LaTeX 的命令方式,這部份我建議直接學習 LaTeX 輸入數學式的命令,這樣可以完全使用鍵盤輸入數學式,而不用動到滑鼠。

當然,別忘了數學式也是可以加標籤的,文章中也可以交互參照,如下圖。


完成

如果你按下 Ctrl-R 或預覽按鈕後,都可以看到編譯後的 PDF 文件,恭喜你,你已經具備使用 LyX 的基本能力了。接著將成果輸出成 PDF,可以由以下的步驟,這樣就會在與 LyX 同目錄下,生成一個 PDF 文件。

我自己生成的 PDF 文件如下。


進階 & 問題 & 建議

在 PDF 中,您注意到我的「圖 1:,  圖 2:」是中文字嗎?但是表格卻是「Table 1: 」,  請幫我把 Table 也改成中文吧!(提示: 在要在 Preamble 區用 LaTeX 的命令來設定)

最後,希望您熟悉了基本功能之後,能夠翻翻 LyX 的說明文件(如下圖), 那些說明文件都是 LyX 做出來的。您從中可以學習到許多的 LyX 的方法及技巧。當然,最重要的,就是您需要用這個工具寫自己的文件。也唯有撰寫自己的文件,才會去想「這步該怎麼做」... 然後,您自然就會開始關注 LyX 的其他功能或是 LaTeX 的語法。用的愈久,愈熟練之後,您就愈能體會 LaTeX/LyX 真的能讓你「專心在內容上」以及「What You Think is What You Get!」了!

11 則留言:

  1. 感謝你的分享,收獲很多,我也是喜歡使用LyX的使用者,因為對於Word總是覺得少了什麼。
    在使用上常遇到的問題應該是複製貼上這一塊,因為Word的直覺話使用讓我習慣了Ctrl+c/Ctrl+v 但是如果想要這樣使用在Lyx上往往會發現格式全跑掉了,不知道有沒有什麼方法可以克服的,比如說貼上表格或是其他的?
    一直在尋找答案中,在那之前只能花時間用手打了...

    回覆刪除
  2. Hi, 您好,其實如果是要處理從 Word 貼過來的文件,會全部黏成一行,這是因為 LyX 的 Ctrl+v 預設值是把資料整個視為一個段落。如果您需要保留 Word 文字的斷行訊息,需要按 Ctrl+shift+v. 或是從選單中選「Edit-> Paste Special -> Plain Text」就行囉!

    至於從 Word 表格要貼到 LyX 中,我到現在還沒有試成功一次貼上超過2格以上的內容。因此,遇到表格,我只能先用 LyX 畫表格的工具畫好相同的表格後,再將資料一格一格複製、貼上了。我知道這種方法很笨,但我目前也沒有更好的方法了 :P

    貼到 LyX 的文字要視為純文字,所以貼上後在 LyX 中看到的格式一定跟 Word 中不一樣。
    不過當有了純文字的內容後,剩下的工作大概就剩下指定 Title, Section, Subsection 等等用滑鼠點選設定值的工作了。

    回覆刪除
  3. 這篇文章寫得很好,對於我這個LYX初學者來説太有幫助了。祇是對大陸出版社的讚譽,哈哈,我是大陸的,其實大陸的出版社很多也很混。

    對於從doc拷貝表格粘貼到LaTeX,我的辦法是用libreoffice的writer組件和calc組件解決。先用writer打開這個文檔,把表格拷貝粘貼到calc組件中,然後用calc組件的calc2latex插件轉換成LaTeX代碼就可以了。

    大鵬

    回覆刪除
  4. 衷心感謝你!LYX最近的資源還是沒有很多
    感謝您的介紹讓我們使用時可以更容易上手。

    回覆刪除
  5. 謝謝好文!但是我在轉 PDF 的時候出現 Error
    ! Package inputenc Error: Unicode char \u8:粵 not set up for use with LaTeX.
    這是我設定錯了嗎?該怎樣解決?Thanks!
    p.s. 我用 Mac OS X, MacTex + Lyx

    回覆刪除
    回覆
    1. 您好,我想這個問題可能是中文編碼設定的問題。您可以檢查看看 Document > Settings... 裡面的 Language 設定,看看是否已設定為 Chinese (traditional)。底下的 Encoding 可以使用 Language Default 或是 自行選為 Unicode(CJK)(utf8)。
      另外,可以再檢查 Fonts 內的 CJK 設定, 看看是否有設定字體?

      如果這幾項檢查都沒問題,但輸出還是有問題的話...
      可以參考看看這位網友提供的方法:
      http://moonstone.math.ncku.edu.tw/joomla/index.php/articles/62-lyx-latex

      刪除
  6. 您好,
    我在插入內容表時轉檔pdf時出現
    Package inputenc Error: Unicode char \u 8:結 not set up for use with LaTeX.
    Package inputenc Error: Unicode char \u 8:論 not set up for use with LaTeX.
    兩行錯誤(結論是我的最後一章標題)
    但是如果我把內容表刪除就不會出現任何問題
    試了上面的方法都不行
    搞不懂錯在哪裡,該如何解決謝謝你!!!

    我是用Mac OS X, MacTex + Lyx

    謝謝你!!

    回覆刪除
    回覆
    1. 哈哈我自行解決了

      解決的方法是在文章的最後加入
      \newpage
      就可以編譯出內容表了

      不過也是謝謝你

      刪除
    2. 太棒了,您可以自己解決問題,用 LyX 一定沒有問題的 :D

      使用 CJK 套件並且加上目錄的話, 我也常遇到編譯失敗,
      您可以看看我的另外一篇文章 http://latexlyx.blogspot.tw/2013/09/cjk.html

      刪除
  7. Language那邊改成Chinese Traditional之後, Definition就變成定義, Example就變成範例, 有沒有辦法維持他們是英文的?

    回覆刪除
    回覆
    1. 這個是 LyX 的特性之一。UI 的語言設定,與編輯區的語言是分開的。
      就算 UI 設定為 English, 如果文件語言設定為 Chinese, 那麼編輯區出現的一些如 Chapter, Section, Definition 等名稱,會自動變成中文。也就是說文件的語言設定值,會影響 LyX 文字編輯區內呈現的語言。
      若使用數學模組或一些數學論文 document class 的時候,甚至連輸出的文件內容都會根據語言設定而變。(也就是 Definition 變成 定義)

      所以您說的狀況,可能有2種情況:
      1. Definition 在 LyX 編輯區內變成中文,但輸出文件時文件還是出現 Definition
      這個只是編輯區呈現的問題,沒辦法只改一部份。如果真的希望文件設定成中文,但所有界面看起來都要是英文的環境,您可以直接刪掉中文翻譯檔,這樣所有介面都會變成英文的。
      以我的環境,繁體中文的翻譯檔路徑在(for Windows):
      C:\Program Files (x86)\LyX 2.1\Resources\locale\zh_TW\LC_MESSAGES\LyX2.1.mo
      把這個檔名改掉,這樣 LyX 就找不到中文翻譯檔,都會以預設的英文呈現。

      2. 如果您的問題是輸出的文件會出現中文的「定義」問題,不管界面顯示。這個問題跟另外一個檔案有關,
      C:\Program Files (x86)\LyX 2.1\Resources\layouttranslations
      您可以用任何文字編輯器開啟此檔,找到 Translation zh_TW 這行以下的設定改成您喜歡的,或是直接把這個檔名改掉或刪掉檔案,這樣輸出文件也不會自動翻譯了。

      刪除