还在用 InDesign?试试 speedata publisher

之前介绍了 CSS paged media 用 XML 记笔记 - #13,来自 LdBeth

最近发现对标 InDesign 那样的图文混排內容,在 Github 上有一个 AGPLv3 的排版引擎

3 个赞

这个算是LaTeX平替吗?试了下好像不支持中文?

支持中文的,只是要配置包括中文的字体罢了。

这个是 InDesign XML 自动排版的平替,底层是 LuaTeX,适合杂志报纸类图文內容。

这还不如整个 latex 文档类直接写 latex,不必去调试 xml 转 tex 对不对了。

这年头要做到纸质出版质量,免费(就不提开源了)只有 TeX 一家而已。

Btw, 是有人用 Roff 出书,这是极品中的极品,不算数~

LaTeX 导出 HTML 质量不够我的要求,更没有 XML validation 排除格式错误,所以我一开始写就用 DocBook XML。 Roff 我也用过,你看到我 gopher 首页的文章就是用 troff 排版的。除了对汉字支持实在不太行,现代版的 roff 出书的话质量不比 TeX 差多少。

之前提到过的 neatroff,用的 TeX 的 line break algorithm。

另外,这个 Speedata publisher 对 TeX OTR (OutpuT Routine) 的封装其实很不错,只靠 LaTeX 是很难做出来的。如果你不知 OTR 是干什么的,那可能只是用用现成模版的轻度用户,当然用不到 publisher,例子: multicol 只是 OTR 的一种简单应用罢了。

今天发现了这个项目,star数好像涨的挺快的

3 个赞

简单试了下,排版质量比较扎实,在笔记方面比 LaTeX 方便很多。 最主要体积也不大,不到 20MB 就搞定了。

可以当成 roff 的上位替代品

这个的主要问题是编辑器支持还不完善(等他那个issue解决了就好了。

https://gitee.com/XmacsLabs/mogan/releases/tag/v1.1.2-rc2 我在今年春节的时候,优化了墨干的中英文混合排版的间隔,感兴趣可以试试,目前我还是硬编码的。

2 个赞

有没有像 CTEX 宏包那样支持对中文标点间距进行调节?还有就是我比较在意能不能调公式字体,这个 TeXmacs 目前是怎么实现的?能不能直接用 OTF,还是要专门的字体格式。


试了下,公式字体能改,但⋯⋯有几个对习慣了 TeX/LaTeX 的默认行为后很劝退的点。

  1. 乘法两个字母间距过大。这个是主观审美,但总要能改吧?
  2. 强制变量显示成斜体。好像用的还是伪斜体这样属于排版大忌的方法。这个其实在 TeXmacs 里是能调的,但⋯⋯总体上来说,好像这个 GUI 是免費送的,最后还是要回到引擎上来。
  3. differential variable dxd 是 upright。虽然中国的国标是这样,但这个还是非主流了。

至少 typst 在这几个点上都做得和 LaTeX 统一风格了。TeXmacs 还是缺少对排版细节的高要求。

1 个赞

感觉很不错的样子,希望他们能顺便实现一个矢量做图引擎,和排版引擎交互,实现 ConTeXt 里 MetaFun 的效果⋯⋯

UPDATE: 仔细看了一下,还是先不管什么绘图引擎了,这个系统目前在基本的排版需求上的完成度和成熟的系统差距还是很大的⋯⋯

这个是以LaTeX为标准。目前TeXmacs开发者社区还不够壮大。我认为这只是实现上的问题,无足轻重,时间会证明一切。

可以改,有好几个宏包 invisible-multiply, narrow-multiply 等等。看代码,其实就是一个变量 spacing-policy 的值。遗憾的是这个变量没有文档。

什么意思?这个如果在数学里面没有标准吧?如果是工程,那 ISO 80000-2 规定的是 upright:typography - What's the proper way to typeset a differential operator? - TeX - LaTeX Stack Exchange

是,我不信不至于连这都不能改,但在文档都不怎么全的情况下让我用还是不太可能花这个时间。TeX primitive 好歹有人已经写了详细的文档了。

至于用不用 upright,传统的铅字排版上,在美国是用 italic 的,(Modern Book Composition,1904 年,这本书也是 TeXbook 引用的书)

http://tiro.com/Articles/mathematical_typesetting.pdf

另,我花了点时间考证了下,dx一开始就是这么排版的

(这个有点离题,但我不妨也离题下) 你好像是引用 Earliest Uses of Symbols of Calculus 并且在 MSE 上加了一个答案。但那句话你好像读错了。原话是(他们首先发现)Lagrange 用 ψ’ 代替 dψ/dx。那句话就出现在你截图的下面,就是《全集》第25页定理16,原话说 Qu’on dénote, pour plus de simplicité, la quantité … par …,是指这句话把那个导数简记为 ψ’。

然后你引用的那段话第一句说清楚了这个记号的最初来源是 Leibniz 手稿:The symbols dx, dy, and dx/dy were introduced by Gottfried Wilhelm Leibniz (1646-1716) in a manuscript of November 11, 1675 (Cajori vol. 2, page 204).

至于分析“为什么”,除非有文献记录原因,否则现在恐怕无法分析。不用说那么早的文献,今天的文献很多记号是否用斜体还是不统一的。还有比如说 en-dash vs em-dash 之类的,很多时候标准也不统一。

Leibniz 手稿的整理排印是比较后来(1900往后)的事,手写材料并不适合做排版的参考, Nouvelle méthode 是我在不熟悉非英语材料情况下能找到的最早的铅字排版样本。而 Theodore 的书是我能找到最早出现 dx 的排版指导书

en/em 这种每本英文的排版书和语法书都会讲的内容,还搞不清楚就太丢人了

总之,我拿到这些例子足够说明 dx 的主流排版方式在 TeX 出现前的百年间都是这样,绝对是合理的要求。

我只补充两点:

  1. 你引用的似乎不准确(“一开始"源于误读)。此外你似乎没注意到那个 Lagrange 的那篇 memoire 是收录在《全集》里面,你说的印刷品也是《全集》的印刷品,远晚于 memoire 的出版日期。在你引用的 Earliest 那篇文章里面,往下翻到向量微积分那一节,有一个比《全集》更早的出版文献中 d 用的是 upright。当然这些只是我较真了一下: 我没有对使用 italic d 提出异议,而是不同意"用 upright d 不合理”。

  2. 就 dx 的 d 是否 upright,和软件没有太大关系。在 LaTeX 里面可以输入 upright 也可以 italic,在 TeXmacs 同理(只是 TeXmacs 给了一个简单输入 upright d 的方法)。这是遵从哪个标准的问题。

我说错了。我想说 hyphen vs. en-dash。我没仔细去查,但是在比较好的期刊的文献里(记得一次是在 Selecta Math),在 References 里面看见过几次混用的(那是偶然看见)。

我直接去翻了下原文:https://babel.hathitrust.org/cgi/pt?id=bc.ark:/13960/t05x30s03&view=1up&seq=702

看到 italicized d 没有?

为什么这本书里会混用 upright d 和 italicized?

因为作者定义了 upright d 表示 (differential form of) quarternion (pg 570),并明确说了:“treat dq as a simple symbol, or as if it were a single letter”

这反而说明了没有特殊情况,用 upright d 是不合理的

顺带这个 del operator 的定义现在通常用 \delta 来强调 partial differentiation,这本书的作者是在研究 quarternion 的时候发现的这个 operator,并且因为可以对 quarternion 适用就直接用了 upright d,但是他是完全意识到如果是个普通函数就用 italicized d 的。

这就更不能搞错了,N dash 只用在连接数字的时候,hyphen 用来分词。更何况,传统上很多场景 N dash 是干脆不用的。

显然这会搞错就是直接给 LaTeX 喂 ASCII 纯文本,完全没考虑到转义导致的低级错误