如何在OOXML中设置OpenType属性 实现数字lining与old style格式配置
OOXML指定OpenType数字样式方案
可以在OOXML中指定特定OpenType属性,你需要的数字lining/old style格式切换可通过WordprocessingML的数字样式扩展属性实现,具体操作如下:
前提配置
首先需要在OOXML文档的<w:document>根节点声明2010扩展命名空间:
xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"
核心控制属性
通过<w14:numForm>标签控制数字样式,共有2个可选值:
oldStyle:旧样式数字,部分数字存在下沉/上升部,适配小写文本排版lining: lining数字,所有数字高度与大写字母一致,统一对齐基线
代码示例
Old Style数字配置
<w:r> <w:rPr> <!-- 指定支持对应特性的字体 --> <w:rFonts w:ascii="Garamond Premier Pro" w:eastAsia="Garamond Premier Pro" w:hAnsi="Garamond Premier Pro" /> <!-- 开启old style数字特性 --> <w14:numForm w:val="oldStyle"/> </w:rPr> <w:t>0123456789</w:t> </w:r>
Lining数字配置
<w:r> <w:rPr> <w:rFonts w:ascii="Garamond Premier Pro" w:eastAsia="Garamond Premier Pro" w:hAnsi="Garamond Premier Pro" /> <!-- 开启lining数字特性 --> <w14:numForm w:val="lining"/> </w:rPr> <w:t>0123456789</w:t> </w:r>
效果示例

上方为old style数字,下方为lining数字,二者使用相同Garamond Premier Pro字体,仅OpenType属性配置不同
补充说明
- 该属性需要目标字体本身支持对应OpenType特性才会生效
- 如果需要同时控制数字的宽度特性,可以搭配
<w14:numSpacing>标签,可选值为proportional(比例宽度,不同数字宽度不同)、tabular(等宽,所有数字宽度一致,适合表格排版)
内容的提问来源于stack exchange,提问作者yannis
相关产品推荐
相关产品推荐

