如何在web输出中指定目录的navtitle但不在pdf输出中?

时间:2013-01-29 02:16:03

标签: xml xml-documentation dita

鉴于网页输出的目录区域相当狭窄,我想假设较小的网页导航标题,但继续在PDF输出中显示较长的主题标题。

以下标记似乎根本不起作用(有或没有audience属性):

<task id="guid-76a10a16-9952-44fa-ad32-9b9cf2c3eee6">
    <title>Primary Topic Title</title>
    <titlealts audience="web">
        <navtitle>Short Title</navtitle>
    </titlealts>
</task>

在地图中添加locktitle="yes"似乎没有任何区别:

<topicref type="task" href="primary-topic-title.dita" locktitle="yes"/>

以下适用于网络,但不幸的是还在PDF目录中提供了短标题:

<topicref type="task" href="primary-topic-title.dita" locktitle="yes">
    <topicmeta>
        <navtitle>Short Title</navtitle>
    </topicmeta>
</topicref>

我尝试使用以下内容单独定位Web和PDF,但这导致在转换过程中发生错误,指出我试图引用处理上下文之外的主题。这适用于Web,但在检查PDF输出时,使用“file:/”协议链接到“.dita”文件,而不是PDF文件中的交叉引用。

<topicref audience="pdf" type="task" href="primary-topic-title.dita"/>

<topicref audience="web" type="task" href="primary-topic-title.dita" locktitle="yes">
    <topicmeta>
        <navtitle>Short Title</navtitle>
    </topicmeta>
</topicref>

注意:我正在使用XML Mind的Ditac处理器

2 个答案:

答案 0 :(得分:2)

虽然我并不熟悉DITAC工具,但我将介绍在DITA Open Toolkit和其他提供DITA规范全面支持的工具中可以使用的方法。

您的原始方法是正确的方法:

<task id="guid-76a10a16-9952-44fa-ad32-9b9cf2c3eee6">
    <title>Primary Topic Title</title>
    <titlealts audience="web">
        <navtitle>Short Title</navtitle>
    </titlealts>
</task>

您的处理必须使用不同的ditaval文件进行PDF和Web输出。 PDF ditaval文件必须包含:

<prop action="exclude" att="audience" val="web" />

web ditaval文件必须包含:

<prop action="include" att="audience" val="web" />

答案 1 :(得分:1)

不幸的是,DITA只根据输出类型过滤print属性,不能直接在navtitle元素上使用。你可以用

<topicref print="printonly" href="primary-topic-title.dita"/>
<topicref print="no" href="primary-topic-title.dita" locktitle="yes">
  <topicmeta>
    <navtitle>Short Title</navtitle>
  </topicmeta>
</topicref>

但这会重复主题参考。根据{{​​1}}添加自定义分析属性可能更容易,并根据该属性进行过滤。这样你只能调整props