几年来,我一直使用 LaTeX 来排版数学文档,但我觉得 LaTeX 有两种“类型”:一种是我用来编写文档的,另一种是用来编写包的。
我的目标不是编写一个包,而是尝试自己解决问题。我经常发现自己在寻找我遇到的每个问题的解决方案,而答案总是涉及我所说的这种语法,充满了@
s 和诸如\expandafter
, \makeatletter
, \makeatother
,之类的东西\catcode
。因为我无法理解它,所以我只是盲目地复制它。
对于学习这种不太基础的乳胶材料,有哪些推荐的资源?
答案1
阅读 TeXbook。你必须为它付费,但它是值得的:它不仅完全完整(甚至比 mafp 在评论中推荐的 TeX By Topic 还要完整),而且它是一本说明手册,而不是参考手册。它有一个缺点:除了实际的基本 TeX 语言之外,它还记录了纯 TeX 格式,并且完全忽略了 LaTeX 和其他格式(这是理所当然的)。不幸的是,它没有明确区分 TeX 的内置功能和格式定义的内容,而 TBT 则做到了(根本不涉及格式)。实际上,这意味着你应该浏览一次正文,然后专注于危险的弯曲内容,即参考资料。
我听到过有人抱怨 TeXbook 太冗长或文笔不佳。TeXbook 有自己的文笔确实招致了这样的批评,但也让它能够在直觉层面上与读者互动。如果你的直觉与 Knuth 不同,那也没什么可羞耻的,但 TeX 是一种极难理解的语言,因此理解其创建者略显古怪的思想可能会有所帮助。
答案2
LaTeX2e 编程非常困难;我建议你使用 LaTeX3 格式的实验版本。要加载它,你只需要
\usepackage{expl3}
和文档可通过texdoc expl3
和获得texdoc source3
。