再来说说 LaTeX
在我的上一篇随笔中,我提到了 Markdown、LaTeX 和 MathJax。这几个东西对目前的网络技术文章的写作、展示都有深远的影响。在上一篇中,我还给出了一份 LaTeX 语法的学习资料。在这一篇里,我想再来谈谈 LaTeX。
在很多人心中,LaTeX 是一个很专业的排版系统,同时也是一个很复杂的系统。说到专业,确实很多科技论文都是用 LaTeX 写作,而且很多知名的杂志社只接受 LaTeX 格式的投稿,而且使用 LaTeX 排版得到的效果那是超级赞,特别是对科技论文中充斥的数学公式而言。说到复杂,不仅是因为 LaTeX 排版语言命令繁多,更因为它数之不尽的宏包,学习成本真的是相当相当相当的高。
对于一套 LaTeX 排版系统,它究竟包含哪些东西呢?我认为它主要可以分成这样几个部分:
- 一个排版引擎,TeX 或 pdfTeX 或 XeTeX;
- 一系列的字体;
- 一系列的宏包;
- 一些工具,比如用来查看各种排版引擎输出的排版结果,或者在 dvi、ps、pdf 等格式之间的转换。
而对于 LaTeX 排版系统的复杂性,我认为主要是由于历史原因引起的,理由如下:
- 最早的由 Knuth 教授写的 TeX 引擎不支持 UTF-8 编码的输入文件,所以要让它支持中文实在是太难了;
- 最早的 TeX 系统自带一套字体,要扩展它就得扩展相应领域的字体,比如 LaTeX 自带丰富的数学字体,要把字体安装到 TeX 系统中是一件非常复杂的事情;
- 大量的第三方宏包,安装和学习都非常困难;
- 都什么年代了,谁还用 dvi 格式和 ps 格式啊,用 pdf 多方便啊。
对于这些历史原因引起的复杂性,现在早就解决了,只是很多书籍没有写清楚而已。我认为现在用 LaTeX 其实很方便的,理由如下:
- Knuth 教授的 Tex 引擎用来瞻仰即可,实际工作中使用 XeTeX 引擎,完美支持 Unicode 字符集和 UTF-8 编码,中文再也不是问题;
- 字体神马的,Knuth 教授的 METAFONT 早过时了,现在谁还不用 TrueType 啊?好的字体当然少不了像 Microsoft、Adobe、Apple 这些既有钱又有品味的公司出品了;
- XeTeX 引擎可以直接使用操作系统中安装的字体,再也不用考虑把字体安装到 TeX 系统中了;
- XeTeX 引擎直接输出 pdf 格式的文件;
- 排版也可以有 IDE 工具,比如 TeXWorks;
- 至于宏包太多这个问题,我们可以用现成的发行版嘛,比如 texlive 套装。
下面开始实战。我是在 Ubuntu 系统下使用 texlive,为了省事,我直接安装了 texlive-full,使用如下命令:
sudo apt-get install texlive-full
然后,再安装一个 TeXWorks,命令如下:
sudo apt-get install texworks
下面是 TexWorks 的工作界面,排版引擎一定要选择 XeLaTex 哦。左边是文档编辑,右边是预览效果:
第一次运行是不可能成功的,因为还要像下面这样设置一下字体。
如果要想顺利地进行中文排版,必须得借用一点中文字体。中文排版所用到的字体一般有6种,分别是:宋体、楷体、黑体、仿宋体、隶书和幼圆。所以我从我的 Win7 系统下将这几个字体拷贝到 Ubuntu 中,把它们扔到主目录下的 .fonts 中即可。(隶书和幼圆要安装了 Office 才有。)如下图:
当然,如果不想完全达到 Windows 中的效果,也是可以不借用它的字体的。在 Linux 中,宋体、黑体和楷体是不缺的,其它字体就欠奉了。如果不借用 Windows 中的字体,则宋体可由 AR PL UMing 代替,楷体可由 AR PL UKai 代替,黑体可由 Droid Sans Fallback 代替,如下图:
然后,修改 /usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def 中的字体名称和上图中 fc-list 输出的字体名称一一对应,如下图:
看到上面的路径是不是觉得它太长了?太难找了?的确如此,texlive 的路径就是这么复杂。我第一次是根据错误信息找到的这个文件。
texlive-full 实在是太大了,我安装的时候几乎花了一夜的时间去下载。对于这么复杂的系统,它的各种配置文件啊、环境变量啊,都放在哪里呢?使用tlmgr conf
命令即可查看,如下图:
对于写写中文文档,使用 ctex 宏包就足够了。并不是很复杂。LaTeX 还有一些更加复杂的功能,比如制作幻灯片啊、绘图啊什么的,都有相应的宏包可以使用,而且安装 texlive-full 的时候,都安装了非常详细的帮助文档,只需要打开/usr/share/texlive/doc.html
这个文件,就可以看到所有宏包和帮助文档的列表,我之前分享的《一份不太短的LaTeX介绍》里面有,经典的《Tex by Topic》里面也有,如下图:
看到这个一公里长的帮助文档列表,你有什么感想呢?
(京山游侠于2015-01-06发布于博客园,转载请注明出处。)
最新文章
- 基于Server-Sent Event的简单在线聊天室
- Windows安装MySQL5.7.17
- js == 判断
- spring常用jar包总结(转载)
- Django1.9 Python3.4出现Error loading MySQLdb
- TForm的显示过程
- MYSQL BENCHMARK函数的使用
- Android 通过 Intent 传递类对象
- Linux学习笔记26——信号量
- oo面向对象原则
- qt数据库多线程问题的解决(QSqlDatabase只能在创建它的线程中使用)
- 移动开发中的Scheme跳转说明——Allowing OtherApps to Start Your Activity
- JMeter怎么在get URL请求、POST请求中添加动态参数用于服务器段安全验证
- javascript 基础系列(二)
- C语言描述链表的实现及操作
- Sql优化器究竟帮你做了哪些工作
- hdu-1754 I Hate It【线段树】(求区间最大值)
- solr之创建core(搜索核心,包括索引和数据)的方法
- jenkins(五)---jenkins添加项目
- [CSAcademy]Squared Ends