通过了自己那道测试的小册子问题

如果你在 8 月 24 日到 9 月 3 日之间把 Publisher 小册子转成过 Word,请再转一次。文字排到了错的面上。现在已经修好,这篇文章说明它是怎么发生的。

出了什么问题

小册子不是按阅读顺序印的。第 1 页和最后一页共用一张纸,第 2 页挨着第 3 页,整本要折起来才读得通。像这样把页面重新排到纸上,叫做拼版。我们做拼版,是为了让你的小册子印出来和 Publisher 印的一样。

从一个文本框流到下一个文本框的文字,在这整个过程里必须按正确的次序串接着。Word 不接受往回走的串接链。我们的拼版有时正好造出这种倒着走的链,一旦出现,每一面就会取到正文里不属于它的那一段。

没有任何内容丢失。每个字都还在文件里,只是在纸上的位置错了。我们看过的一份教堂通讯里,固定的“Worship Notes”栏直接印在了当周的日程表上面。

影响了谁

只有 Word 文件。PDF 和 InDesign 的输出从未受影响。

只有小册子,也就是页面会被拼到同一张纸上的文件。普通文档、传单和信函都原样通过。

在我们的测试集里,897 个小册子文件中有 25 个出了问题。其余 872 个和以前完全一样。

这个问题一旦发生就很明显:文字出现在一个明显不该在的面上。如果你的 Word 文件读起来是通的,那它就是对的。

它是怎么溜过去的

这部分值得写下来。

每一次引擎改动,上线前都要在和 Publisher 自身输出的对比测试中胜出。这次改动的测试只问了一个问题:我们的页数和 Publisher 的页数一致吗?在检查过的每一个小册子上都一致。改动就发布了。

那道测试从来没有打开一页渲染结果看一眼。

一本文字错位的小册子,页数一点不差。所以测量说这次改动是改进,而就它所测的那一项而言,确实是。代码做的正是我们要求的事。是我们问错了问题,然后拿到了一个很肯定的答案。

这就是老实的说法。它不是藏在代码角落里的微妙缺陷,而是一个明摆着的缺陷,站在一道没在看的测试面前。

怎么修的

改了两件事。

先改行为。如果一本小册子没法在不打乱正文顺序的前提下拼版,我们就不拼。你拿到的是未拼版页数下的正确文字。以散页形式到手的小册子,一眼就能看出来,也好处理;段落被打乱的小册子,两样都不占。

内容正确优先于页数一致。这个优先顺序以前没有写在任何地方,现在写下来了。

再改测试。对任何会把文字在文本框之间搬动的改动,页数一致不再能单独作为证据。如果一个改动可能重排文字,就必须有人去看文字本身。

本次更新的其他内容

Word 文件。 印章和爆炸形状按真正的图形到达,不再是普通矩形。装饰边框 BorderArt 以图片形式过去,所以花卉边框和回纹转角能真的出现在页面上。成组的对象在 Word 里仍然是一组,不会变成一堆散件。

InDesign 和 Affinity 文件。 fi 和 fl 这类字母组合按 Publisher 的画法拆成单个字母来画。

所有格式。 描边文字保住描边颜色,不再出成空心字。沿对角线旋转的剪贴画不会再因为宽高被对调而压扁。另外,标为不加下划线的词,现在优先于给所有文字加下划线的段落样式。

上一轮引擎工作见八月末的更新

如果你的小册子转错了,再转一次。预览免费,一次性支付 49 美元后转换次数不限。