您想对 TeX/LaTeX/XeTeX 等进行哪些更改?

您想对 TeX/LaTeX/XeTeX 等进行哪些更改?

就像标题所说的,你正在使用的系统有什么需要改变的吗?一些烦人的地方需要修复,一些功能可以改进或添加?

答案1

TeX 需要改进的一个领域是数学间距(从 2007 年开始,Word 在这方面做得比 TeX 更好)。TeXbook(第 18 章)建议进行相当多的手动调整,其中大部分可以(因此应该)自动化(列表并不完整)。以下是几个示例,下面是正确间距(有点cos²+sin²微妙,因为它是一个细间距而不是中等间距,但这是一个重要的变化,因为它还会改变收缩和拉伸值):

TeX 中错误的数学间距示例

问题是 8 个间距类别(\mathord\mathop\mathbin\mathrel\mathopen和)不足以涵盖所有情况。您至少需要以下补充类别:(完全\mathclose没有间距,对于和 ,反斜杠用作商)、(对于阶乘)、(对于平方根)(对于积分中的微分)和(对于双标点符号,例如法语字体中的和,其中您需要前后都有细空格)。\mathpunct\mathinner\mathnull/\mathfact\mathsqrt\mathdiff\mathdpunct:;

答案2

TeX 是一个天才编写的系统,它有很多很棒的功能,但底层架构存在缺陷。该系统提供的编程接口和编程机制与大多数计算机程序员的直觉背道而驰。其独特功能列表太长,无法一一列举:

  • 字符代码和非标准词汇分析。
  • 对命令式编程的支持很笨拙,包括有限数量的编号变量、没有变量名、没有控制流、没有布尔类型等。
  • 使用 Pascal。
  • 任意常量和数字(文件编号、字符代码)。

简而言之,如果我可以重来一次,我会(a)使用一种不错的现代编程语言来实现(b)设计一个干净的编程接口,包括通常的工具、块结构、类型命名变量、过程、异常,甚至面向对象。

最后,我会 (c) 采用简洁的设计,不透露或讨论诸如嘴巴、胃部和\expandafter 等问题,当然,我会写一本没有危险曲线标志的书……

答案3

我的列表中排名第一的是:(1)更好的错误消息和(2)更好的调试工具。

  1. 我发现 LaTeX 错误消息非常难以理解,尤其是涉及“高级”文档类(例如beamer)或包(例如biblatexhyperref)时。(例如,对于beamer框架,报告的错误位置通常只是框架的右括号。)

  2. 更困难的是调试自己的宏,至少对于初学者到中级开发人员来说是这样。使用\show\meaning在我看来很痛苦。我真正想要的是一个“符号”调试器,我可以在其中逐步完成扩展过程以了解正在发生的事情。

答案4

我希望 XeTeX 的作者能花点时间修复 XeTeX 双向原语的错误,并添加一些新的原语,正如已经建议的那样。在双向性方面,使用 XeTeX 的各种错误和不足进行双向宏编程对我来说一直很头疼。

相关内容