2019年8月24日 星期六

LaTex 對 Unicode 的支援

LaTex 有無支援 Unicode? 這個問題對我而言不重要,因為我們都是用 LaTex寫英文論文,不會用到 Unicode。

最近接手改寫已畢業學生的碩士論文,他是用 LaTex 寫的。編譯過程中出現下面這樣的錯誤訊息


看樣子是文檔中嵌入了不該有的Unicode。這個 LaTex 檔案在學生使用的MAC電腦是可以正常編譯的,在我另一台PC的 MiKTex 也可以過,但是在我筆電的 MiKTex 上就會出現上述的錯誤訊息而停止編譯。

同樣版本的MiKTex有些可以過有些不行, 應該是缺了某些 package 的緣故。我決定不管這些,手動去把論文中的 Unicode 抓出來改掉。有些 Unicode 是很明顯的,像下面這個顯然就是誤用到全形的英文字型。


這種例子很容易修正。不過還是有些 Unicode,不管我怎麼找都找不出來。後來動用最笨的程式除錯的方式,在論文中加入 \message{} 在螢幕輸出訊息,終於找到最會躲藏的 Unicode。

上面這張截圖中,上方的減號(-)是LaTex認得的正常的符號,下方的減號是 Unicode,在某些版本的LaTex是無法編譯的。LaTex 的錯誤訊息沒有辦法提供太多線索,讓我花了不少時間才找出來。在此紀錄一下,免得下次再犯同樣錯誤。

2019年2月1日 星期五

嵌入pdf檔案中的字型

我常常遇到下面這件事。投稿IEEE的國際研討會,論文被接受後,要上傳終稿(pdf格式)前,得先通過IEEE eXpress的pdf格式相容性查核,但查核結果為不通過。
查核不通過的最常見的原因之一,就是pdf檔案中沒有內嵌(embed)文件中所有用到的字型(font)資料。一般而言,文件中皆會儲存文字的字元編碼(code)及字型代碼。文件閱讀程式只要支援該文件的字元編碼,並擁有對應的字型資料,就可以正確無誤地重現原文件的內容與格式。如果文件閱讀程式套用了錯誤的字元編碼,顯示出來的就會是俗稱亂碼一樣的文字。如果文件讀取端沒有對應的字型資料,顯示的內容也會與原先文件製作者看到的不一樣(通常會用相似的字型替代原先的字型顯示出來)。

一般電腦預設都會事先安裝好數種常見的字形資料,如中文的細明體和英文的Times New Roman, Arial 等。為了節省檔案的儲存空間,這些常見字型的資料不必再重複存放一份在pdf文件中。對於一些不常見的特殊字型,因不確定讀取文件端是否已安裝該字型的資料,所以儲存成pdf檔案時,有必要將字型資料同時存放在pdf檔案中,讓讀取文件端可以順利顯示相同的字型。這些字型資料稱為內嵌在pdf檔案中。

一份pdf文件中,部分字型內嵌,部分字型沒有內嵌,是很正常的現象,通常讀取或列印文件也不會有甚麼問題。不過出版商考量的是最極端的情形,所以要求所有論文檔皆要內嵌所有用到的字型(即使是最普遍的)。結果是,每一個論文檔都內嵌這些常見的字型,檔案大小都增胖不少。

我是用PC上的MiKTex寫論文,通常論文中所有用到的字型都會內嵌,會遇到問題的都是論文中外嵌的圖檔(figure)。


許多人不清楚圖檔中也會出現字型未內嵌的問題。事實上只要使用任何pdf reader,就可以查核出來。上圖顯示某個圖檔中用到了兩個字形,都沒有內嵌(沒有embedded字眼)。其實此例中的Times New Roman (PostScript),幾乎是每一台電腦中都已經安裝好的的,即使我們的pdf檔不嵌入此字型的資料,正常狀況下對方顯示圖檔時也不會有問題。

我通常會用到的圖檔有兩類。一類是顯示實驗結果的統計圖表,由Matlab輸出成eps格式,再轉換成pdf格式。這部分通常沒問題,最後的圖表檔都會有內嵌字型。另一類圖檔是用於呈現系統架構或其他非統計結果的插圖(illustration),由Visio 繪製,輸出成整頁(A4大小)的pdf格式後,再另用工具(PDFill PDF Tools)切割成所需要的大小。通常會出問題的就是這部分的圖檔。

至少有兩種方式,可以將Visio的圖形輸出成整頁(A4大小)的pdf格式。一種是在Visio程式中使用匯出或另存新檔的選項,另一種是在Visio中透過Bullzip pdf印表機驅動程式將圖形列印成pdf檔案。由Visio直接輸出pdf格式常常會出現離譜的結果,而且如果發生圖檔沒有內嵌字型時,也無法解決。我習慣用Bullzip pdf印表機驅動程式列印的方式輸出pdf格式。除了輸出結果較為正確外,也可以解決圖檔沒有內嵌字型的問題。

解決方式並不難。在Bullzip pdf印表機的進階選項中,將EmbedAllFonts這個選項設成True ,通常就可以解決此問題。如下圖。

2018年11月28日 星期三

Robert E. Lucas, Jr. 的英文名字

我有一篇blog文章,整理了我個人對英文論文中學者的英文名字該如何寫的心得,本來是給自己備忘,並讓學生參考用,不過大概這樣的資訊甚少,後續有很多人問我一些奇特的例子,今天就遇到一個例子。

今天的例子是諾貝爾經濟獎得主Robert E. Lucas, Jr.。有些網頁將他的名字寫為Robert E. Lucas, Jr.,在最後的Jr.前沒有逗號。有沒有逗號有差嗎? 我在之前的blog文章中說:
有些歐美人士的 last name 最後的 Jr. 和前面沒有用逗號隔開,如Ron James Jr.。這樣要把姓移到前面去時會成為 James Jr., R.。有些歐美人士的 last name 最後的 Jr. 和前面有用逗號隔開(如 Henry Ford, Jr.),這時將姓移到前面去時會成為 Ford, Jr., Henry。
這樣一來,當我們要把他的姓移到前面去時(很多期刊的參考文獻格式會如此要求),有逗號版本的正確結果應該是
Lucas, Jr., Robert E.
而沒有逗號版本的結果會是
Lucas Jr., Robert E.
(其實也只差一個逗號啦)。不過問我的讀者提出了另一種他看到的寫法
Lucas, Robert E., Jr.
(據說是台大的經濟論文叢刊)。為了驗證哪個正確,我去查了這位學者的論文,然後看引用這位學者論文的其他論文怎麼寫。畢竟是諾貝爾獎得主,他論文的引用率非常高。最後我在Journal of Political Economy這份期刊的一篇論文 Nonlinear Effects of Taxation on Growth (Volume 125, Number 1, February 2017) 的參考文獻欄中,看到下面的參考文字


支持台大的經濟論文叢刊的寫法。

我想我需要時間來驗證我原來的講法是否正確。

2018年11月11日 星期日

LaTex Table Generator

用LaTex寫論文的人都知道,用LaTex的指令畫表格是一件很累人的事,尤其是表格很複雜的時候。今天我發現一個可以線上繪製表格,然後轉換成LaTex指令的網站。這真是太好了。網址: LaTex Table Generator。記得若有合併多個 row 的指令,需要在文件前面加上 \usepackage{multirow}。

2018年10月9日 星期二

「手肘」

今天早上我想用注音輸入法輸入「手肘」的「肘」,卻怎麼樣也選不到這個字。不得已用「手軸」去google,才找到正確的字,然後複製貼上來用。

在Google的搜尋列輸入「手軸」兩個字後,先不要按Enter,你會發現Google自動填入的建議字眼除「手軸」外,還有「手軸穴道」「手軸脫皮」等,可見拼不出「肘」的人應該很多,不是只有我一個。而按下Enter後Google列出的搜尋結果會提示你:「目前顯示的是以下字詞的搜尋結果:手肘」,可見Google也知道大部分人搜尋的「手軸」其實是「手肘」的代稱。

為何我用注音輸入法選不到這個字呢?原來「肘」不唸注音二聲,而是三聲ㄓㄡˇ。我們很難將「手肘」這樣連續兩個三聲的字唸出來,所以一般口語上將第二個三聲的「肘」轉唸成ㄓㄡˊ,實際上這個字在字典中單獨唸ㄓㄡˇ。

這讓我多知道了一些事。我原來就知道如果唸連續兩個三聲的字,會把第一個三聲字轉唸成二聲。例如「好美」,應該大家都是唸成ㄏㄠˊ美,「老虎」都是唸成ㄌㄠˊ虎。但我沒見過把第二個三聲字(而非第一個)轉唸成二聲的例子。「手肘」算是第一例吧。或者我以前沒特別留意。

如果是連續三個三聲字呢?一般如「李小虎」、「呂總統」、「女主角」等,應該都是三二三這樣的發聲規則吧。但如果依據這樣的規則,「好手肘」(我瞎掰的詞)唸起來非常怪,應該沒人聽得懂你在說甚麼。「好手肘」應該是二三二的發音規則。

2018年10月7日 星期日

「人肉搜索」和「一屍到底」

最近看了兩部頗有新意,讓人眼睛一亮的電影。跟大家分享一下。

一部是好萊塢電影「人肉搜索」。這部片海量使用了目前的資訊科技工具,iPhone, Google, FB, Instagram, 直播, IP Cam等,來演繹一個還不錯的劇本。這樣的成果是十年前見不到的,絕對可以當作今年2018年的時光膠囊流傳後世。身為科技宅的朋友絕對會感到安心與熟悉。

另一部是日本片「一屍到底」。這部片有多達三層以上的層次,第一層是殭屍片,第二層是拍電影,第三層為了不要劇透還是保留一下,而且其實還有第四層。雖然是殭屍片,但笑點不斷,而且充斥著「原來如此」的哏。這部片讓我對近年日本電影的看法稍微改觀。

我對這半年的日本電影是比較失望的。細田守的「未來的未來」我完全無感。看「 每天回家老婆都在裝死」,我不明白日本夫妻內心到底在糾結什麼,雖然電影本身還可以。看「 空中急診英雄」時,我幾乎開始要算每隔多少分鐘,會要有人在電影中哭一次。「小偷家族」雖然不錯,但會讓一般中產階級看得不舒服,這點是不如「海街日記」的。

反觀近幾年的韓國片,你不用特別挑,看完都不會抱怨是爛片,會讓你覺得值回票價。我最近看的「北風」就是這樣。日片格局越來越小,韓片越拍越進步。 

2018年7月8日 星期日

學生的來信

期末時收到學生的來信,大意是抱怨他明明某幾次的演講都有上傳心得報告,助教卻都沒幫他登記分數云云。我看完後回信給他,跟他說明我是上學期專題研討課程的負責老師,但這學期專題研討的負責老師另有其人,他寄錯對象了。

結果學生回信了,請我將他的信轉寄給這學期專題研討的負責老師。

我也回信給他,告訴他確認課程的負責老師是他的責任,不是我的。當然,我也沒幫他轉信。