当前位置: 首页 > news >正文

TeX 的 ctex 宏包的基本用法

ctex 宏包是为处理中文 LaTeX 文档而设计的宏包,它极大地简化了中文排版所需的各种复杂配置。使用 ctex,你可以告别繁琐的字体和编码设置,轻松地排版出高质量的中文文档。

以下是 ctex 宏包的基本用法和一些常用功能。


1. 文档类型:ctexartctexrepctexbook

ctex 宏包提供了自己的文档类,这些文档类是标准 LaTeX 文档类(articlereportbook)的中文增强版。使用这些文档类是使用 ctex 最简单、最推荐的方式。

  • ctexart: 对应 article,用于短篇幅论文或文章。
  • ctexrep: 对应 report,用于较长的报告或学位论文。
  • ctexbook: 对应 book,用于书籍排版。

基本用法:

只需将文档的类型声明从 \documentclass{article} 改为 \documentclass{ctexart}

\documentclass[UTF8]{ctexart} % 建议始终加上 UTF8 选项
% ... 文档内容 ...

2. 作为宏包使用:\usepackage{ctex}

如果你需要在一个已有的文档中使用 ctex 的功能(例如,在自定义的文档类中),你也可以将它作为一个宏包来加载。

基本用法:

在文档导言区(\documentclass\begin{document} 之间)加入以下命令:

\documentclass{article}
\usepackage[UTF8]{ctex} % 推荐使用 XeLaTeX,并加上 UTF8 选项\begin{document}
% ... 文档内容 ...
\end{document}

3. ctex 的核心功能

a. 中文支持

这是 ctex 最基本也是最重要的功能。它自动处理中文编码字体选择字号大小,让你能够直接在文档中输入中文而无需额外配置。

示例:

\section{你好,世界!}
这是一个使用 ctex 宏包的中文文档。
你好,中文排版!

b. 自动调整中西文混排间距

在中文和英文或数字混排时,ctex 会自动在它们之间插入一个微小的间距,以提高可读性,这符合中文排版的习惯。

示例:

我们可以轻松地在中文中插入 English Words,数字 12345,以及数学公式 $E=mc^2$。

c. 自动设置字体

ctex 宏包会根据你的操作系统自动选择合适的字体。在 Windows 上,它可能会默认选择“宋体”、“黑体”等。如果你想手动指定字体,可以使用 \setmainfont 命令(需使用 XeLaTeX 编译器)。

示例:

\documentclass[UTF8]{ctexart}
\usepackage{fontspec} % XeLaTeX 专用字体宏包\setmainfont{思源宋体} % 设置正文字体为思源宋体
\setsansfont{思源黑体} % 设置无衬线字体为思源黑体
\setmonofont{思源等宽} % 设置等宽字体为思源等宽\begin{document}这是宋体。{\sffamily 这是黑体。} {\ttfamily 这是等宽字体。}
\end{document}

d. 中文化命令

ctex 宏包将一些常用的 LaTeX 命令进行了中文化,让文档更符合中文习惯。

功能 LaTeX 原生命令 ctex 中文命令
\chapter{...} \chapter{...}(中文标题)
\section{...} \section{...}(中文标题)
目录 \tableofcontents \tableofcontents(标题自动变为“目录”)
摘要 \begin{abstract}...\end{abstract} \begin{abstract}...\end{abstract}(标题自动变为“摘要”)

4. 编译方法

使用 ctex 宏包的文档,强烈推荐使用 XeLaTeX 编译器进行编译。因为 XeLaTeX 原生支持 UTF-8 编码和系统字体,这与 ctex 的设计理念完美契合。

你可以使用 pdflatex 编译器,但在处理字体和编码上可能会遇到一些问题。

总结,如果你需要编写中文 LaTeX 文档,ctex 宏包是不可或缺的。它通过自动化的配置本地化的命令,让你能够专注于文档内容,而不是繁琐的技术细节。

http://www.agseo.cn/news/123/

相关文章:

  • 原子操作并不能保证数值的准确与一致性
  • Linux 进程管理之软硬限制以及企业应用实践
  • mybatis-plus引入
  • 79、制作表头不能用合并后居中
  • 智能血压计芯片解决方案AI版
  • 408 Request Timeout:请求超时,服务器等待客户端发送请求的时间过长。
  • 01bfs 对 dij最短路的优化,以及一些易错点
  • MySQL约束
  • 数据结构与算法-21.堆-排序
  • Avalonia 学习笔记01. Images Buttons(图片与按钮) (转载)
  • 【触想智能】工控一体机和PLC一体机的区别你知道吗?
  • JDK 24.0.1 下载安装教程与环境配置教程(Windows10/11超详细图文安装步骤)
  • XeLaTeX 介绍
  • PTA
  • 学习笔记-安全概述
  • Adobe Animate CC2018安装包下载与安装教程
  • AE苹果手机iPhone 17展示动画片头模板 App Promo Phone 17 Pro
  • 完整教程:以数据与自动化驱动实验室变革:智能化管理整体规划
  • Windows11新系统激活设置PIN码步骤转圈
  • 82、制作座位表
  • 工业硅2511
  • 人工智能时代的合规性:为什么强大的 CI/CD 基础很重要
  • 如何优雅地清理Hugging Face缓存到本地的模型文件(2025最新版)
  • Linux 进程上下文切换详解
  • 第十天 C#学习事件 021
  • 事半功倍是蠢蛋52 使用docker-compose.override.yml
  • Elasticsearch
  • MySQL单表查询DQL
  • PyQt5 之QMenu菜单栏
  • [TJOI2015] 概率论 题解