现代控制工程第五版中文pdf_如何从 CTeX 套装切换到现代的 TeX 使用方式

这是一系列长文,面向的读者群是熟练使用了 CTeX 套装的。

本文介绍了如何从 CTeX 套装转而现代的、最新的 Texlive。我拖了两三年,下定决心后,花了两个月才完全迁移成功。

为什么要用最新的 Texlive?

软件升级大家都听说过吧,而 CTeX 套装是 8 年前的东西了,可想而知已经大大落后时代。软件里面有许多错误无法得到更新,网上也没有使用手册了。(只有最新版的使用手册)

一个典型问题是:用 CTeX 套装编译得到的中文 pdf 文件,你如果要从文件里复制文字出来,会出现乱码。所以文件内也就无法用搜索功能。这是历史上“中文处理”的过渡方案,之后已经更新了。而你的 CTeX 套装永远活在了那时候。

中英文的混排中,中英文之间加空格也是一个头疼的事情,XeLaTeX 下已经有宏包可以自动实现了。

TeX/LaTeX/pdfLaTeX/XeLaTeX 等等都是什么?

TeX 是一个语言,LaTeX 是建立在 TeX 上的高级语言。

不严格地说,pdfLaTeX 和 XeLaTeX 是用来把上面的语言变成 pdf 的工具(类似于编译器 compiler)。而 pdfLaTeX 和 XeLaTeX 没有什么关系。

(严格地说,pdfTeX 和 XeTeX 是引擎, pdfLaTeX 和 XeLaTeX 是预先加载了 LaTeX 格式的 pdfTeX 和 XeTeX 引擎。这是因为 LaTeX 太常用了,所以进行了这样的打包)

pdfLaTeX 是古老的 CTeX 套装所用的默认编译器,在 Texlive 下强烈推荐 XeLaTeX 作为编译器。

WinEdt 7 是什么?

WinEdt 7 只是一款编辑器 (editor),我们用编辑器写代码,编辑器会调用编译器进行编译。编辑器里面改来改去,只能改那个 .tex 文件,只有调用了编辑器才能用变成 pdf。

有同学误认为 WinEdt 7 就是 LaTeX,这是完全错误的。

编辑器 (editor)、编译器 (compiler) 是完全不同的两码事情。你完全可以用 notepad 写 .tex 文件,然后命令行环境 (cmd) 中调用编译器完成编译。

Texlive 是什么?

Texlive 可以理解为最新的编译器。所以你完全可以做到用原来的编辑器(如 WinEdt 7),调用新的编译器。但我建议你把编辑器也换新了。

为什么要换新的编辑器?

Texlive 中内置了新的编辑器 TexWorks[1]。强烈建议使用它,而摒弃 CTeX 套装中的 WinEdt 7(配置较麻烦)。另一个推荐的选择是 TeXStudio 和 VSCode(不推荐初学者)。

现代编辑器带来最棒的体验是自动补全和反向查找。

如何安装 Texlive?

cying:最新TeXLive 环境的安装与配置​zhuanlan.zhihu.com
88dbab018f5edb703b9a27d318b6bb5e.png
gfqper:TexLive和Texstudio安装配置​zhuanlan.zhihu.com

假设你已经按照这个教程安装了 Texlive 2020 和 TeXStudio 了。

如何写新的文件?

强烈建议使用最新的模板,过时的模板可能会出现兼容问题。(因为你一下子更新了做了一个历时 8 年的更新,8 年前的一年级学生现在都快上高中了,代码自然会有些变化)

为什么之前的 .tex 文件,如果里面含中文,打开会是乱码?

这涉及到中文的编码格式的问题,20 年前 CTeX 套装刚设计的时候,编码格式默认是 GBK(GB2312/ASCII),而现代的默认编码格式是 UTF-8(对全世界文字的兼容性更强)。

而正是在 2005 年之后 UTF-8 编码格式才大范围普及(在 2020 年 5 月, 94.9% 的网页都是由 UTF-8 编码编写的[2]),所以当年的 CTeX 套装真的是应该扫进垃圾堆了。

编码就是怎么把字符转化为二进制储存进文件的方法。可以参见如下:

若愚:聊一聊编码与乱码​zhuanlan.zhihu.com

怎么解决上一个问题?

b z:解决TeXWorks打开WinEdt的latex文档乱码问题​zhuanlan.zhihu.com
080bd6f205e8fbffc0b83ec00455d458.png

(这一步可以用 Python 脚本批量处理,下一步也是)

旧文件已经保存成 UTF-8 格式了,但是编译编不过

这个需要对你的 tex 文件进行改造。强烈建议直接换个模板!

如果实在不想换模板,而且又有动手精神,可以把

usepackage{CJK}

改为

usepackage{ctex}

然后去掉

begin{CJK*}{song}{GBK}
end{CJK*}

之类的。

还有一个典型的问题是在加载 geometry 等宏包时加载了 pdftex 的选项,改成 xetex 即可。如

usepackage[pdftex]{geometry}

改为

usepackage[xetex]{geometry}

因为在 2020 年用中文,最推荐的编译引擎是 XeLaTeX,所以要把 pdfLaTeX 换成 XeLaTeX。

学习 LaTeX 知识

关注我、我的专栏,还有知乎上许多写 LaTeX 的专栏,勤搜索和学习,你会越用越好的。这有一篇很短的 LaTeX 文档,希望能看看它。

一份其实很短的 LaTeX 入门文档​liam.page 一份(不太)简短的 LaTeX 2E 介绍​mirror.bjtu.edu.cn 一份简短的关于 LaTeX 安装的介绍​github.com

查文档

具体到宏包不会用了,可以打开这个地方的文档,里面有每一个宏包的帮助手册。

2d7fec499a24557ce323beaaf1a3f504.png

a315e281ede9b5288196a6dc706f88db.png

有什么问题可以评论区留言

为了避免新观念太多带来混淆,我的表述并不严格。本来打算写一个月的,后来转念一想这些问题会不会前人都写过呢?一搜果然都有。

实际上,对 LaTeX 感兴趣,应该读一读刘海洋老师的《LaTeX 入门》。如果对更加底层的 TeX 语言感兴趣,可以读一读最经典的 The TeXbook,是 TeX 语言的创作者写的。

我很感谢第一个带我入坑 CTeX 套装的人,要不是他介绍的这么简单,我也不会这么快就入门。但如果不是他带我入了 CTeX 套装的大坑,我也不需要自学 Python 对上百个 .tex 文件进行处理。当时看不懂的 TeX 代码,如今也终于略知一二。以前不会用的 WinEdt 功能,现在学的也挺好。命运中出现的所有礼物,早已在暗中标出了价格。

如果大家遇到新的问题,我会再写这个系列的第二篇文章。

参考

  1. ^仅限 Windows 用户
  2. ^这里 UTF-8 包含了纯 ASCII 码。 https://w3techs.com/technologies/cross/character_encoding/ranking
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值