Update: 今日突然發(fā)現(xiàn),我的xeLaTeX編譯生成的pdf中文字在TeXMaker內(nèi)置viewer、evince下查看均無(wú)法顯示中文,中文字顯示為空白,英語(yǔ)正常;但Firefox、Chrome瀏覽器打開(kāi)是中文顯示正常。
據(jù)說(shuō)可實(shí)現(xiàn)Linux下TeXlive中英混排的方法:
1. 本方法來(lái)自http://seisman.info/mini-template-for-xeCJK.html
xeCJK + xeLaTeX,這大概是目前為止最優(yōu)的中文解決方案。
/documentclass{article}/usepackage{xeCJK}xeCJK將默認(rèn)使用TeXLive自帶的Fandole字體。要能夠編譯通過(guò),需要將TeXLive自帶的中文字體安裝到系統(tǒng)中,最簡(jiǎn)單的辦法是在~/.fonts目錄下建一個(gè)軟鏈接:
ln -s /opt/texlive/2014/texmf-dist/fonts/opentype/public/fandol ~/.fonts/
然后使用xelatex命令編譯foo.tex即可。
2.本方法來(lái)自http://www.CUOXin.com/lienhua34/p/3675027.html。相比方法1,這大概是較舊的TeXlive實(shí)現(xiàn)中英文混排的的方式(?)。
在一份文檔foo.tex中:
/documentclass{ctexart}/begin{document}你好,/LaTeX!/end{document}如果直接編譯會(huì)出現(xiàn)錯(cuò)誤:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! fontspec error: "font-not-found"!! The font "SimSun" cannot be found.!! See the fontspec documentation for further information.!! For immediate help type H <return>.!...............................................l.5{SimSun}?這 是 因 為 ctex 宏 包 默 認(rèn) 使 用 的 是 windows 系 統(tǒng) 的 字 體, 而 在Linux下 沒(méi) 有 windows 系 統(tǒng) 的 字 體或者字體名字已經(jīng)不是SimSun, 所 以 這 里 報(bào) 了 找 不 到 宋 體(SimSun)的錯(cuò)誤。
ctex 宏包提供了三個(gè)字體選項(xiàng):nofonts、adobefonts 和 winfonts,默認(rèn)使用的是 winfonts。
如果在 tex 源文件中沒(méi)有使用其他選項(xiàng)修改字體配置,則需要操作系統(tǒng)中安裝有中文 Windows 操作系統(tǒng)自帶的四種 TrueType 字體:宋體(simsun)、黑體(simhei)、仿宋體(simfang)、楷體(simkai)。如果使用 adobefonts 選項(xiàng),則需要操作系統(tǒng)中安裝有 Adobe 公司的四款 OpenType 字體:Adobe 宋體、Adobe 黑體、Adobe 仿宋、Adobe 楷體。
eg如下:
思路一:讓cTeX使用 nofonts 選項(xiàng),然后通過(guò) CJK 中文方案將系統(tǒng)自帶的中文字體設(shè)置成中文的默認(rèn)字體。
第一步:通過(guò)命令 fc-list :lang-zh 查看 Ubuntu 系統(tǒng)自帶的中文字體
$ fc-list :lang-zh | sort AR PL UKai CN:style=Book AR PL UKai HK:style=Book AR PL UKai TW MBE:style=Book AR PL UKai TW:style=Book AR PL UMing CN:style=Light AR PL UMing HK:style=Light AR PL UMing TW MBE:style=Light AR PL UMing TW:style=Light ... 文泉驛等寬微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Regular 文泉驛等寬正黑,文泉驛等寬正黑,WenQuanYi Zen Hei Mono:style=Regular 文泉驛點(diǎn)陣正黑,文泉驛點(diǎn)陣正黑,WenQuanYi Zen Hei Sharp:style=Regular 文泉驛微米黑,文泉驛微米黑,WenQuanYi Micro Hei:style=Regular 文泉驛正黑,文泉驛正黑,WenQuanYi Zen Hei:style=Regular
第二步:在文檔開(kāi)頭即可使用如下字體設(shè)置:
/documentclass[nofonts]{ctexart} /setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %設(shè)置中文默認(rèn)字體 /setCJKsansfont{WenQuanYi Zen Hei} %設(shè)置文泉驛正黑字體作為中文無(wú)襯線(xiàn)字體 /setCJKmonofont{WenQuanYi Zen Hei Mono} %設(shè)置文泉驛等寬正黑字體作為中文打字機(jī)字體 /begin{document} 你好,/LaTeX! /end{document}然后即可使用xeLateX編譯。
通過(guò) setCJKmainfont 等命令我們可以使用 texlive 處理中文字符了,但是要在每個(gè)中文文檔都寫(xiě)這么一段命令,確實(shí)是個(gè)煩人的事情。
于是有了思路二。
思路二:通過(guò)將上述設(shè)置字體的這段命令寫(xiě)入到自定義的宏包文件 mylinuxfonts.sty 中,然后在文檔中以命令 /usepackage{mylinuxfonts} 使用這個(gè)自定義宏包即可。
新建mylinuxfonts.sty,內(nèi)容參考如下:
/PRovidesPackage{mylinuxfonts} /setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %設(shè)置中文默認(rèn)字體 /setCJKsansfont{WenQuanYi Zen Hei} %設(shè)置中文無(wú)襯線(xiàn)字體為文泉驛正黑 /setCJKmonofont{WenQuanYi Zen Hei Mono} %設(shè)置中文打字機(jī)(等寬)字體為文泉驛正黑 /endinput然后在文檔中使用如下:
/documentclass[nofonts]{ctexart}/usepackage{mylinuxfonts}/begin{document}你好,/LaTeX!/end{document}texlive 提供一個(gè)變量 TEXMFHOME(默認(rèn)為~/texmf),給用 戶(hù) 存 放 自 己 獨(dú) 立 安 裝 的 宏 包、 字 體 等。 宏 包 文 件 需 要 放 置 到 目 錄TEXMFHOME/tex/latex 或 者 它 的 子 目 錄 下。 我 們 將 mylinuxfonts.sty放到目錄~/texmf/tex/latex 下,然后編譯 foo.tex 文件即可。texlive 另外提供了一個(gè)變量 TEXMFLOCAL(默認(rèn)為 /usr/local/texlive/texmf-local),給系統(tǒng)管理員用來(lái)安裝供整個(gè)系統(tǒng)使用的額外的宏包或者字體。宏包文件需要放到目錄 TEXMFLOCAL/tex/latex 或者它的子目錄下。我們將 mylinuxfonts.sty 文件放到這個(gè)目錄下:
sudo cp mylinuxfonts.sty /usr/local/texlive/texmf-local/tex/latex/local
TEXMFLOCAL 目錄需要一個(gè)保持更新的文件名數(shù)據(jù)庫(kù),否則新增的文件就無(wú)法找到。我們通過(guò)命令 mktexlsr 來(lái)更新它。
原作者提供的優(yōu)化配置:
現(xiàn)在我們的 texlive 已經(jīng)支持中文了,但我們還可以再優(yōu)化一下我們的ctex 配置。
上面提到,ctex 默認(rèn)是使用的字體配置選項(xiàng)是 winfonts,那么我們每個(gè)要使用 ctex 宏包的 tex 文檔中都要設(shè)置 nofonts 選項(xiàng)。
ctex 宏包提供了一個(gè)配置文件 ctexopts.cfg,該文件中的代碼會(huì)在 ctex宏包的開(kāi)頭(選項(xiàng)定義后面)執(zhí)行。我們可以使用此文件設(shè)置 ctex 宏包的默認(rèn)選項(xiàng)。
lienhua34:text$ cd /usr/local/texlive/2015/texmf-dist/tex/latex/ctex/cfglienhua34:cfg$ sudo cp ctexopts.cfg.template ctexopts.cfglienhua34:cfg$ sudo vi ctexopts.cfg
然后輸入一下內(nèi)容
% ctexopts.cfg: set default options/ExecuteOptions{nofonts}/endinput保存,然后運(yùn)行 mktexlsr 命令。ok,此時(shí) ctex 宏包默認(rèn)的字體選項(xiàng)便改為nofonts 了。
新聞熱點(diǎn)
疑難解答
圖片精選