2014-01-09 41 views
0

新年快樂!ToS in xslfo with same topic多次問題

我的dita地圖由包含主題的子地圖組成。如果某個主題出現在多個dita子地圖中,則在ToC中會有一個頁碼和鏈接,指的是該主題首次出現在文檔中。

這是因爲主題的ID。 Wen在toc中創建頁面編號(和鏈接)它獲得ID。這個話題出現了兩次,但正如我用同一個ID所理解的那樣。所以當創建鏈接時,它與第一次發生鏈接。

我真的很感謝你的幫助。

+0

嗨 - 如果你正在使用XSLT來生成DITA的FO,你應該張貼一些相關的代碼。如果您的主題在您的TOC中多次顯示,看起來您的xslt會是原因,當然這是假設您正在使用xslt :) – PhillyNJ

回答

1

您使用的是什麼版本的Open Toolkit?這種行爲絕對是一個錯誤,因爲一旦PDF處理已經創建了地圖的「合併」版本並且該主題的重複副本應該被賦予唯一的ID--在PDF生成過程中有相當多的代碼需要管理爲主題分配唯一的ID(我知道,因爲我剛剛在我正在進行的定製中打破了其中的一部分)。

版本1.8是最新的穩定版本,版本1.6.3是我認爲最好使用的最早的版本(舊版本會有1.6.3修復的缺陷或缺少對DITA 1.2功能的良好支持)。

請注意,如果您從同一張地圖生成HTML,您會注意到類似的行爲,即生成的HTML ToC中所有對該主題的引用都將指向一個文件 - 這是預期的HTML行爲,但會使因爲每個主題都會生成一個單獨的HTML文件。

但是,您可以在不同的主題上使用@ copy-to屬性引用主題,爲每個引用賦予主題唯一有效的文件名(就像您創建了主題的文字副本,然後引用這些副本一樣) 。這應該可以解決你的問題,但如果你想要的只是你期望從PDF中獲得的行爲,那麼這應該不是必須的,這應該是行得通的。

乾杯,

艾略特

+0

謝謝Eliot, 我們使用的是舊版本的dita-ot(1.4 0.2)。由於定製化,我不急於快速轉移到最新版本。 您可以讓我知道如何(這是xsl)創建了這些ID嗎?你有什麼建議我應該如何解決這個問題? – user1749707

+0

我真的沒有辦法支持舊版Toolkit的版本。唯一真正的方法是獲取兩個版本並對文件進行比較,例如使用Oxygen的目錄比較或類似的工具。 1.4.3是我在生產中使用過的最早的版本。 – DrMacro

+0

我明白,你可以讓我比較哪些文件嗎?我想我需要比較創建ID的文件。您能否讓我知道最新版本中的哪個文件會創建ID和toc? – user1749707