中文文档
本章介绍如何在 LaTeX 中处理中文文档。
中文支持方案
ctex 宏包
最常用的中文支持方案:
\documentclass{article}
\usepackage{ctex}
\begin{document}
你好,世界!
\end{document}
ctex 文档类
直接使用中文文档类:
\documentclass{ctexart} % 中文文章
\documentclass{ctexrep} % 中文报告
\documentclass{ctexbook} % 中文书籍
\documentclass{ctexbeamer} % 中文演示文稿
编译器选择
XeLaTeX(推荐)
xelatex document.tex
优点:
- 原生支持 Unicode
- 支持系统字体
- 编译速度快
LuaLaTeX
lualatex document.tex
优点:
- 功能强大
- 可编程
- 支持现代字体技术
pdfLaTeX
需要 CJK 宏包:
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{gbsn}
你好,世界!
\end{CJK}
\end{document}
字体设置
ctex 字体设置
\documentclass[fontset=none]{ctexart}
\setCJKmainfont{SimSun}
\setCJKsansfont{SimHei}
\setCJKmonofont{FangSong}
字体集选项
\documentclass[fontset=windows]{ctexart} % Windows 字体
\documentclass[fontset=mac]{ctexart} % macOS 字体
\documentclass[fontset=ubuntu]{ctexart} % Ubuntu 字体
\documentclass[fontset=fandol]{ctexart} % 开源字体
\documentclass[fontset=none]{ctexart} % 自定义字体
字体命令
\songti 宋体
\heiti 黑体
\kaishu 楷书
\fangsong 仿宋
字号
\zihao{0} 初号
\zihao{1} 一号
\zihao{2} 二号
\zihao{3} 三号
\zihao{4} 四号
\zihao{-4} 小四
\zihao{5} 五号
标点处理
标点挤压
\usepackage[UTF8, punct=true]{ctex}
标点样式
\punctstyle{quanjiao} % 全角
\punctstyle{banjiao} % 半角
\punctstyle{kaiming} % 开明
\punctstyle{CCT} % CCT
\punctstyle{hangmobanjiao} % 行末半角
段落格式
首行缩进
\setlength{\parindent}{2em} % 两字符缩进
\ctexset{indent=2em} % ctex 方式
段落间距
\setlength{\parskip}{0.5em}
\ctexset{parskip=0.5em}
行距
\linespread{1.5} % 1.5 倍行距
\ctexset{linespread=1.5}
章节标题
标题格式
\ctexset{
section = {
format = \Large\bfseries,
name = {第,节},
number = \chinese{section},
aftername = \quad,
beforeskip = 1ex,
afterskip = 1ex
}
}
标题编号
\ctexset{
section = {
number = \chinese{section} % 中文数字
}
}
% 或使用阿拉伯数字
\ctexset{
section = {
number = \arabic{section}
}
}
目录
目录标题
\ctexset{
contentsname = {目录}
}
目录格式
\ctexset{
toc = {
title = {目录},
format = \Large\bfseries
}
}
页眉页脚
页眉格式
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{\leftmark}
\fancyhead[R]{\thepage}
\fancyfoot[C]{}
页码格式
\pagenumbering{arabic} % 阿拉伯数字
\pagenumbering{roman} % 罗马数字
\pagenumbering{chinese} % 中文数字(ctex 提供)
中文日期
\ctexset{today=small} % 小写中文日期
\ctexset{today=big} % 大写中文日期
\ctexset{today=old} % 传统格式
\today % 显示日期
中文编号
中文数字
\chinese{1} % 一
\chinese{10} % 十
\chinese{100} % 一百
天干地支
\tiangan{1} % 甲
\dizhi{1} % 子
中文引号
"双引号"
'单引号'
或使用:
``双引号''
`单引号'
中文破折号
中文破折号——使用两个 em dash
中文省略号
中文省略号……
完整示例
中文文章
\documentclass[UTF8, a4paper, 12pt]{ctexart}
\title{中文文章标题}
\author{作者姓名}
\date{\today}
\begin{document}
\maketitle
\begin{abstract}
这是摘要内容。
\end{abstract}
\tableofcontents
\section{引言}
这是引言部分。
\subsection{研究背景}
这是研究背景。
\section{研究方法}
这是研究方法。
\section{结论}
这是结论。
\end{document}
中文书籍
\documentclass[UTF8, a4paper, 12pt]{ctexbook}
\title{中文书籍标题}
\author{作者姓名}
\date{\today}
\begin{document}
\frontmatter
\maketitle
\tableofcontents
\mainmatter
\chapter{绪论}
\section{研究背景}
正文内容。
\chapter{研究方法}
正文内容。
\chapter{结论}
正文内容。
\backmatter
\appendix
\chapter{附录}
附录内容。
\end{document}
中文演示文稿
\documentclass[UTF8]{ctexbeamer}
\title{中文演示文稿}
\author{作者}
\date{\today}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{目录}
\tableofcontents
\end{frame}
\section{第一部分}
\begin{frame}{第一页标题}
内容要点:
\begin{itemize}
\item 要点一
\item 要点二
\end{itemize}
\end{frame}
\section{第二部分}
\begin{frame}{第二页标题}
更多内容。
\end{frame}
\end{document}
常见问题
字体找不到
% 检查可用字体
% 在命令行运行:
% fc-list :lang=zh
编译错误
确保使用 XeLaTeX 或 LuaLaTeX 编译:
xelatex document.tex
标点显示问题
\usepackage[UTF8, punct=true]{ctex}
小结
本章介绍了 LaTeX 中文文档:
- 中文支持:ctex 宏包和文档类
- 编译器:XeLaTeX 和 LuaLaTeX
- 字体设置:字体集和自定义字体
- 标点处理:挤压和样式
- 段落格式:缩进、行距
- 章节标题:格式和编号
- 中文编号:数字、天干地支
掌握中文文档处理是中文 LaTeX 用户的基本技能。