我想让(不是)总是在我的xsl-fo输出中显示为上标。我无法将其包装在< sup>因为它会影响我们的翻译/本地化过程。可以用< fo:character />来完成吗? ?
答案 0 :(得分:0)
请花时间仔细研究您的问题。 <sup>
标记用于HTML,而不是XSL-FO。
相反,您可以按如下方式实现上标:
<fo:inline vertical-align="super">
The said character.
</fo:inline>
使用fo:inline
属性baseline-shift
也可以。
这可能与您的问题有关:How to match <sup>value</sup> in XSL-FO
编辑:在输入XML方面,最佳做法(即最方便)是在代码本身中指示额外的格式。如果格式更改,您可以将段落分成几个“运行”(例如Office OpenXML,这大约是它的样子):
<paragraph>
<run>This is normal text</run>
<run>This is superscript</run>
<run>Normal text again</run>
</paragraph>
或者将上标元素嵌入到文本内容中,如下所示:
<paragraph>
<text>This is normal text <font align="super">superscript text</font>normal text</text>
</paragraph>
现在,尝试将XML转换为适合一个或另一个表示。例如,看看xsl:character-map
。可以将®字符映射到输出树中的<font align="super">®</font>
。