實現(xiàn)中英文混排

2018-02-24 16:13 更新

除掉成功生成第一個文檔,實現(xiàn)中文輸出(或者說是中英文混排)恐怕是困擾中國的 TeX 使用者的第二個普遍問題。眾所周知,TeX 系統(tǒng)是高教授開發(fā)的,當初并沒有考慮到亞洲文字的問題。因此早期的 TeX 系統(tǒng)并不能直接支持中文,必須要用其他工具先處理一下(或者是一些宏包之類的)。

但是現(xiàn)在,XeTeX 原生支持 Unicode,并且可以方便地調(diào)用系統(tǒng)字體??梢哉f解決了困擾中國 TeX 使用者多年的大問題。

此外,除去中文支持,中文的版式處理和標點禁則也是不小的挑戰(zhàn)。好在由吳凌云和江疆牽頭,現(xiàn)在主要由劉海洋和李清(還有我打個醬油)維護的?ctex?宏包 / 文檔類一次性解決了這些問題。ctex?宏包和文檔類的優(yōu)勢在于,它適用于多種編譯方式;在內(nèi)部處理好了中文和中文版式的支持,隱藏了這些細節(jié);并且,提供了不少中文用戶需要的功能接口。

為了和原有的日志對接,這里分別用兩種方法來介紹中英文混排。當然,老方法只是為了「兼容性」存在的,推薦使用新方法。

新方法——使用?ctex?文檔類

在 TeXworks 編輯框中輸入以下內(nèi)容,保存,使用 XeLaTeX 編譯:

\documentclass[UTF8]{ctexart}
\begin{document}
你好,world!
\end{document}

如果沒有意外,你將會看到類似下圖的輸出結(jié)果。

相較于之前的例子,這份代碼只有細微的差異:

  1. 文檔類從?article?變?yōu)?ctexart
  2. 增加了文檔類選項?UTF8。

新版?ctex?宏包和文檔類的默認能夠自動檢測用戶的操作系統(tǒng),并為之配置合適的字庫。對于 Windows 用戶、Mac OS X 用戶和 Linux 用戶,都無需做任何配置,就能使用?ctex?宏包和文檔類來排版中文。[2015-05-20 更新]

老方法——直接調(diào)用 xeCJK 宏包

在 TeXworks 編輯框中輸入以下內(nèi)容,保存,使用 XeLaTeX 編譯:

\documentclass{article}
\usepackage{xeCJK}% 調(diào)用 xeCJK 宏包
\setCJKmainfont{SimSun}% 設(shè)置 CJK 主字體為 SimSun (宋體)
\begin{document}
你好,world!
\end{document}

如果一切順利,你將會在屏幕右邊的窗口,看見類似下圖的輸出結(jié)果。

如果你的 TeX 系統(tǒng)提示找不到字體,請換用你的操作系統(tǒng)中可用的中文字體。關(guān)于如何尋找你的操作系統(tǒng)中可用的中文字體,請參考本章最后一小節(jié)。

除了 “document” 環(huán)境中同時出現(xiàn)了中文和英文,和最原始的 Hello, world! 不同點在于,導(dǎo)言區(qū)中多出了兩條控制序列。他們的作用我已經(jīng)用注釋標出了。

所謂的宏包,就是一系列控制序列的合集。這些控制序列太常用,以至于人們會覺得每次將他們寫在導(dǎo)言區(qū)太過繁瑣,于是將他們打包放在同一個文件中,成為所謂的宏包(臺灣方面稱之為“巨集套件”)。\usepackage{·}可以用來調(diào)用宏包。

\setCJKmainfont{·}是定義在 “xeCJK” 宏包中的控制序列,它可以用來設(shè)置 CJK 主字體。

請注意,TeX 系統(tǒng)對宏包名稱和控制序列的大小寫是敏感的

查看當前操作系統(tǒng)中的字體

Mac OS X 用戶

請參照?這篇博客?中的方法,使用系統(tǒng)自帶的字體冊程序來查看系統(tǒng)字體。

非 Mac OS X 用戶

按照如下步驟打開系統(tǒng)命令行(*nix 系統(tǒng)請打開終端):

  • 按下+ R;
  • 鍵入cmd, 回車。

在系統(tǒng)命令行中輸入如下命令:

fc-list :lang=zh-cn > C:\font_zh-cn.txt

(相信使用 *nix 的你,一定知道如何修改上述命令達到你想要的效果)

打開 C 盤根目錄下的?C:\font_zh-cn.txt?純文本文檔,里面的內(nèi)容就是你當前系統(tǒng)可用的全部中文字體,形如:

每一個小黑框之間的內(nèi)容,就對應(yīng)著一個可用的字體。這些小黑框?qū)嶋H上是換行符,但是由于 Windows 系統(tǒng)的原因,他們沒有被正常顯示。如果看著不爽,你可以嘗試用 TeXworks 打開這個文件查看(放心,能夠打開的)。以下是我用 gVim 打開的效果:

其中的每一行,都代表著一個可用的字體。其形式如下:

<字體文件路徑>: <字體標示名 1>, <字體表示名 2>:Style=<字體類型>

我們可以看到圖中的倒數(shù)第四行

C:/WINDOWS/fonts/simsun.ttc: 宋體,SimSun:style=Regular

出現(xiàn)了之前文檔里調(diào)用的字體SimSun,此處表明該字體有兩個表示名:宋體SimSun,我們在\setCJKmainfont{·}中填入任意一個都有同樣的效果。

因此,如果之前的文檔無法編譯通過,請在你的操作系統(tǒng)字體中,選取一個自己喜歡的,將它的字體表示名填入到\setCJKmainfont{·}中去。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號