“将内容与格式(样式)分开”到底是什么意思?
如果“有必要”的话,我该如何实际去做呢?
看完之后许多LaTeX 文档和 TeX Stack Exchange,我不断看到将内容与格式分离的参考,但这对我来说毫无意义。
例如,如果我有图片、表格或图表,我就不能忽视它们的位置、大小甚至颜色。对我来说,内容与格式有关。格式不仅仅是美观。它通常是呈现信息的一个组成部分(例如 Tufte Book)。
我认为唯一可行的方法是作者和排版员是不同的人。但如果我两者兼而有之,那么我认为不可能“只输入”我的内容,然后再担心格式化。
答案1
将内容与形式分离,或者更好地说是将其视觉表示分离意味着您声明了某个格式元素的功能逻辑上(即逻辑标记是这里所涉及的基本原则 —— 不仅仅是 (La)TeX 采用!)。
这样做没有令人信服的理由,但它非常方便,正如我稍后试图指出的那样。首先,假设 TeX 是由数学家编写的,逻辑标记以某种方式反映了您未指定的数学定义的基本原理什么定义的对象是,而不是它的作用。类似地,逻辑标记不会告诉您印刷元素的外观,而是告诉您它在文档中扮演的角色。
举几个例子:
- 您可以通过以下方式进行逻辑标记:
\section{Some Title}
而不是{\centering\Large\bfseries Some Title}
, 或 \begin{proof} <proof body> \end{proof}
而不是{\itshape Proof.} <proof body> \unskip\hspace*{1em plus 1 fill}\nolinebreak[3]\hfill\mbox{\blacksquare}
,或者\tableofcontents
而不是...嗯...
(并且第一个反例仍然缺乏垂直间距,并且无法确保章节标题不会单独留在页面的最后一行。)
显而易见的优势可以直接从例子和反例的长度差异这一概念中得出。这样可以节省时间!再考虑一下你需要更改每个章节标题格式的情况。如果你使用硬编码——与逻辑标记“相反”——在这种情况下,你将循环浏览整个文档并手动更改每个实例。但是,如果你将章节标题与格式分开,你只需转到原始定义即可\section
并根据需要进行更改即可。这个过程不容易出错(为什么显而易见!?),您不太可能感到沮丧,而且您再次节省了时间。而著名的论点“您可以只关注内容”在一定程度上成立,因为您使用的是 1 字节长度的简单 utf8 字符(基本上是 ASCII),因此被迫专注于什么你说——纯粹的内容及其逻辑的发展,有时候这并不是太糟糕。
现在,你说得对,内容和它的视觉表现是相关的。这就是为什么我要限制最后提到的论点的影响。然而,说实话。当你开始撰写论文、书籍或其他东西时,你真的考虑过最终的格式吗?此外,你需要记住,在 TeX 中,你可以更改布局尽管甚至在编写内容之前。通过分离层次,您可以自由地推迟某些决定。这并不妨碍您在内容最终确定之前做出这些决定。
那么有什么缺点呢?一个明显的缺点是,如果不进行硬编码或不手动绘制,一小部分操作的执行速度会慢得多。(想想表格;有些表格可能是一个噩梦。)在我看来,主要的缺点是,标记指令的原始定义是不是总体来说很容易访问。大多数都很容易访问和操作(这也取决于你想深入了解 TeX 世界的深度),但有些无疑并非如此。因此,你必须愿意花时间研究文档、询问朋友或在 TeX.SX 上提问。
总之,你可以说,当你将内容和形式分开时,你可以节省时间并避免烦恼,因为你不必处理繁琐的机械工作。此外,它还会激励某些行为,这些行为可以被视为有利于编写内容。另一方面,你很可能会因为调整文档以满足你的需要而浪费一些时间。最终,由你来决定你到底想如何度过你的时间。