在我的上一篇随笔中,我提到了 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,使用如下命令:
然后,再安装一个 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 实在是太大了,我安装的时候几乎花了一夜的时间去下载。对于这么复杂的系统,它的各种配置文件啊、环境变量啊,都放在哪里呢?使用命令即可查看,如下图:
对于写写中文文档,使用 ctex 宏包就足够了。并不是很复杂。LaTeX 还有一些更加复杂的功能,比如制作幻灯片啊、绘图啊什么的,都有相应的宏包可以使用,而且安装 texlive-full 的时候,都安装了非常详细的帮助文档,只需要打开这个文件,就可以看到所有宏包和帮助文档的列表,我之前分享的《一份不太短的LaTeX介绍》里面有,经典的《Tex by Topic》里面也有,如下图:
看到这个一公里长的帮助文档列表,你有什么感想呢?
(京山游侠于2015-01-06发布于博客园,转载请注明出处。)
- Linux 桌面玩家指南:12. 优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- 如何使用LaTeX让自己不乱?
虽然说LaTeX声称排版容易,只关注内容,可是混合着源代码的结构很难让我只关注内容,最后看得眼睛疼,找什么都找不到. 匿名用户 30 人赞同 立即想到的几个建议: 选择有折叠功能 (folding) ...
- Linux 江湖系列阶段性总结
引言 我使用 Linux 已经有很多年了,最开始接触 Linux 的时候是从 RedHat 9(没有 Enterprise),中途换过 N 个不同的发行版.多年前,我在 BlogJava 上面分享 J ...
- Linux应用环境
转载Linux应用环境 阅读目录 引言 使用 Linux 的一些困难和解决方法 我眼中的Linux哲学总纲 我这一系列随笔中展现出的Linux哲学 Linux之得和Linux之失 总结 回到顶部 引言 ...
- [整理][LaTex]小技巧之——首行缩进
0. 简介 在LaTex编辑时,有时会遇到这样一个有关于首行缩进的问题.在汉语环境的编辑下,习惯上每段会进行一个两个字的缩进.但是在默认编辑模式下,一个章节下的首段是没有首行缩进的,本文的目的主要是解 ...
- LaTeX 有哪些「新手须知」的内容?
孟晨 ,在 LaTeX 话题下写错 LaTeX 名字的,一律… 陈硕等 137 人赞同 这是个好问题,虽然提问提得很大.不是很好答,权当抛砖引玉了. 天字第一号原则:不要到网上抄代码,尤其是似懂非懂的 ...
- LaTeX排版工具使用
专业的论文,都是用Latex.CTex等相关的工具.那么,用word写论文,缺点在哪? latex 写的东西,最终要编译成pdf格式的.里面的格式,尤其是数学类符号等,比较漂亮.这是word不能比的. ...
- 美赛LaTeX急救指南
目录 1 关于easymcm宏包的基本信息,以及编译系统的若干问题 2 图片.表格.数学公式.网址的处理 3 样式.字体字号.段落的设置 4 目录.交叉引用的相关问题 关于标题不能换行的问题:这里有解 ...
- LaTex 小技巧
首行缩进 参考:小技巧之--首行缩进 %-------------------------------------------------------------------------------- ...
- WPF 微信 MVVM
公司的同事离职了,接下来的日子可能会忙碌,能完善DEMO的时间也会少了,因此,把做的简易DEMO整体先记录一下,等后续不断的完善. 参考两位大神的日志:WEB版微信协议部分功能分析.[完全开源]微信客 ...
- 前端学HTTP之报文首部
前面的话 首部和方法配合工作,共同决定了客户端和服务器能做什么事情.在请求和响应报文中都可以用首部来提供信息,有些首部是某种报文专用的,有些首部则更通用一些.本文将详细介绍HTTP报文中的首部 结构 ...
- ShenNiu.MVC管理系统
本篇将要和大家分享的是一个简单的后台管理系统,这里先发个地址http://www.lovexins.com:8081/(登陆账号:youke,密码::高级用户账号:gaoji,密码:123 ...
- IOS FMDB 获取数据库表和表中的数据
ios开发中,经常会用到数据库sqlite的知识,除了增,删,改,查之外,我们说说如何获取数据库中有多少表和表相关的内容. 前言 跟数据库使用相关的一般的增删改查的语句,这里就不做解释了.在网上有很多 ...
- Linux常用命令操作
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...
- 云瓣影音网站&&微信端(已开源)
随着该项目的发布到线上(小打小闹),即将又要开启另一段崭新的旅程.强迫自己停下来写写所学所得,个人认为总结和分享是一种很棒的学习方式.那让我们先来瞧瞧项目长的什么样.如果着急要源码的朋友,可以下拉到最 ...
- PHP之Memcache缓存详解
Mem:memory缩写(内存):内存缓存 1. 断电或者重启服务器内存数据即消失,即临时数据: Memcache默认端口:11211 存入方式:key=>>value ...
- 无法访问org.springframework.core.NestedRuntimeException 找不到org.springframework.core.NestedRuntimeException的类文件
在学习springAOP时,出现如下异常: 无法访问org.springframework.core.NestedRuntimeException 找不到org.springframework.cor ...
- sql 删除表中的重复记录
嗯,遇见了表中存在重复的记录的问题,直接写sql删除时最快的,才不要慢慢的复制到excel表中慢慢的人工找呢.哼. 如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长) sel ...
- Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
前言: 如果你已经厌倦了使用PPT设置路径.设置时间.设置动画方式来制作动画特效.那么Impress.js将是你一个非常好的选择. 用它制作的PPT将更加直观.效果也是嗷嗷美观的. 当然,如果用它来装 ...
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/44156.html