LaTeX 入门学习4

简介: 实现中英文混排

实现中英文混排

关于 LaTeX 的中文支持,首先要说的是:在现在,一切教你使用 CJK 宏包的模板、人、网页、书,都是糟糕的、有害的、恼人的、邪恶的和应该摒弃的。

成功编译输出第一个文档之后,中国 TeX 用户面临的第二个普遍问题大概就是「实现中英文混排」了。众所周知,TeX 系统是高教授开发的。在 TeX 开发当初并没有考虑到亚洲文字的问题。因此早期的 TeX 系统并不能直接支持中文,必须要用其他工具先处理一下(或者是一些宏包之类的)。但是现在,XeTeX 原生支持 Unicode,并且可以方便地调用系统字体。可以说解决了困扰中国 TeX 使用者多年的大问题。至此,我们只需要使用几个简单的宏包,就能完成中文支持了。

所谓宏包,就是一系列控制序列的合集。这些控制序列太常用,以至于人们会觉得每次将他们写在导言区太过繁琐,于是将他们打包放在同一个文件中,成为所谓的宏包(台湾方面称之为「巨集套件」)。\usepackage{} 可以用来调用宏包。

除去中文支持,中文的版式处理和标点禁则也是不小的挑战。好在由吴凌云和江疆牵头,现在主要由刘海洋、李清和我维护的 CTeX 宏集一次性解决了这些问题。CTeX 宏集的优势在于,它能适配于多种编译方式;在内部处理好了中文和中文版式的支持,隐藏了这些细节;并且,提供了不少中文用户需要的功能接口。我们来看如何使用 CTeX 宏集来处理中英文混排的文档。

请注意,CTeX 宏集和 CTeX 套装是两个不同的东西。CTeX 宏集本质是 LaTeX 宏的集合,包含若干文档类(.cls 文件)和宏包(.sty 文件)。CTeX 套装是一个过时的 TeX 系统。

新版 CTeX 宏集的默认能够自动检测用户的操作系统,并为之配置合适的字库。对于 Windows 用户、Mac OS X 用户和 Linux 用户,都无需做任何配置,就能使用 CTeX 宏集来排版中文。[2015-05-20 更新]

在 TeXworks 编辑框中输入以下内容,以 UTF-8 编码保存,使用 XeLaTeX 编译

EC-mix.tex

1
2
3
4
\documentclass[UTF8]{ctexart}
\begin{document}
你好,world!
\end{document}

相较于之前的例子,这份代码只有细微的差异:

  1. 文档类从 article 变为 ctexart
  2. 增加了文档类选项 UTF8

你也可以直接使用 xeCJK 宏包来支持中英文混排。不过大多数情况是不推荐这样做的。因此,如果你能抑制住你小小的好奇心,可以暂时略过这一段,回头再看不迟。:)

在 TeXworks 编辑框中输入以下内容,保存,使用 XeLaTeX 编译:

xeCJK-demo.tex

1
2
3
4
5
6
\documentclass{article}
\usepackage{xeCJK}%调用 xeCJK 宏包
\setCJKmainfont{SimSun}%设置 CJK 主字体为 SimSun (宋体)
\begin{document}
你好,world!
\end{document}
相关文章
DataGrip之一个赏心悦目的SQL格式化模板,快用起来吧
DataGrip之一个赏心悦目的SQL格式化模板,快用起来吧
DataGrip之一个赏心悦目的SQL格式化模板,快用起来吧
|
分布式计算 安全 大数据
企查查支撑8000万+企业数据的大数据平台技术选型与实现
企查查终端所有企业工商信息均实时同步更新,汇集了目前国内市场中的80个产业链,8000个行业,6000个市场以及8000多万家企业数据。
8327 0
|
小程序
微信小程序wx.navigateTo从子页面跳回父页面,页面如何刷新
要理解微信小程序的页面刷新问题,首先需要理解页面的生命周期,所以以下两个页面必须多看几遍页面生命周期页面路由 关于页面生命周期,重点在于理解onLoad,onShow. 从以上的第一个链接文档可以看到,页面create后,依次执行onLoad,onShow,onReady,但onLoad和onR.
3906 0
|
11月前
|
存储 人工智能 大数据
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
11月前
|
自然语言处理 监控 Java
ES学习知识体系梳理与实战应用
【11月更文挑战第13天】Elasticsearch(简称ES)是一个开源的、高扩展的分布式全文搜索引擎,广泛应用于日志分析、实时监控、全文搜索等场景。作为架构师,掌握ES的学习知识体系和实战应用至关重要。本文将从ES的背景、概念、工具、知识点、部署、实战、Java开发、分布式节点、底层逻辑以及分词分类等方面进行详细梳理和介绍,帮助初学者逐步掌握ES技术。
199 1
|
JSON Java API
jjwt使用说明-笔记
这篇文章介绍了如何使用jjwt库在Java中生成和验证JSON Web Tokens (JWT)。文章提供了在Maven项目中添加jjwt依赖的步骤,生成token的方法,以及如何验证token的示例代码。此外,还包含了一些关于token标准载荷和自定义载荷的说明,以及如何处理token验证过程中可能遇到的异常。
jjwt使用说明-笔记
|
12月前
|
人工智能 自然语言处理 安全
DALL·E 介绍
【10月更文挑战第9天】
1395 2
|
Ubuntu PHP
ubuntu php libzip安装 ./configure报错 checking for libzip... not found configure
ubuntu php libzip安装 ./configure报错 checking for libzip... not found configure
268 1
|
人工智能 自然语言处理 算法
魔塔社区体验AI开发
魔塔社区做AI开发的初体验
32899 0
魔塔社区体验AI开发
LXJ
|
存储 Windows
无影云电脑评测
无影云电脑评测
LXJ
1139 0
无影云电脑评测