每天使用 LaTeX 和工作流程?

每天使用 LaTeX 和工作流程?

我是 LaTeX 初学者,想知道编写(较长的)文档时的典型工作流程是什么样的。

对我来说,吸引力在于能够分离内容和演示,但似乎仍然需要了解足够的标记以进行分段和基本格式设置,即斜体、粗体等。人们是直接用 LaTeX 书写,还是事后再进行标记?

类似地,作者是否从一开始就考虑如何构建多个章节文件,或者这通常是在最后阶段与页面布局一起完成的?(在这种情况下,我正在查看回忆录包。)

因此,如果一位作者即将开始写一本书,那么只给他们有限数量的格式和章节命令来指导他们阅读这本书,然后在最后给他们一本厚厚的手册让他们深入研究,这种做法合理吗?

答案1

我写过很多篇幅不一的文档(从短信到超过 100 页的“书籍”——也许值得一提的是,我已经多年没有使用过文字处理器了),我认为 LaTeX 的优点在于避免了大部分手动排版。当我开始写一篇较长的文档时,我通常采用以下方法:

  • 为我的整本书设置一个 LaTeX 文件,写下我确信需要的任何序言。
  • 将书粗略地分成几章,将每个新章节拆分成一个文件 - 对于大型项目来说,单个大型 LaTeX 文件太大且难以处理。然后将这些文件包含在我的主要文件中。(顺便说一句,我通常会注释掉所有包含文件,但任何时候我都在处理其中的一个。)
  • 然后,我会边写边写章节,包括任何特殊的格式。如果我不这样做,我通常会忘记它放在哪里。作为初学者,这可能需要您反复编译文档以确保获得所需的输出。随着您变得更加有经验,您将会越来越少地这样做。
  • 根据项目的性质,选择章节的第一次猜测可能是正确的,也可能不正确,在进行过程中很容易添加和删除,因此这可能是必需的。
  • 一旦我写完了,我就会回来修复一些更重要的问题,比如水平盒子过满,以及如果 LaTeX 没有完全达到我想要的效果时调整图像的位置。
  • 完成后,我可以返回序言并进行任何更改以完成文档、生成索引和执行其他“最后一分钟”的任务。

在所有情况下,我都会尝试将我从 LaTeX 获得的控制限制到最低限度,如果我想手动排版项目,我会使用 InDesign 之类的工具。通常,这意味着使用一组好的文档类,或适当构造文档的序言。

答案2

准备

我认为大多数人都是直接编写和编辑 LaTeX(或多或少借助编辑器),并且他们经常编译文档以查看更改的结果。我想给出的一个建议是在开始使用 LaTeX 之前先打个草稿。即使

作者应该能够专注于他们所写的内容,而不会被其视觉呈现所分散注意力

是 LaTeX 的标语,但这并不完全正确。我经常发现自己在调整布局而不是专注于内容。因此,我建议您在开始使用 LaTeX 排版之前先打个草稿。这可以列出您想在文本中使用的想法以及粗略的安排。

写作时

当您开始使用 LaTeX 排版时,我认为充分利用其大部分功能会非常有效。特别是,在写作时而不是在过程结束时,使用命令进行交叉引用(例如\label\ref)和对其他作品的引用(如\cite或任何其他来自的引用命令)将使您受益匪浅。引用也是如此。如果您决定使用,那么在写作时标记引用可能比稍后标记更容易。此外,如果您正在处理整个文档中重复的表达式,那么使用诸如在biblatexcsquotes避免重复表达的最佳方法

如果您正在撰写带有图形的文本,或者图形是您要展示的内容的一部分,那么在写作时制作图形可能会对您有所帮助,而不是稍后再制作。这使您能够正确引用图形,并对图形进行调整以使其与文本相关联。但是,请注意,在尝试使用 LaTeX 创建图形之前,用笔和纸起草图形通常很有效。尝试这样做似乎会适得其反,因为创建图形需要时间,特别是如果您正在学习 TikZ 之类的东西,但在可视化您的工作时,您可能会发现文档中需要更改的内容,最好在流程早期发现这些内容(这可能是您理论中的重要变化)。

另外,使用一些可以提高工作效率的工具——使用好的编辑版本控制– 并在方便时实现自动化。例如,如果您自动编译latexmk可能会花更少的时间思考编译,而花更多的时间思考内容。

收尾工作

有些事情你可以在后期做,而不是在早期做。例如,删除错误的不间断空格 ( ~) 并创建标题页。结帐您对文档做了哪些最后的润色?以获取有关该过程后期的更多信息。


执行

实现我所描述的工作流程的一种方法是使用 Emacs。方法如下。

起草时你可以使用 Org-mode大纲您的文档。这基本上是制作一些标题来代表您想要包含在文档中的内容,然后通过在每个标题下填写内容来工作。标题是可折叠的,以便您可以概览文档的结构。您还可以用“完成”或“待办事项”标记标题以跟踪您的进度。例如,请参阅本教程了解详情。

对草稿满意后,你可以使用 Org-mode 的导出功能将文档导出为 LaTeX(你可以从 Org-mode 导出你选择的序言)我已经详细地写过关于这一点在另一个答案中。然后您可以使用奥科特克斯。请注意,AUCTeX 还具有轮廓特征获取文档概述。

这种方法的理念是利用 Org-mode 的功能简化记录、组织和开发想法的过程,同时受益于 AUCTeX 的许多功能,这些功能有助于编辑 LaTeX 文件。我相信这是一种很好的方法,但它要求用户了解 Emacs、Org-mode 和 AUCTeX 的基础知识。幸运的是,有很好的教程和手册。人们只需要了解基础知识,这并不难学,就可以开始学习。然后人们可以边学边学。有关如何学习 Emacs 以及有关工作流程的更多说明,请参阅使用 emacs 进行 TeX 工作流程的简单指南

答案3

  1. 选择和/或制定所有布局和样式。
  2. 制作功能列表和测试示例。
  3. 纸上草稿
  4. 写下你的意思的评论
  5. 其他事情

  1. 这很重要,例如,因为文本宽度决定了方程式如何换行、图形如何放置以及它们的大小。例如,更改文本宽度可能需要大量手动修改。因此,有以下选择,按复杂程度递增:
    • 从出版商处获取样式文件。例如,查看 Springer 的图书手稿指南. 如上例所示,通常发布者会提供类文件、使用说明以及.tex文件模板。
    • 使用memoir类用于可配置排版。无法配置所有内容,但可以配置到合理的水平。它有很好的文档,但文档有很多页,需要花时间阅读。书中还介绍了一些排版方面的内容。即使您不使用,也可以使用该文档memoir
    • 选择ConTeXt。它的可配置性比 强很多,memoir但文档也更大。据我所知,它还有一些几乎没有文档记录的区域/功能。而且,一些可以通过 LaTeX 中的外部包完成的事情在 中可能不容易实现ConTeXt。(这里有些ConTeXt用户可能会给出更好的评论。)
    • 编写自己的类文件。这需要对 TeX/LaTeX 的内部结构有相当的了解。学习它可能有用,也可能没用。
  2. 这意味着确定所需的所有排版功能及其相应的内部命令,或通过包使用的外部命令;以及一些好的做法。通常列表中只包含用户尚不熟悉的内容。最好将“列表”写入示例文档以测试命令的工作原理。一些随机示例:
  3. 我认为直接在 TeX/LaTeX 中起草不如在纸上起草有效。例如可以进行起草:
    • 一次获取整个文档
    • 一章一章地写。这意味着先起草一章,然后编写代码。
  4. 如果您无法做到,请写评论。“这里我想要一个章节”,或“这里我想要一个包含函数 q(w) 图的图形的引用”,等等。在某个时候,您将学会如何做到这一点。或者会发现评论可以让您更好地分离内容和呈现。
  5. 图形放在最后。在图形准备好之前,可以使用相同尺寸的空白框来放置图形。页眉、页脚、目录、索引也最后打开。可能还有其他东西。

答案4

两个与编辑器相关的技巧:

  1. (mac 专用)TexShop 的宏编辑器允许您通过热键插入一段代码。但是,它限制您只能使用 command+ key

    在此处输入图片描述

    你可以进入 Apple 自行选择Menu>System Preferences>Shortcuts>App Shortcuts并按下 + 按钮来选择您自己的宏。输入宏的名称和所需的热键。这也适用于分配/重新分配其他菜单选项任何应用程序:

    在此处输入图片描述

  2. Sublime Text 和 Emacs 有一项称为多光标的功能,可让您同时在文档的多个部分中键入内容。请观看我巧妙地重新调整&表格中的 s:

    在此处输入图片描述

相关内容