我花了无数天与东南亚文字中的空格问题作斗争。我从未见过任何发布环境,在使用细空格 \u2009 或全角空格 \u2003 等固定宽度空格位于单词或短语之间时,能产生正确的输出。以下是我观察到的一些具体问题:
- 当前面的单词一直延伸到页边距时,普通空格 \u0020 会在行尾消失,而固定宽度空格要么需要足够的空间才能出现在右页边距之前的行上,要么其宽度会将前面的单词拉到下一行,要么固定宽度空格会单独换行到下一行,实际上相当于缩进了下一行文本。
- 换行算法优先在普通空格处断行,而不是在固定宽度空格处断行,从而产生带有半行文本的丑陋段落。
- 固定宽度空格无法拉伸或缩小以实现完全两端对齐的页边距或美观平衡的段落。只有普通空格字符才能用于这些目的。
- 当用户从应用程序复制粘贴到即时通讯工具等时,固定宽度空格可能会出现异常。
- 手机键盘无法输入固定宽度空格,因此手机应用中的多词搜索会失败。
我找到的解决方案是对窄空格和宽空格都使用普通空格 \u0020 字符。在 PTXprint 中,我使用 SPACE+ZWSP+SPACE 在短语停顿处获得双(或三)空格。在 SAB 中,我使用两个或三个空格字符,并使用包含 CSS white-space: pre-wrap; 的样式来防止 HTML 引擎将多个空格合并为一个空格。在 PTXprint、SAB 或 Indesign 中,我都可以对空格应用自定义样式,使其变宽或变窄。
在 Paratext 中使用固定宽度空格大部分情况下是可行的,尽管标点符号清单会感到困惑。然而,我的偏好是避免在 Paratext 中也使用固定宽度空格,因为它们很难看清。最好使用可见字符(例如在短语停顿处使用逗号),然后在发布时将字符更改为更宽或更窄的空格。
正如 mnjames 所指出的,SAB 在实施更改规则方面几乎与 PTXprint 一样灵活,因此如果你有一个可用的字体,你应该能够在任一程序中获取完美的输出。
I've spent many, many days wrestling with space issues in Southeast Asian scripts. I have NEVER seen a publishing environment in which fixed width spaces such as THIN SPACE \u2009 or EM SPACE \u2003 produce correct output when used between words or phrases. Here are a few specific problems I have observed:
- Whereas a normal SPACE \u0020 will disappear at the end of a line when the preceding word reaches all the way to the margin, a fixed width space will either require sufficient space to appear on the line before the right margin, or the width of the space will pull the preceding word down to the next line, or the fixed width space will wrap to the next line alone, effectively indenting the next line of text.
- Line break algorithms prioritize breaking at a SPACE higher than at fixed width spaces, producing ugly paragraphs with half-lines of text.
- A fixed width space cannot be stretched or shrunk in order to achieve fully justified margins or nicely balanced paragraphs. Only a normal SPACE character works for these things.
- A fixed width space may appear strangely when the user copy-pastes from an app into a messenger, etc.
- Phone keyboards can't type a fixed width space so a multi-word search in a phone app will fail.
The solution that I have found is to use normal SPACE \u0020 characters for both narrow and wide spaces. In PTXprint I use SPACE+ZWSP+SPACE to get a double (or triple) space at phrase breaks. In SAB I use two or three space characters, with a style containing CSS white-space: pre-wrap; to prevent the HTML engine from collapsing multiple spaces into a single space. In either PTXprint, SAB, or Indesign I can apply custom styles to the space to make it either wider or narrower.
Using fixed-width spaces within Paratext works mostly OK, though the punctuation inventory gets confused. My preference, however, is to avoid using fixed-width spaces in Paratext too because they're difficult to see. It's better to use a visible character (e.g. a comma at phrase breaks) and then change the character to a wider or narrower space at publication time.
As mnjames indicated, SAB is almost as flexible as PTXprint when it comes to implementing change rules, so you should be able to get perfect output in either program, if you have a working font.
机器翻译自 English