教授 LaTeX 及其它相关知识

教授 LaTeX 及其它相关知识

关于如何教授 LaTeX 的类似问题已经在这里发布过了,但我想给它们稍微不同一点:

有没有人有教授 LaTeX 以及大型项目所需的其他工具的经验?

我想到的是类似学生研讨会的东西(比如说 10 天,每天 90 分钟左右),其中涵盖了一个很好的介绍,介绍学生如何使用 LaTeX 以专业的方式编写更大的项目(如博士论文)。我的经验是,学生不知何故设法掌握了 LaTeX,但却编写了不可读的代码(对于我这个顾问来说),并且以一种相当不稳定的方式“组织”他们的工作(礼貌地说)。

因此,我不仅想向他们介绍 LaTeX,还想向他们介绍一些 LaTeX 中的“最佳实践”概念。这应该包括如何编写可读代码(合作者或主管可以快速理解)、合理命名宏、标签等的一些想法等等。

此外,我想向他们介绍一些组织打字的工具,比如版本控制系统(我个人使用 git)、专业的书目管理,比如 BibTeX、可靠的编辑器(不想在这里引发论战:)、良好的生产工作流程,以及与主管交换代码(甚至可能通过 git、电子邮件等远程进行...)

为了使我的问题更加精确:有没有人建议应该涵盖哪些“最佳实践”主题,它们实际上是什么样的,除了 LaTeX 核心之外还有哪些工具是有用的、必要的、多余的……?

编辑:关于学生的预备知识。这对我来说当然也不太清楚。但为了有个概念,我们假设他们有一些使用 LaTeX 的基本经验、一些关于 Linux/bash 等的基本概念以及一些关于协作问题的基本概念。换句话说,我不想从头开始,而是想将他们的技能提升到更高的水平。

答案1

这篇文章是根据我的观点和经验写的,所以你可能会觉得这是主观的……好吧,确实如此。当然,我总是针对自然科学家。

首先我想说的是,tex.se 上有很多“最佳实践”问题,太多了,无法全部列出。只需搜索“最佳实践”即可。

就我本人的乳胶教学经验而言,我发现,一般学生只要具备基本的计算机知识,并希望具备一点编程或编写标记 (html) 知识,就不会在“思考”代码方面遇到那么多问题,而其他学生则有。基础乳胶课程通常不包括以下主题,因此它们可能会成为更有趣的进一步主题:

技术方面:

  • 单元处理 (siunitx) 结构和标记
  • 词汇表处理(词汇表)
  • 图表(pgfplots)和图片(tikz)

非技术方面

  • 排版
  • 学术写作的常用规则(例如 DIN 和 ISO)
  • 自信地拒绝接受(非印刷工给出的)晦涩的指导方针

非 LaTeX 方面:

  • 如何选择最佳编辑器
    • 纺织厂
    • 基勒
    • 纺织品商店
    • 泰克
    • texmaker (或者其中一个克隆版本)
  • 增强书目管理
    • bibdesk (苹果机)
    • 贾布雷夫
    • 参考作品
  • 遥控系统
    • git ....

我想更详细地讲一下:

编辑

选择合适的编辑器相当复杂。我在教完全初学者时发现,他们在使用更复杂的编辑器(如 kile 或 texmaker)时很容易变得过度紧张。其次,我认为使用相同的编辑器进行编程和编写 latex(例如 eclipse)不是一个好主意。编辑器应该提供代码自动完成功能(TAB + X)、支持 synctex(您应该告诉学生如何使用它)和最低限度的项目管理(例如通过设置主文档)。

围兜管理

我真的无法理解那些不使用自动书目管理系统的人。但作为 TeXnican,你甚至不应该考虑不使用 bibtex 或 biblatex。如何创建 bibtex 数据库的输出应该是初学者课程的一部分,使用第三方应用程序或手动创建数据库本身可能是另一门课程的一部分。我想它们需要被引入到独立工具中,例如 jabref 或 bibdesk (mac)。根据您所在机构(我想是大学)提供的环境,向他们展示如何从 refworks 导出到 bibtex 数据库可能会很有用。

协同工作

嗯,我认为 LaTeX 在某种程度上非常适合分布式和协作工作。我个人使用 hg ,因为它似乎比 git 更方便。我也todonotes经常使用软件包来标记我的文档。但这可能并不适合每种情况。对于电子邮件分发,将文档分成非常多的小部分非常有用,这样几乎每个人都只处理一个或两个单独的文档部分。此过程需要一位杰出的维护者将所有部分重新合并为一个。

寻求帮助

即使是年长而睿智的人有时也会遇到以正确方式提问的问题。因此,必须指出的是,即使是 TeXperts 也没有 galadriels 镜子,猜测某个命令来自哪里是非常累人的。并不是说这个主题需要延伸到极限,课程中的十分钟就足以引起对这个主题的认识。

当然,在寻求帮助方面,最好的“最佳实践”就是使用texdoc。请告诉他们它的魔力!

- - 待续 - -

答案2

我可以就我向本科数学学生教授 LaTeX 以教他们如何写回忆录时所做的“强制良好实践”方面提供一些部分反馈(他们写博士论文还为时过早)。您应该能够根据自己的情况调整其中的一些内容,尽管它实际上只涉及编码方面。那是几年前的事了,但您可以在我的网站

编辑器的选择:我使用了一个可以在所有平台上运行的简单编辑器 (TeXmaker)。这样做的好处是每个人都有相同的编辑器,因此我只需描述一次,如果出现任何问题,解决方案对每个人都是相同的。当然,如果你有计算机科学专业的学生或非 LaTeX 初学者,那么使用编辑器可能并不理想。

执行良好做法:由于他们几乎都是初学者,我不需要与他们对抗坏习惯,而是对他们实施严格的政策,规定他们应该如何使用命令、应该将命令放在序言中的什么位置(出于课程需要,为他们提供了“标准”序言)以及他们应该在文档中使用哪些命令(例如,\\除了表格或对齐之外,没有\bf\it\sc,没有{eqnarray}等)以及在评分方面会受到什么处罚。结果相当不错,因为只有少数人犯了这种错误。学生们可以访问这两份文件(不幸的是,这两份文件都是法语的)使用 LaTeX 时不应犯的错误列表编写 LaTeX 文档的建议课程结束时,我还开设了一堂课,讲解他们最常犯的错误以及如何改正这些错误(见降神会_12_cor.pdf)。

课程组织:每个学生坐在一台电脑后面,拿到一张描述主题的表格(例如如何输入数学题),每个描述后面跟着一个或多个练习。这样做的好处是每个学生可以按照自己的节奏学习。每节课每周一次,每次 2 小时,为期 12 周。前 5 节课是基础知识(标题、章节、目录、数学、参考书目(不使用 bibtex)、表格、图像、TikZ),然后我讲到了更高级的主题(使用 titlesec、titletoc 等更改演示文稿、使用 bibtex、制作索引、词汇表、如何使用组织长文档\includeonly、使用 TikZ 制作更高级的图形、使用 animate 制作动画等)。我觉得重要的是在第一节课中介绍宏的概念,并讨论什么时候为某些东西定义宏是个好主意;后来,我们讨论了宏分解(例如\newcommand{\numberset}{\mathbb}和然后\newcommand{\R}{\numberset{R}})。

等级:学生必须给我三个家庭作业。前两个是重现给定 PDF 的代码源(见文件DM1.pdfDM2.pdf),第二个是相同的文档,但序言不同,以了解他们是否已经掌握如何使用软件包在不修改文档的情况下更改呈现方式。第三个是使用某些必需元素(方程式、目录、参考书目等)制作一份 6-10 页的文档。为了鼓励执行良好做法,我使用的评分方案是:他们从 15/20 左右的分数开始,每犯一次错误就会扣分(取决于错误)。作为补偿,我也为执行良好做法(例如,非常出色的代码)或花费他们大量时间制作的复杂图形/动画加分。

答案3

看看我两年前发布的教学大纲:

第1页 第2页 第3页

相关内容