clreq
clreq copied to clipboard
按词对应的多行文本
在出版行业中时常会遇到需要按词逐个对应的多行文本,比如 https://mp.weixin.qq.com/s/4LwGhDEzqJ551AmexGptWg 中第三部分的图片。在单个序号下,第一行是黎语IPA,第二行是黎语对汉语的逐词对译,剩下的是整句话的汉语翻译。理想状态下,第一行和第二行要按词对齐,即使句子超出一行的长度,发生换行行为时,多出的部分理应变成第三、第四行,而词对应的表现在所有地方都应该一致。整句话的汉语翻译不参与到这个对应和换行过程中。
这个行为与ruby相似但不完全一样。自然语言顺序一般在上方(第一行),按词注释的部分在下方(第二行或更多的行),且除第一行外的内容都按第一行的词序而不按其原本该有的词序(如果是书写同一种语言或方言的不同正字法,则按词注释部分的词序和第一行一致,但我们仍然可以认为词序以第一行为准)。各部分的字号在原则上也是一致的。
我还不清楚这种表现具体应该如何称呼,但确实是广泛存在,包括文言文与现代白话文的按词对照。具体的需求和在网页上的呈现方式应该值得思考与讨论。
[……]比如 https://mp.weixin.qq.com/s/4LwGhDEzqJ551AmexGptWg [……]
——这个例子里的排版,每个句子都只占一行。这类排版需求,看起来很适合使用表格(隐藏边框/网格线样式)来实现。
[……]即使句子超出一行的长度,发生换行行为时,多出的部分理应变成第三、第四行[……]
——进一步考虑换行(按词、词组或短语换行)的情况,容易联想到使用 CSS 中的 flex-wrap
来实现相关排版。
如果上述的理解正确,是不是可以认为这个问题在有 custom CSS 支持的情况下,基本能被解决?
那后续值得讨论的问题,是不是可以大致理解为:在内容的 markup(HTML)层面,是否应该对这类排版引入语义化的标记方式,并且要求浏览器默认可以渲染出符合这类语义标记的排版结果?
看起来像Interlinear glossed text (IGT),之前的一些讨论:
- https://github.com/r12a/r12a.github.io/issues/23
- https://r12a.github.io/blog/201708.html#20190304
由于目前的文档参照 JLReq 的「行处理」方式撰写,所以这种跨行的需求关注较少。这类例子似乎比较集中地出现在语言学类书籍。但我们是需求文档,不用太关心如何实现,只要讨论:「这种需求是否存在」「是否需要写入文档」「如何把需求写清楚」即可,这就涉及
- 同一行内,各个部分元素(词?词组?)之间的间距有要求么
- 上下行的元素之间的定位有什么要求么(比如,最好是居中对齐?)
等等