我对 LaTeX 还不太熟悉(大约 3 个月),所以很想买这些书。我刚刚在 eBay 上买了 TeXbook,希望它下周能到货。我甚至可能想买一本 TeX by Topic 的印刷版,因为我不太喜欢在屏幕上阅读。接下来,我想买 LaTeX Companion 或 LaTeX Guide。
考虑到 LaTeX3 即将推出(尽管我还不知道任何时间框架),现在获取与 LaTeX2e 相关的书籍是否太晚了?
请就以下假设给我一些启发。从我在这里读到的内容来看,我有一种总体感觉:
- TeXbook 和 LaTeX Companion 更倾向于叙事风格
- TeX by Topic 和 LaTeX 指南读起来更像一本参考书
首先,我只能负担得起:
- TeXbook 或 TeX by Topic;以及
- 要么是 LaTeX Companion,要么是 LaTeX 指南。我已经可以
lshort
很好地浏览(“叙述教程”),所以我更倾向于 LaTeX 指南(“参考手册”)。
您觉得我选的书怎么样?我更喜欢参考手册风格的书。
答案1
作为 LaTeX3 项目的成员,我的建议是,目前在阅读有关 LaTeX 的书籍时,完全忽略 LaTeX3。原因有两个。首先,据我所知,没有一本书涉及 LaTeX3 项目的新工作。其次,更重要的是,即使 LaTeX3 发布,LaTeX 的“用户级”体验也不太可能发生重大变化。那么你可以学到什么现在关于 LaTeX2e 的内容应该会在很长一段时间内保持相关性。
那么该买哪本书呢?如果只能买一本,我会选择LaTeX 指南:本指南旨在为新用户提供指导,并很好地平衡了涵盖基础知识和足够多的附加材料的需求。另一方面,我倾向于认为LaTeX 伴侣更像是一本参考书。随着时间的推移,它也受到软件包变化的影响:有许多重要的新 LaTeX2e 软件包没有包含在内LaTeX 伴侣。
TeX 按主题分类和TeXBook非常适合理解 TeX,但作为初学者,我不建议新 LaTeX 用户使用它们。你可以阅读TeX 按主题分类电子版,因为它更像是程序员的参考书,我觉得这很方便:我倾向于一次查找一个 TeX 原语。如果你要买一本纸质版的,我可能会选择TeXBook因为它比TeX 按主题分类。TeXBook也不是纯粹为程序员设计的(至少在理论上!),而我想说TeX 按主题分类确实不是一本用户书。
答案2
如果您认真学习 LaTeX 和 TeX,我建议您考虑 La(TeX) 的学习阶段,我将在下面详细描述,而不仅仅是选择书籍。它相当长,如果您觉得无聊,请原谅我,但到最后您会知道为什么 LaTeX3 需要很长时间才能成为标准!
新手@阶段
在这个阶段,你还没有深入了解,你只对制作一份漂亮的文档感兴趣(你还没有发表论文、文章或书籍,所以你只有一份文档)!通过阅读“Latex 的简单介绍”和一些常用包的使用,你可以在一小时内开始使用。一些不错的课程是回忆录,凝缩乳胶, C经典论题, 科摩文 当然还有您所在部门的风格,尽管您讨厌这种风格,但又不得不使用。
rookie@i 阶段
您的报告在某些地方看起来不太好,您想开始使用超链接和颜色,然后您发现像 彩色哦!天哪,我只需输入光的波长就可以排版颜色?(如果你是一名物理专业的学生,这尤其好,特别是如果你插入脚注或尾注,说明这本书是在 minion pro 中排版的,使用波长为 800 nm 或 300 nm 的主字体颜色和波长为 450 nm 的超链接)。你也会很高兴 TeX 使用斯普它小于可见光的波长。 超链接 大家都在谈论灵魂 和微型 包,让我们试试这个。我想要更多这样的,毕竟我可以用 Python、C++、Fortran 等编程,这应该很容易。你现在忘记出去一个月省钱,你买了电子书和LaTeX 伴侣 但发现它们都过时了。你还发现了网络上与 TeX 有关的所有角落,还有 CTAN,它就像 TeX 的圣殿。它有从遗物到新产品的一切!阅读软件包文档,阅读软件包并阅读代码清单.即使这没有多大意义。
rookie@ii 阶段
现在你读这本书。Catcodes?futurelet?afterassignment?afterexpand,noexpand 呃!和引用的东西在哪里\section
?\bibliography
你坚持读下去,读了三遍后,你记忆力耗尽了,那是你自己的记忆!
TeX 就像学习一门外语,虽然最初是用 Pascal 编写的,Pascal 是一种只有大约 40 个漂亮构造的优美语言,但 TeX 需要您了解大约 150-300 个左右的保留字。我刚才说了保留吗?其实不是,TeX 可以用 TeX 重写并折叠成任何其他语言,因为它是图灵完备的,如果您喜欢函数式编程,您可以阅读lamda
并了解如何拥有无界列表。在这个阶段,您认为 TeXbook 是错误的选择,并回到 LaTeX。使用您的出版商模板为您的论文排版一篇文章或多篇文章。你变得更有冒险精神,使用 排版了同事的重音名称\def
。哦!天哪!这会花更长的时间。你还花了大约两周的时间试图获得一个墨西哥宽边帽使用绘制的 SimpleExamples TikZ
,只是想到一定有一条更快的启蒙之路,于是你决定使用另一条路线八度,但输出看起来不太好,所以你下载碎片 现在知道eps
文件是什么以及如何正确地将其包含在图形 包,但它看起来有点奇怪,你把它放在哪里,然后你下载包裹图包将其包裹在文本之间。完成后,你决定你宁愿有两个宽边帽,但标题看起来不对,所以你下载了标题包和subfig
包,这样您就可以拥有完美的布局、图形和标题!现在您可以编写报告了。
rookie@iii 阶段
它通常在休息开始时开始。既然你已经设法解决了手机上的所有数独难题,并且你对数学有很好的理解,那么你就可以掌握 TeX 了——毕竟它是一个排版引擎(请不要说程序或软件或 DTP)。要理解,catcode
你需要阅读shortvrb
软件包文档。现在它更有意义了!你偷看了列表 包来排版你的代码(在 Python 中,现在你开始点击为什么在 Python 中缩进很重要),但你仍然不能真正说你理解它。在用 获胜之后catcode
,你想更进一步,它总是让你感到困惑,为什么你有csname
。它是如何工作的?你偶然发现了利普萨姆毕竟,您需要一个可以生成示例文本的软件包,用于您使用 TeX 和 LaTeX 进行的所有实验。阅读软件包文档,您可以很好地理解 csname 以及递归和delimited macros
。那么现在您拥有的变量可以在其定义中包含任何字母,但在外部csname
却不能?嗯……您想知道为什么吗?而且expandafter
仍然给您带来问题。
rookie@iv 阶段
感谢 Knuth 决定在过去 30 年左右的时间里不推出 TeX 的新版本 - 否则你怎么能赶上所有的变化 - 代码已经在内部酝酿,现在你想要更多,因为你可能在业余时间写博客,你发现了编码方案 utf-08,哦!天哪,我可以在我的 pdf 中使用 javascript 了!你阅读了和中的代码animate
。movie15
你还阅读了 DP 的故事特克斯。您还使用 LuaTeX 进行配音,并尝试了各种 TeX。这个阶段可能占用您研究生学习时间的 49%。在这个阶段结束时,您将知道什么是ogonek
,但可能用不到它。
rookie@v舞台
人们在凌晨 3 点就开始打电话给你,请你帮忙完成论文。现在你有点认真了,你已经超越了一点。你收集了大量的文件.sty
,.dtx
硬盘上的目录列表显示有几千个.tex
文件,其中许多文件名为untitled-3.tex
等。当你的untitled
文件数量达到 500 个左右时,你就可以肯定隧道尽头有光了。你现在决定自己编写几个包,但这必须等到你的论文完成后才能完成。有些幸运的人在论文完成之前就这么做了,冒着导师在他们正式提交论文之前退休的风险。
现在你已经真正掌握了 TeX 的一个真实事实,那就是它只有一种数据类型就是这样token lists
。由于你现在对计算机科学更加感兴趣——即使你学习考古学,现在也是如此——你开始阅读软件包,TikZ
看看它们是如何强制数组foreach
循环的, 然后你尝试arrayjobx
datatools
一次LaTeX3 宏。这个阶段有时被称为快速学习阶段,可以相当快,可能需要一年或两年的时间。
既然我们在谈论时间,如果你想知道如何用 TeX 获取操作系统时间,那么总是有,\time
它不是 unix 时间,而是定义为自午夜以来经过的小时数。但是,由于你可能还想获取经过的秒数,因此你需要使用pdfcreationtime
,这会让你走另一条路去阅读语言postcript
和pdf
标准,这让你想知道 Adobe 是如何说服 ISO 委员会制定标准的pdf
。所以你决定只使用包datetime
或datenumber
,你想知道闰年和公历之类的东西。
但是,由于您可能不是计算机科学专业的学生,因此您只是为了好玩而用黑体字排版您家传圣经中的一篇或两页文章,phoenician
或者plutoniko greek
用排版软件排版国际象棋比赛的棋盘skak fonts
。
rookie@vi 阶段
你现在又感觉自己像个十几岁的少年,站在世界的顶端,你知道,你知道一切,你知道你可以掌握你不知道的东西。你再看一眼 LaTeX3,哦!天哪!我们又来了,多么陌生的语法,你还不如用它编程脑残这些年来。你不喜欢下划线,在花了几年时间思考是否需要在冒号后留一个细空格之后,你发现法国人不仅有一个以他们的名字命名的“空格”,而且还在冒号前后使用它,你决定想要多了解一些排版知识,现在你买了 Bringhurst 的《排版元素》,你可能还读过 Tufte 的一些书。
与此同时,你即将被大学开除,不仅因为你没有提交论文,还因为你挑了与所在系的论文风格有关的论点。这些年来,你一直努力工作,但最终却没有看到你的 Magnus Opus 以双倍行距打印出来。光是想到这一点,你就感到恶心,在床上躺了好几天。无聊的你现在从最后一章开始随意阅读 TeXbook 章节。哦!你一直想阅读输出例程和浮点数的工作原理,所以你下载了软件包,float
并为 准备了一个特殊的浮点数my@Holiday@fotos
。考虑到一定有更简单的方法可以完成所有这些工作,你决定是时候玩玩 Lua 了,所以你暂时告别 TeX,开始学习 Lua。与 TeX 相比,这简直是小菜一碟,而且由于你不太担心协同例程,所以你在两天内就学会了 Lua。在这种感觉占了上风之后,你\obey@thelines
提交了论文,现在使用setspace
软件包将论文行距翻倍。由于使用双倍行距翻倍,论文现在有 1300 页长,并被退回进行编辑!在你女朋友的建议下,你通过简单地注释命令删除了四个章节input
,并使用缩放所有图形\scalebox
。由于没有人愿意再次阅读你的论文,所以你通过了。
rookie@vii 阶段
现在,你出去喝酒,成功提交了论文,当你和你的朋友谈论 LaTeX 时,你隔壁桌的女孩们用奇怪的眼神看着你,她们可能以为你是一些有奇怪习惯的外国人。随着“兴奋”的消退,你现在感觉自己就像刚刚结束对“针头上能坐多少个天使' 并决定找份工作。现在这是一个陌生的环境,每个人都在谈论最后期限和金钱,最糟糕的是到处都是消息,人们都在使用 Windows。你保持安静 - 记得酒吧里的女孩和她们奇怪的外表。
就像因宗教而受到迫害的人一样,你偷偷地用 LaTeX 报告类的破解程序在短时间内完成了一份报告 - 其中包含大约五十个软件包和你自己的样式,但老板却退回了它,告诉你必须按照公司样式完成。你设法说服老板不要这样做,并且偶尔会使用 LaTex 几年。你继续使用 LaTeX 做一些零碎的工作,并说服一些同事使用它。这种情况可以持续几年,并且在不同的职业和工作之间进行。
master@i 阶段
你现在可以称自己为大师@i因为只要完成博士学位并工作一年,你就有了这个权利。你结婚生子,在约会期间,你用这个verse
软件包给你的妻子寄了用 LaTeX 写的诗。TeX 现在只是一种爱好——你只是用它来写大部分笔记,你靠它谋生。
学者们永远无法达到这个阶段,因为他们不断地在阶段之间递归迭代菜鸟@我和菜鸟@v,在分形上深入挖掘细节。你有一些好东西 - 全部未发表,都在等待最后的润色出版。你决定将所有笔记收集到一本书中,这本书自然会以 LaTeX 宏和 TeX 的组合形式编写,再加上一些脚本来帮助你管理收集到的所有信息。现在,你已经花了大约 10,000 个小时学习 TeX 的来龙去脉,你已经准备好面对一切,你可以称自己为专家了!你的眼睛可以看到像这样的变量,而\@carcube
不会被打扰,@a
更重要的是,你知道它们的含义,你可以使用包高精度地计算实数fp
,并且你已经编写了自己的欧拉问题 TeX 解决方案,答案使用numprint
包很好地格式化,只是为了好玩。
master@ii 阶段
很少有人能达到这个阶段,因为他们需要大自然的恩赐才能做到这一点。这就像生来就拥有足够高的智商,可以在十岁时进入门萨俱乐部。长寿并不常见;尽管人们喜欢雷·库兹韦尔 相信欧米茄点即将到来,这给了你希望,因为不仅你知道欧米茄点是,但你也尝试过 alpha 和 omega,你也可以用任何可能的字体排版 greek omega。你甚至可以设计自己的字体,光是想到它,就让你感到很开心,现在你决定,既然你已经退休了,你现在可以做任何你喜欢的事情了,你决定明天遛狗后坐下来尝试用 METAFONT 和 Lua 或 METAPOST 和 Lua 的组合来做这件事,你也有一些关于一些包的想法,你想和你的妻子谈谈,但你的女儿刚刚打电话问你如何排版音标 在 LaTeX 中,你无法回答这个问题,你怎么可能这么多年都没能回答出来,记忆又成了问题。你走到酒吧喝一杯,和你的朋友谈论 LaTeX,这一次隔壁桌的女孩没有睁开眼睛。但现在你已经掌握了 TeX 的可掌握部分,这给了你耐心和智慧,这不会困扰你。你知道 TeX 是一个旅程。你决定现在尝试更好地理解输出例程,你阅读了一切 和每一页 包。
为了好玩,你还可以拿一份旧的打印件背景
包并查看代码,您仍然记得它们都是相似的,车库里有三卷 Salomon TeX Magnus Opum。背景中有音乐,只是为了好玩,您可以下载包来musixtex
看看它是如何工作的!也许您可以将字体更改为 True Type 或 Type 1 或 Type 10!生活真美好!
\number 42.
master@iii 阶段
\ldots\
一年或之后继续\elide
。
1请注意,学习 TeX 和不同节点有很多不同的途径。这篇文章只描述了其中一种途径,其他途径例如 `rookie_nnn:i 等,但这不适合我!