这篇指南说明怎样在 Mac 上用 XeLaTeX 和 ctex 写中文论文:安装 TeX、写一个能直接编译的最小文档、按 GB/T 7714 排参考文献,以及遇到中文空白或字体问题时怎么查。文中的文件都可以复制使用,并且编译过。
第 1 步:安装 TeX
MacTeX 是完整的 TeX Live,已经包含 ctex、xeCJK 和中文参考文献样式,体积有几个 GB。TinyTeX 小得多,装在你的用户目录(~/Library/TinyTeX)里,缺什么用 tlmgr 补什么。ModernTex 在编译时找不到 TeX,会提供一键安装 TinyTeX。
用 TinyTeX 时,在终端里装下面这些包。如果找不到 tlmgr,用完整路径 ~/Library/TinyTeX/bin/universal-darwin/tlmgr。
tlmgr install ctex xecjk fandol biblatex biber biblatex-gb7714-2015 gbt7714
下载慢的话,可以先把仓库换成国内的镜像,例如清华的 TUNA 镜像:
tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
第 2 步:最小的中文文档
把下面的内容存成 main.tex(UTF-8 文本):
% !TEX program = xelatex
\documentclass[a4paper,zihao=-4]{ctexart}
\usepackage{amsmath}
\usepackage[backend=biber,style=gb7714-2015]{biblatex}
\addbibresource{ref.bib}
\title{在 Mac 上用 XeLaTeX 写中文论文}
\author{张三}
\date{\today}
\begin{document}
\maketitle
\begin{abstract}
本文演示 ctex 与 GB/T 7714 参考文献。
\end{abstract}
\section{引言}
中文排版使用 XeLaTeX 和 ctex。引用文献\cite{zhang2020,smith2021}。公式 $a^2+b^2=c^2$。
\printbibliography
\end{document}
要点:
第一行
% !TEX program = xelatex告诉 ModernTex 这类编辑器用 XeLaTeX 编译。终端里的latexmk不读这一行,要写成latexmk -xelatex main.tex。ctexart是 ctex 的文章类。写学位论文用ctexrep或ctexbook。它会设好中文的章节标题、日期(“2026 年 10 月 29 日”)和段落缩进。用 XeLaTeX 或 LuaLaTeX 加 ctex,不要用 pdfLaTeX 加 CJK。后者是旧做法,设置更麻烦。
第 3 步:字体
ctex 在 macOS 上会自动选系统自带的中文字体,上面的文档没有额外设置字体,也没有缺字警告。想明确指定,用 fontset 选项:
\documentclass[a4paper,zihao=-4,fontset=mac]{ctexart}
fontset=mac 用 macOS 的字体。fontset=fandol 用随 TeX Live 提供的 Fandol 字体,换一台电脑排出来的版式也一样,适合多人协作。写成 fontset=none 则不设字体,中文会变成空白,编译日志里出现 Missing character,我试的时候有 69 条。
第 4 步:GB/T 7714 参考文献
上面的 main.tex 用 biblatex-gb7714-2015 和 biber。文献库 ref.bib 放在同一个文件夹,中文和英文条目都写进去,用 langid 标明语言:
@article{zhang2020,
author = {张三 and 李四},
title = {深度学习在文本分类中的应用},
journal = {计算机学报},
date = {2020},
volume = {43},
number = {5},
pages = {1--20},
langid = {chinese},
}
@article{smith2021,
author = {Smith, John and Doe, Jane},
title = {Deep learning for text classification},
journal = {Journal of Examples},
date = {2021},
volume = {10},
number = {2},
pages = {100--120},
langid = {english},
}
编译后得到的是这样的顺序编码制列表:
[1] 张三, 李四. 深度学习在文本分类中的应用[J]. 计算机学报, 2020, 43(5): 1-20.
[2] SMITH J, DOE J. Deep learning for text classification[J]. Journal of Examples, 2021, 10(2): 100-120.
你更习惯 BibTeX 的话,用 gbt7714 宏包:
% !TEX program = xelatex
\documentclass[a4paper]{ctexart}
\usepackage{gbt7714}
\bibliographystyle{gbt7714-numeric}
\begin{document}
\section{引言}
引用文献\cite{zhang2020,smith2021}。
\bibliography{ref}
\end{document}
这个文件的编译顺序是 xelatex、bibtex、xelatex、xelatex,latexmk -xelatex 会替你完成。gbt7714 带有 2015 版和 2025 版两套样式(比如 gbt7714-2015-numeric 和 gbt7714-2025-numeric),以你学校的要求为准。
第 5 步:编译
latexmk -xelatex main.tex
在 ModernTex 里,打开这个文件夹,在编译配置里选 biblatex(biber),然后编译。Full 编译在 XeLaTeX 和 LuaLaTeX 下也会运行 biber。
学校的论文模板
清华的 thuthesis 这类学校模板,把整个模板文件夹作为项目打开,按模板自带的说明选引擎和编译顺序。类文件放在 Styles 文件夹里的模板,ModernTex 也能编译。我没有测试过具体某一所学校的模板,所以这里不替它们担保,只保证上面 main.tex 和 ref.bib 的写法。
我测试了什么
2026 年 10 月 29 日,在 macOS 上的 TinyTeX(TeX Live 2026)里,我装好上面的包,把 main.tex 和 ref.bib 用 latexmk -xelatex 编译成 PDF,参考文献按 GB/T 7714 排出,没有缺字。fontset=mac 和 fontset=fandol 也都能编译。gbt7714 的例子用 xelatex 和 bibtex 编译通过。我没有在 ModernTex 里运行这些文件。
常见问题
中文显示成空白,编译日志里有 Missing character,怎么办?
多半是没有给中文设字体。用 XeLaTeX 或 LuaLaTeX 编译,文档类用 ctexart、ctexrep 或 ctexbook,让 ctex 自动选字体,或者写 fontset=mac、fontset=fandol。不要写 fontset=none。
可以用 pdfLaTeX 写中文吗?
可以,但那是旧做法,要加载 CJK 并处理编码,设置比 XeLaTeX 加 ctex 麻烦。新写的论文建议直接用 XeLaTeX 或 LuaLaTeX。
参考文献是空的,或者只显示编号,怎么办?
biblatex 需要 biber,而且要多编译几遍。用 latexmk -xelatex main.tex,或在 ModernTex 里选 biblatex(biber)后用 Full 编译。第一遍之后参考文献还是空的,这是正常的。
tlmgr 下载很慢,怎么办?
换一个国内的镜像,比如 tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet。
GB/T 7714 有 2015 和 2025 两个版本,用哪个?
以你的学校或期刊的要求为准。biblatex-gb7714-2015 对应 2015 版;gbt7714 宏包同时提供 2015 版和 2025 版的 BibTeX 样式。
用 ModernTex 编译
ModernTex 是 Mac 上的 LaTeX 编辑器,有跟随源码的 PDF 预览、用日常语言解释的编译错误和投稿前检查。它使用你本机的 TeX,所以上面的步骤在其中同样适用。免费试用 7 天,之后一次性 19.99 美元。应用界面目前是英文。