上海上港vs北京国安:LaTeX技巧909:在 LaTeX 中輸出多國語言

上海上港高清海报 www.wqytv.com.cn 在 LaTeX 中輸出英文之外的其他字符總是不那么自然,需要一些折騰。例如讓 LaTeX 輸出中文就走過了天元、CCT、CJK、xeCJK 這些路子。 以現在(2017-09)來說,在 LaTeX 中混排中英雙語已經不是什么難事,只需要使用 xeCJK 宏包或者 CTeX 宏集即可。但若是想要在一篇文檔里排版多語言,則很多人就不知道怎么辦了。

需要解決的問題

在 LaTeX 中輸入多國語言,主要來說,現代的方案就是要解決三件事情:

  • 使用一個包含文檔所需所有字符的編碼方案;

  • 使 TeX 支持選定的編碼方案;

  • 選取合適的字體。

對于編碼來說,使用 Unicode 字符集對應的編碼方案自然是最簡單的。當然,語言本國人自己使用的話,也可能會使用當地的編碼(例如俄羅斯人的話可能會使用 CP1251)。若是要同時使用多國語言,則最好還是使用 UTF-8 編碼。 對于 TeX 來說,支持 UTF-8 編碼的文稿,又分成兩類情況。對于 XeLaTeX/LuaLaTeX 來說,它們原生就支持,因此不需要做特別的處理。對于不直接支持 UTF-8 編碼的排版命令來說,就需要使用 \usepackage[utf8]{inputenc} 顯式地指明引擎吃進去的文稿是 UTF-8 編碼的。

以俄語為例

使用 XeLaTeX/LuaLaTeX 實現英文、俄文混排就很簡單了。我們只需要使用 fontspec 宏包提供的接口,選定同時包含英文和俄文字符的字體即可。這里我們選用 CMU Serif;它包含在 TeX Live 當中。

% !TeX encoding = UTF-8
\documentclass{article}
\usepackage{fontspec}
\setmainfont{CMU Serif}

\begin{document}

\section{Русский язык}
Русский язык

\end{document}

若不想使用 XeLaTeX/LuaLaTeX,也可以這樣做。

% !TeX program = pdfLaTeX
% !TeX encoding = UTF-8
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}

\begin{document}

\section{Русский язык}
Русский язык

\end{document}

多國語言怎么辦?

其實,對于大多數文字來說,多國語言混排和英文俄文雙語混排沒什么差別。無非就是老三樣:

  • UTF-8 編碼保存文稿;

  • 使 TeX 引擎支持 UTF-8 編碼;

  • 選擇合適的字體。

例如,我們可以實現英文、希伯來文(需要字體支持)、希臘文、拉丁文、西班牙文、俄文、中文的混排。

CMU Serif 不包括希伯來文字母,因此你可能需要下載并安裝 LinLibertine 字體。
\documentclass{article}
\usepackage{hyperref}
\usepackage{fontspec}
\setmainfont{CMU Serif}
% \setmainfont{LinLibertine}
\usepackage{xeCJK}

\begin{document}

\section*{The Tower of Babel, Genesis 11:7}

\subsection*{English}
Come, let us go down and confuse their language so they will not understand each other.

% \subsection*{Hebrew}
% ?????? ????????? ?????????? ????? ????????? ??????? ???? ??????????? ?????? ??????? ?????????%

\subsection*{Greek}
δε?τε κα? καταβ?ντε? συγχ?ωμεν ?κε? α?τ?ν τ?ν γλ?σσαν, ?να μ? ?κο?σωσιν ?καστο? τ?ν φων?ν το? πλησ?ον.

\subsection*{Latin}
venite igitur descendamus et confundamus ibi linguam eorum ut non audiat unusquisque vocem proximi sui

\subsection*{Spanish}
Será mejor que bajemos a confundir su idioma, para que ya no se entiendan entre ellos mismos.

\subsection*{Russian}
сойдем же и смешаем там язык их, так чтобы один не понимал речи другого.

\subsection*{Chinese (Simplified)}
來,我們下去,在那里混亂他們的語言,使他們聽不懂對方的話。%

\bigskip
\small
Texts from \url{https://www.biblegateway.com}.
Greek Septuagint text from \url{https://www.academic-bible.com/en/online-bibles/septuagint-lxx/read-the-bible-text/}.
\end{document}

選自:https://liam0205.me/2017/09/17/LaTeX-multi-lingual/

分享到:
未經允許不得轉載:LaTeX技巧909:在 LaTeX 中輸出多國語言
已有 條意見

    最新文章

    加載中...
      本站提供專業LaTeX排版、咨詢、定制服務,請點擊下圖咨詢詳情


      全國首個精品的LaTeX視頻教程,大牛帶著你入門,讓LaTeX學習不再糾結,請點擊下圖咨詢詳情

      熱門評論

        聯系我們

        交流QQ群:91940767
        本站QQ號:343083553
        郵箱聯系[email protected]
        淘寶店鋪https://shop240512713.taobao.com/ 提供排版,模板定制,培訓,圖片處理,視頻教程等LaTeX服務。

        關注我們微信公眾號

        如果您投稿或者希望加入我們團隊,請發送您的簡歷到[email protected]。
        广东11选5走势图 侯耀文赚钱 中国竞彩网比分直播 广西11选5走势 二分彩骗局 新浪棋牌中心官网 二分彩开奖网 杰克棋牌游戏平台 快乐飞艇是官方彩吗 开个收垃圾店赚钱吗 河南十一选五开奖走势图 仅仿服装款式赚钱吗 棋牌游戏推广模式 黑龙江十一选五基本走势图表 海南飞鱼开奖号码 最好的股票分析软件排行榜