本着 StackOverflow 上自由形式星期五的精神,我想知道我是否应该考虑学习 ConTeXt。早在 1994 年,我接触 LaTeX 的原因是它有结构化标记,使较长的文档更容易编写。我接触 XeTeX 的原因是能够像在文字处理器中一样使用我的 Mac 字体。是什么让 ConTeXt 用户对它充满热情,或者至少愿意放弃 LaTeX?
编辑:感谢大家在评论中给出的所有答案和精彩的讨论。整个页面都值得一个绿色勾号。成功了!我现在对 ConTeXt 感兴趣了。
答案1
- ConTeXt 实际上没有任何额外的包 - 有几个模块,但处理包冲突实际上不会发生在这里。
- 内置XML处理器 - 我将其与 TEI 和 Docbook XML 一起使用。我获得了 TeX 后端的排版功能,再加上 XML 的验证功能,真是太棒了。
- PDF文件格式开箱即用的兼容性 - 如果您要进行任何严肃的出版工作,这是 LaTeX 真正缺乏的一点。有一个适用于 LaTeX 的 pdfx 软件包,但我从未能够让它工作。
- 与上一个类似,icc 颜色配置文件支持几乎开箱即用。
- simplefonts 包 - 加载你的系统字体,如 XeLaTeX
- 默认支持 UTF-8。如果您编写的是英语以外的语言,这一点很重要。您可以在 LaTeX 中使用 utf8,但您需要一个包...再次,这是默认设置。
我肯定错过了一些重要的东西。使用 LaTeX 几年后,我对 ConTeXt 仍然很陌生,但到目前为止,我真的很喜欢它。另一个主要但可能没有“记录”的功能是,ConTeXt 更适合一般出版,而 LaTeX 似乎更适合学术界。
答案2
在我看来,ConTeXt 的两个最大优势是:
- 根据设计,每个命令都可以使用键值选项进行配置
- 这些选项是一致且可预测的。
让我们考虑一个将文档各个部分的样式改为粗体斜体的例子。
要使章节标题变为粗体斜体:
\setuphead[section][style=bolditalic]
要使页脚变为粗体斜体:
\setupfooter[style=bolditalic]
将枚举的内容(类似于 LaTeX 的定理)设为粗体斜体:
\setupenumerations[style=bolditalic]
要使第二级项目的内容以粗体斜体显示:
\setupitemize[2][style=bolditalic]
将表格的第一行和第一列设为粗体斜体
\setupTABLE[row] [1][style=bolditalic] \setupTABLE[column][1][style=bolditalic]
了解了这一点,您能猜出如何将图形和表格标题的样式更改为粗体斜体吗?(暗示:使用 设置标题\setupcaptions
。现在将其与 LaTeX 中的相应命令进行对比。
由于这种一致性,您在调整文档样式时不需要打开多个 ConTeXt 手册。
答案3
添加到 Mica 的列表:
- Context 吸引我的地方在于它支持通过网格和图层进行图形布局。Context 擅长在页面上组织材料。我的印象是 Tikz 越来越多地用于 Latex 文档的此类工作,但以这种方式使用 Tikz 会导致编译周期变慢。
- 除了“包括软件包”这一事实之外,正如 Mica 所说,将选项传递给环境的方式非常一致。我通常发现记住将哪些值传递给环境中的哪些键比记住哪个软件包做什么要容易得多。
- 为环境提供了丰富的功能:看看可以用框架做什么,它们对于设置视觉信息有多么通用和有用。
- 为环境命名设置的可能性使得内容与排版更加干净地分离。
特别是最后一点,我希望 Latex 3 团队能够思考一下。
答案4
我认为可执行文件极其方便且用户友好context
。与类似的工具类似,它确定所需的运行次数,然后自行解析所有参考、索引和参考书目。使用 MkIV 时latexmk
无需再运行任何外部程序(例如makeindex
或) 。bibtex
也context
不会用状态文件污染工作目录。我的 LaTeX 项目带有索引和参考书目,在使用 处理时会创建以下文件latexmk
:aux
bbl
bcf
blg
fdb_latexmk
fls
idx
ilg
ind
out
run.xml
toc
。context
可执行文件会创建一个单独的tuc
文件,用于维护上述所有内容的状态。