2013年9月11日 星期三

增加 TeXworks 排版編譯選項

在 Windows 或 Mac 電腦裡面, 安裝完 MikTeX 或是 MacTeX 之後,預設應該都會安裝一套 TeXworks 的編輯軟體。這套軟體對於編寫 TeX 的文件很方便,但其預設使用的編譯器是 pdfLaTeX,對於文章內有使用 PSTricks 套件繪圖的檔案,使用 pdfLaTeX 編譯會失敗。需要使用傳統的 latex + dvips + ps2pdf 至少三步驟來完成編譯程序。

但是 TeXworks 的編譯選項中並沒有這個項目,因此必須手動新增這樣一個項目。

參考了這個網站,就可以按照其中的步驟增添編譯項目了。

可以先寫個簡單的文件做測試。
%% 測試 latex + dvips + ps2pdf 編譯方式是否成功
%% Date: 2013/9/11

\documentclass{article}
\usepackage{pst-optic}

\begin{document}
There is a triangel $\triangle$ABC:  A(0,0), B(1,1), C(2,0).

\begin{pspicture}[showgrid=true](-5,-3)(5,3)
\psdots(0,0)(1,1)(2,0)    %畫點
\psline(0,0)(1,1)(2,0)(0,0)  %畫線
\uput[-135](0,0){A}  %放標籤
\uput[90](1,1){B}   %放標籤
\uput[-45](2,0){C}  %放標籤 
\end{pspicture}

\end{document}


先試著用預設的 pdfLaTeX 編譯,會得到錯誤訊息, 而且也無法生成 PDF 文件。

接下來我們就為 TeXworks 增添編譯選項讓這個文件通過編譯並生成 PDF 文件。

2013年9月9日 星期一

發現 PSTricks 好物

自從發現我電腦裡面有好用的 TeX 套件「圖書館」之後,我偶而就稍微看看裡面有什麼東西。當我在找尋畫甘特圖的套件庫時,無意間發現了 PSTricks 提供了好多繪圖套件呀!

當時,我並不清楚 PSTricks 是什麼東西,後來稍微研究一下,才發現 PSTricks 真是個好物呀!簡單來說,PSTricks 是一個繪圖套件,它提供一些命令巨集(例如: 畫點、畫線、塗色...等等),當你使用這些命令後,編譯文件的時候,PSTricks 會幫你把它轉換成 PostScript 的繪圖語言,這樣文件中就會出現圖案啦!

路人:這算什麼好物?都什麼年代了,哪裡還需要用輸入命令來畫圖?(不屑中...)

ㄜ, 我一開始的確是這麼想的啦! 只不過當我看到官方網站 PSTricks 的 Package List 的時候,突然....眼睛一亮...


咦?怎麼會跟光學系統有關?還跟示波器有關?這是什麼東西?點進去一看,嚇了我一大跳。原來這三個套件,可以讓我只用幾行程式碼,就畫出光學系統的架構圖、光學成像系統、甚至是畫出模擬示波器螢幕看到的波型。

2013年8月24日 星期六

用 LaTeX 畫(非正規)甘特圖

有位朋友的公司主管,想要做計畫稽核,因此開始導入甘特圖 (Gantt chart),希望底下的部屬能將平日負責的案件進度,畫在甘特圖上,主管也好追蹤進度。

由於主管與部屬分屬不同兩地,因此該主管便希望能利用 Google Doc 裡面的功能,建立甘特圖。因此該主管開始嘗試著使用 Gantter for Google Driver 這個 web 界面的應用程式,並且推廣給部屬們使用。

原本這是美事一樁,善用現成的資源,提高生產力。但後來,事情開始轉變了。

不知道是該主管的主管看不懂,還是其他管理單位的人員看不懂甘特圖,他們後來決定放棄現成的甘特圖不用,要自己發明一套「新甘特圖」。而且因為 Google Doc 上沒有其他現成軟體可以支援這種「新甘特圖」,因此主管便要求部屬們「腦力激盪」,用 Google Doc 裡面的試算表畫出「新甘特圖」。

什麼叫做「新甘特圖」呢?

2013年8月22日 星期四

semaphore(旗語) 字型

還記得國中童軍課的時候,學過一套旗語,可以比出 0~9 的數字。再搭配一本中文電報碼的小冊子,找出對應的 4 位數字的中文字,就可以透過旗語傳送中文字訊息了。

當然這個是在沒有手機的年代,在大聲喊叫對方聽不到的狀況下,而且還需要雙方都有一本中文字電報碼的小冊子,這樣用旗語來傳遞訊息才行得通。

當時我年紀小,只知道「數字」的旗語。今天無意間在瀏覽 TeX 的說明文件的時候,意外發現還有專門給「旗語」用的字體。而且旗語不只是數字,還有英文字母。

這個字體稱為 semaphore。要使用的話,要先確定有安裝這個字體。

先在 LyX 文件的 preamble 區定義新字體的名稱, 一個稱為 smfr,另外一個稱為 smfpr。
\font\smfr=smfr10
\font\smfpr=smfpr10   %Person Style

接著在內文區中,使用 \smfr 或 \smfpr 的 TeX Code 來轉換字母或數字了, 旗語的字母沒有分大小寫, 所以 A 或 a 對應的旗語是一樣的。

例如英文字母旗語,使用 \smfpr 的字型:


由於這個套件庫實在太特殊,應該非常非常少人會用到(包括我也是),所以就留個範例檔以後有需要玩遊戲製作密碼的時候,再來參考了。

下載範例文件 semaphore.zip

clock 套件庫

我無意間發現一個小巧可愛的套件庫 --- clock,這個套件庫可以「畫出時鐘」,表示時間。

使用方式:
在 LyX 的 Preamble 區輸入
\usepackage{clock}
接著可以設定要不要畫出時鐘的外框:
\ClockFrametrue  % 畫出時鐘外框
\ClockFramefalse % 不畫出時鐘外框(預設值)
還可以設定刻度樣式, 當然這個設定值也是可以放在內文區做個別指定。
\ClockStyle=n %設定鐘面刻度的樣式,n=0~3 數值

內文區中如果要放入時間,必須使用輸入 TeX Code 的方式。按 Ctrl-L, 接著輸入:
\clock{時}{分}
12小時制或 24小時制的時間都可以。 如果要顯示編譯文件時的時間,要畫出時鐘則用:
\clocktime
要顯示數字的時間則用:
\texttime

下表說明了各個不同設定值以及排版出來的樣式結果。
clock 是一個簡單小巧的套件庫,我覺得很有趣且有用。

下載範例文件檔 TestClockPackage.zip

Linux 中的說明文件總覽

在 Linux 作業系統中安裝完 TeX Live 時,一般都會連著說明文件一起安裝。以前需要查詢 TeX Live 的套件說明時,我都是直接 google 類似的套件,很少從自己的電腦搜尋。

前幾天,在一個沒辦法使用網路的環境下,需要查閱一個套件資料的說明,我只好找看看自己電腦裡面有沒有該套件的說明。搜尋之後,發現自己電腦藏有一個非常好用的「圖書館」我都不自知呀  =_=!(汗...)


在 Ubuntu 的環境下,說明文件的可能路徑為:

/usr/share/texlive/doc.html    (使用 apt-get install 的方式安裝 texlive 的文件路徑)
/usr/local/texlive/<版本號>/doc.html    (自行從網站下載 texlive 安裝的文件路徑)

<版本號> 代表安裝的 texlive 版本,例如我安裝的是 Tex Live 2013, 因此文件路徑為
/usr/local/texlive/2013/doc.html

用瀏覽器開啟上述的 doc.html 檔案後,就可以看到說明文件總覽。如下圖。



點選上圖中紅色框框住的套件庫名稱,會開啟說明文件的「資料夾」,裡面可能會有範例的 .tex 文件等。如果不想這麼麻煩,可以直接點右側詳細說明中的 .pdf 連結。

如果點了連結跳出找不到文件的錯誤訊息,代表電腦裡面沒有這個套件,要再安裝後才有了。

這個 doc.html 檔案,可以說是電腦裡的 TeX Live 文件圖書館。我就把這個網頁做個書籤,下次要查套件庫的說明文件時,一樣開啟瀏覽器,只不過先查查自己電腦裡面的文件庫,這樣就算沒網路可用也不用害怕了。:D

補充:
如果已經知道文件名稱了,或是想要搜尋看看說明文件中是否有類似的關鍵字, 可以在命令列使用 texdoc 的命令,直接顯示出說明文件。
例如: 想搜尋畫甘特圖(Gantt)的套件說明文件,可以輸入:
  texdoc gantt
就會直接開啟搜尋結果第1順位的文件。
但我發現這樣可能會漏掉一些真正想找得文件,因此可以輸入:
  texdoc -s gantt
顯示所有搜尋結果的方式,列出有 "gantt" 字眼的文件,再自行選擇要開啟的文件,這樣字比較方便了。

2013年7月15日 星期一

處理單位的套件 siunitx 簡介

最近將 TexLive 更新到 2013 版的時候,發現有個滿有趣的套件 --- siunitx, 這個套件專門處理符號單位的。試用了一下,發現對於科學文件或技術文件還滿適合的,我就把試用過程中的一些心得紀錄起來。以後遇到要輸入單位的時候,如果忘記,還可以回來翻翻這個紀錄。

試用 siunitx 套件的時候,我突然有種心得,連「單位」這種「小事情」,都會有專門的套件來處理,難怪一些工業先進國的技術水準,是台灣難以追趕的。因為連技術文件是否清晰易懂,都會有人努力研究改進。當前人傳承清晰易懂的文件給後人,後人站在前人的基礎上再往前邁進,一代一代的進步,才有現在的成就。
我們這種工業後進國,只能努力學習人家的精神,期許一代比一代更好了。

廢話太多了,以下是 PDF 紀錄檔.  LyX 的原始文件可點此下載