![如何有效学习‘高级 LaTeX’?](https://linux22.com/image/412205/%E5%A6%82%E4%BD%95%E6%9C%89%E6%95%88%E5%AD%A6%E4%B9%A0%E2%80%98%E9%AB%98%E7%BA%A7%20LaTeX%E2%80%99%EF%BC%9F.png)
我知道这有点偏离主题,可能会因为基于观点而被关闭,但我还没有通过浏览 LaTeX 项目网站找到我需要的东西,所以也许,在问题被关闭之前,我可以得到一两个指针或一两个链接。
我已经使用 LaTeX 一段时间了,但水平还比较基础。现在我越来越熟练了,在写书和排版的过程中,我慢慢学到了一些东西。但我觉得参考文献中有一个我无法填补的空白。
有很多适合初学者的资料。如何进行基本格式化、制作列表、基本参考书目等等——其中一些对我的学习有很大帮助。然后是超出我能力范围的整个层次——人们可以在那里编程、创建自己的环境、制作各种新东西。
例如,我在 memoir 文档中找到了非常有用的 flexlabelled 代码,并对其进行了稍微的修改,得到:
\entry{word}{pronunciation}
\begin{flexlabelled}{sclabel}{0pt}{0.5em}{0.5em}{*}{\leftmargin}
STUFF
\end{flexlablelled}
但现在我觉得如果发音的大小不同就好了。我知道我可以在这里问这个问题,会有人回答的,但我想知道在没有帮助的情况下我该如何学会做到这一点。
或者,我如何知道哪些命令只能出现在序言中,哪些命令只能出现在主体中,哪些命令可以出现在任意位置?
在回忆录的文件中写道
对类似描述列表的更多重大更改可能涉及为新环境编写代码。
好的,我认识到没有一个包可以满足我的所有要求(尽管回忆录可以满足我的要求)但是......一个人如何学习“为新环境编写代码”?
但是……我不知道该怎么学。我也不知道该怎么弄清楚什么应该放在方括号里,什么应该放在大括号里,什么不需要。
编辑以回应评论。
我所知道的:我知道如何使用 LaTeX 编写相当简单的文档。我(通常)知道如何找到一个好的软件包。我知道如何做“更多 LaTeX 数学”或“LaTeX 指南”等书中介绍的“常规”事情。
我想学习的内容:例如,如果我想以需要新环境的方式格式化某些内容,我该怎么做?你怎么知道序言和正文中的内容?你怎么知道大括号、方括号、圆括号中的内容,或者不需要大括号、方括号和圆括号中的内容?
也许我想要的东西并不存在于书里。
答案1
我认为“我想知道在没有帮助的情况下如何学会做这件事”是错误的出发点。就像你只需要正确的书的想法一样。
多年来,我读过很多关于 TeX 和 LaTeX 的书籍、文本和参考资料,这样做当然很重要。但我通过与人们,与比我更擅长 LaTeX 的人交流,他们回答我的问题,反驳我,纠正我的代码,以及与我通过解释事情、纠正他们的代码或开发一些命令或环境而得到帮助的人交流。向人们学习、与人们一起学习以及通过人们学习是非常有效的。它迫使你将你的想法用其他人能理解的语言表达出来,它迫使你真正阅读一些代码或文档,它迫使你测试你的知识。人们可以指出你在厚书中很容易忽略的重要细节。
目前有这样一种观点:学校和此类场所之所以有老师,是因为(数字)学习材料还不够好;有了更好的平板电脑、书籍和培训材料,实际上就不需要真人老师了。我确实觉得这个想法很荒谬。
答案2
如何有效学习‘高级 LaTeX’?
我不确定你的问题的重点到底是什么——你如何学习更好地使用 LaTeX 或回答你的具体问题。
我将回答第一个问题,因为这是我在博客上经常问的问题。
事实上,我和你一样,有很多适合初学者的资料,但却没有学习(我称之为)“高级 LaTeX”的资料。事实上,甚至没有任何“课程”,也没有关于“高级 LaTeX”的定义或内容。
通过参考书目或文献进行学习在教学上效率不高
从你的描述来看,你不一定是一个有很强编程背景的人。我认为,程序员想要学习高级 LaTeX 所需的学习材料与没有编程背景的人想要学习高级 LaTeX 所需的学习材料完全不同。
许多现有资源都是文档和参考资料。然而,从教学法中可以知道,这不是人们学习的方式。当然,许多人从文档和参考资料中学习,但这种方式很乏味,而且效率不高。如果你不习惯阅读这些类型的文档,你很容易迷失方向和沮丧。它们更适合具有强大编程背景的高级用户。我不建议你一开始就使用这样的资源,特别是如果你不打算投入大量时间的话。
您的进展可能如下所示:
- 首先尝试一些小项目并进行调整,看看您是否真的想学习更高级的 LaTeX。
- 找出您想要学习的确切内容,并专门搜索有关此类问题的信息。阅读文档或整本书通常意味着您将阅读大量与您当前无关的材料 - 如果内容太过密集,您现在甚至可能都无法理解。
- 一旦你完成了相当多的简短教程,然后你可以开始阅读更多“全球性”的材料,例如TeX 书。
资源
我正在尝试在我的博客上提供解决此问题的材料。您也可以在以下网址找到起点Overleaf 的教程页面这非常好。
我的博客上的博客类别是这里:LaTeX Ninja | 高级 LaTeX和这里有一篇关于 Advanced LaTeX 含义的文章。但是,我肯定还有很多材料需要添加,才能使其成为学习高级 LaTeX 的真正指南;这项工作仍在进行中,但我总是很高兴收到关于下一步应该解决/解释什么的建议,所以请随时联系。
目前,我认为 Overleaf 资源确实可能是您正在寻找的。
答案3
免责声明:我目前的情况和你很相似,所以我不会声称我所说的任何内容都是权威的。我已警告你!
话虽如此,我认为必不可少的一点是掌握 TeX 的使用知识,我在这里找到的。评论中已经指出,仅使用 tex.sx 就有其优点,因为这样您还可以了解最佳实践,这是一种边做边学的方法,到目前为止,这种方法在编程世界中还没有让我失望过。
这应该可以让你更深入地了解两种事物的包装文档:
- 记录源代码,例如
tabularx
,作者在其中解释了他做了什么以及为什么这么做。 - 针对软件包作者的软件包,例如
etoolbox
或者xstring
,它将通过为您提供编写包的工具以及如何使用这些工具的示例而提供帮助。
除此之外,我不知道有一条清晰的路径可以学习如何充分利用 (La)TeX 的全部底层功能。有类似的东西分类指南,我没有读过,因此既不能否定也不能肯定其价值。
关于你最后提出的问题,我的回答是:
- 花括号:强制参数(和组)
- 方括号:可选参数
- 也不需要:从技术上讲,任何命令的第一个参数,或者甚至是纯 TeX 中更复杂的东西,我想说,对于可理解的代码,不要使用它,但这是我的 0.02 美元
- 序言:任何与造型有关的事情
- 更好的是:可重复使用的样式到包中(如果你到了那个时候)
- 并且序言应该只包含该特定文档所需的命令,例如格式调整或缩写。
- 正文:仅内容
- 如何编写新环境:查看示例并拼凑一些命令,直到您不再知道如何修复 TeX 的怪异之处。然后访问 tex.sx 并获取帮助。重复操作,直到它满足您的要求。
附言:我从上面链接的纯 TeX 指南中得出的结论之一是,TeX 是一种非常奇怪的语言(我能想到的唯一图灵完备宏),这就是为什么我选择不使用 TeX 来做那些可以外包的事情,例如创建图表。我确实承受了字体不一致等代价,但我认为我可以预编译一些东西,如果你有多个基于 PGF 的图,这会大大加快文档编译速度。
答案4
我也想弄明白如何格式化一本书,到目前为止,我只做了文章格式化。我可以分享我的方法。我在 TeXstudio 中使用书籍模板,如文件 > 从模板新建 > 书籍。然后使用菜单中的 LaTex 选项卡插入章节,因为它已经自动为我提供了关键词和括号。我学习乳胶的方式:首先,快速浏览文档以了解大致情况,然后自己尝试一些事情;其次,我直接在 Google 中输入问题,这更有可能将我指向这个论坛,我发现这个论坛很可靠,但它更快、更切中要害,你不必等待答案就可以继续工作;第三,我在 YouTube 上输入问题并浏览视频,这更耗时,但有时是值得的。我更有可能关注学者或谈论数学的人的答案,因为根据我的经验,这些来源有更多信息,而且质量更好,尤其是对于初学者而言。不过,我还没有找到一个可靠、完整且简单的来源,至少目前为止,我认为没有这样的来源。我试图在 Google 上一次提出一个非常狭隘的问题,以获得更高质量的答案。一般来说,所有包都放在 main.tex 文件的顶部,然后是封面的所有标题(如页面和一些元数据),然后是作品正文的所有说明,然后是参考书目。在每个章节文件中 - 顶部是带有章节名称的说明,然后是纯文本,可选择插入小节、列表、表格和其他元素。祝一切顺利。PS 我在https://elegantlatex.org/en/,请看一下,它可能会解决您迄今为止的问题并为您提供一个良好的开端。