如何在OOXML中测量行间距?

时间:2013-11-01 01:58:58

标签: openxml

我正在尝试将一些格式规范从.docx模板转换为LaTeX, 并且我正在努力使其完全符合学术挑战。

考虑以下Office Open XML代码段:

            <w:pPr>
                    <w:widowControl/>
                    <w:spacing w:line="312" w:lineRule="auto"/>
                    <w:jc w:val="both"/>
            </w:pPr>
            <w:rPr>
                    <w:rFonts w:eastAsia="Times New Roman"/>
                    <w:sz w:val="20"/>
            </w:rPr>

行间距指定为312 dxa(或15.6 [大]点),字体大小为20个半点(或10 [大]点)。 LibreOffice writer将间距解释为130% proportional

312dxa对应的是什么?它是从基线到基线的距离吗? LibreOffice如何计算130%?

15.6是12的130%,即1.2倍10.(对于单个间距(在LaTeX中),一个好的经验法则是将\baselineskip设置为字体大小的1.2倍。这是我的猜测。

1 个答案:

答案 0 :(得分:0)

根据ISO-IEC-29500-1的第17.3.1.33节,after属性的语义由spacingRule属性修改:

  • spacingRule的值是exactlyatLeast中的任意一个时,它会以带符号的Twips(后记点的二十分之一)度量来表示行之间的距离。
  • spacingRule的值为auto时,它以线的240分之一为单位表示距离。

在OP的示例中,后者适用,并且行之间的间距为312/240 = 130%。

OP最初对行距的测量是一种很好的预感:auto选项的240分数可能基于默认情况,默认情况下,两行10pt类型的基线之间相隔1.2倍字体大小,即240 Twips。在默认情况下,对于给定值autoexactlyatLeast / after具有相同的行为。

但是,如果从字面上看是名义上的问题,那不是要问的正确问题:ISO标准准确指定了OOXML(WML)文档的语法。它详细说明了文档的语义,但是最终的粒度级别超出了标准,因此标准无法给出答案,因为它们是设计决策,而是反映在特定于供应商的实现中。