使用LaTeX排版中文文档¶
默认情况下,pdflatex
是无法识别unicode字符的,而xelatex
可以识别unicode字符。所以我推荐使用xelatex
编译器来编译含有中文字符(当然也包括其他unicode字符,例如日文、韩文等)的LaTeX文档。
不过,虽然xelatex
可以识别unicode字符,但默认情况下任然没法编译中文文档。因为它使用的默认字体没有定义中文的字形。
例如:
unicode.tex
\documentclass{article}
\begin{document}
This is English. 这是中文。これは日本語。이것은 한국어입니다。
\end{document}
如果你直接编译会引发错误:
$ xelatex unicode.tex
This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023)
...
Missing character: There is no 中 (U+4E2D) in font [lmroman17-regular]:mapping=tex-text;!
...
使用中文字体¶
解决方法很简单,换个字体不就行了。
unicode.tex
我们引入了\documentclass{article}
\usepackage{fontspec}
\setmainfont{PingFang SC}
\begin{document}
This is English. 这是中文。これは日本語。이것은 한국어입니다。
\end{document}
fontspec
宏包,然后使用setmainfont
命令把主字体改成了苹方字体。就可以正常渲染中文和日文啦: 看来这个字体下韩文还是不行,但我不在乎韩文,我也懒得试其他字体了。
使用中文模版¶
我们还可以使用ctex提供的中文模版:ctexart
、ctexrep
、ctexbook
、ctexbeamer
等。
我们的例子可以改成:
unicode.tex
\documentclass{ctexart}
\begin{document}
This is English. 这是中文。これは日本語。이것은 한국어입니다。
\end{document}
这样就可以使用xelatex
直接编译了(注意,这个模版的页码在右上角!):
韩文还是炸裂了。
使用ctex
宏包¶
如果你不方便更改模版(你想投稿Science,必须它提供的模版),还可以把ctex
作为宏包引入:
unicode.tex
\documentclass{article}
\usepackage{ctex}
\begin{document}
This is English. 这是中文。これは日本語。이것은 한국어입니다。
\end{document}
当然,你也可以用其他的包,例如xeCJK
unicode.tex
\documentclass{article}
\usepackage{xeCJK}
\begin{document}
This is English. 这是中文。これは日本語。이것은 한국어입니다。
\end{document}
本质上都是换了字体。
最后更新: 2024-05-29 21:23:23
创建日期: 2024-05-29 21:23:23
创建日期: 2024-05-29 21:23:23