You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

样式中的Tracking是什么?如何在XSLT中实现Tracking与Kerning样式?

Tracking 是什么?

Tracking(字符间距)是对文本中所有字符(包含空格)应用统一的间距调整,和Kerning(字偶距)的区别在于:Kerning仅针对特定字符对(比如"AV""Ty"这类相邻字符)做精细化间距微调,而Tracking是全局统一调整所有字符的间距。数值为负时缩小字符间距,为正时扩大。

在XSL中实现Tracking与Optical Kerning

XSLT本身只是XML转换工具,样式实现依赖于它输出的目标格式(比如HTML/CSS、XSL-FO),以下分两种常见场景说明:

1. 输出HTML/CSS场景

Tracking实现

用CSS的letter-spacing属性控制,对应需求中的Tracking: -3,需要明确单位(像素、em或字体单位等),示例XSLT代码:

<xsl:template match="text()">
  <span style="letter-spacing: -3px;">
    <xsl:value-of select="."/>
  </span>
</xsl:template>

若规范未指定单位,可尝试-0.15em这类相对单位,适配不同字体大小。

Optical Kerning实现

CSS标准的font-kerning属性目前仅支持auto/normal/none,但现代主流浏览器(Chrome、Firefox等)支持font-kerning: optical(属于CSS Fonts Module Level 4的草案特性),可直接使用:

<xsl:template match="text()">
  <span style="font-kerning: optical; letter-spacing: -3px;">
    <xsl:value-of select="."/>
  </span>
</xsl:template>

如果需要兼容旧环境,可选用内置光学字偶距数据的专业字体,再设置font-kerning: normal,让浏览器启用字体自带的字偶距规则。

2. 输出XSL-FO(用于PDF生成,如Apache FOP)场景

Tracking实现

使用XSL-FO的letter-spacing属性,示例:

<xsl:template match="text()">
  <fo:inline letter-spacing="-3pt">
    <xsl:value-of select="."/>
  </fo:inline>
</xsl:template>

部分FO处理器也支持character-spacing属性,效果类似,可根据处理器文档选择。

Optical Kerning实现

XSL-FO规范支持kerning-mode属性,设置为optical即可启用光学字偶距,示例:

<xsl:template match="text()">
  <fo:inline letter-spacing="-3pt" kerning-mode="optical">
    <xsl:value-of select="."/>
  </fo:inline>
</xsl:template>

注意:需确认使用的FO处理器(如Apache FOP、RenderX XEP)支持该属性,部分旧版本可能仅支持auto/normal/none。

内容的提问来源于stack exchange,提问作者Rito Sarkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 10:12:47