鉴于网页输出的目录区域相当狭窄,我想假设较小的网页导航标题,但继续在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处理器
答案 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
。