進階雙向支援

有許多內容可讓您設定,以便在文件中啟用雙向支援。

範本中的雙向內容

部分範本元素具有 direction 內容。 這個內容的值可以設為 ltr(左到右)、rtl(右到左)、contextualempty(預設值)。如果這個內容的值是空白,則對應元素的方向會繼承而來,或具有現行文件值的預設值。

下列範本元素具有 direction 內容:
  • 儲存器段落表格資料格清單項目:這個內容會影響未明確定義方向的每一個邏輯段落的文字。
  • 表格:這個內容定義直欄的顯示方式(從左到右,或相反方向),並影響未明確定義方向的每一個資料格。
  • 清單:這個內容影響未明確定義方向的每一個清單項目。
  • 文字:這個內容只影響現行元素的內容。無法繼承自其他元素,或被其他元素所繼承。

您可以從 Document Studio 中的「內容」視圖來設定 direction 內容。

「內容」視圖中設定的「方向」內容

文件規格中的雙向內容

執行時期 meta 資料有下列的雙向特定內容,可用來控制所產生之文件的佈置,及其文字內容的基準方向。

類型 敘述
bidi truefalse(預設值) 作為觸發程式來開啟或關閉雙向特定功能。
document direction ltrrtl 定義文件的佈置。如果文件方向和輸出語言環境 meta 資料內容都是空白,則文件方向會設為 ltr。如果文件方向是空白,則其實際執行時期值視 output locale 內容的值而定。對於雙向語言環境,這是 rtl。 對於其他語言環境,這是 ltr
text direction ltrrtlcontextualempty(預設值) 定義基本文字方向。empty 表示預設文字方向與文件方向相同。

在 Launcher 中,您可以使用「內容」視圖或「配置 meta 資料內容」視窗來設定內容:

在文件規格的「內容」視圖中設定雙向內容

Rational® Publishing Engine 範本中可以使用內部變數 _sessionInfo 來參照雙向內容:

Script 表示式中的階段作業資訊

從使用內建 RRDG 引擎的產品中,可透過程式設計方式來設定雙向內容。 例如,以 Rational DOORS® Next Generation 而言,我們可能有如下的程式碼:
LocalDocumentGenerator docGen = new LocalDocumentGenerator(new RRDGEngineImpl());
    String config = docGen.getConfigurationPath(configFolder.toURI());
    DocumentSpecificationBuilder builder = new DocumentSpecificationBuilder();
    RPEDocumentSpecification docSpec = builder.create(config);
    RPEMetadata metadata = docSpec.getRuntime().getMetadata();
    metadata.addProperty(new Property(RPEConfigConstants.PROPERTY_DOCUMENT_DIRECTION, new Value("","rtl"));
註: 舊版 Rational Publishing Engine 使用 Microsoft Word 輸出的 bidi 內容來開啟或關閉雙向特定功能。 已不再支援這個內容,但仍然顯示在「Word 輸出內容」視圖中。

決定元素及其內容在執行時期的基本文字方向

元素的方向指定其內容的對齊方式、佈置及基本文字方向。

儲存器段落表格表格資料格清單清單項目有其自己的 direction 內容。 如果這個內容的值是空白,則對應元素的實際方向會繼承自最近的上代(具有非 empty 方向內容)。如果最後發現沒有東西可繼承,則由文件的 document direction 內容定義元素的方向。

如果儲存器段落表格表格資料格清單清單項目有其自己或繼承的 contextual 方向內容,則這些元素的實際方向由其文字內容決定。 不過,如果這不可能(文字未直接放入現行元素中,或只包含中性字元),則實際方向會繼承自最近的上代(具有非 empty 和非 contextual 方向內容)。 如果最後發現沒有東西可繼承,則由文件的 text direction 內容定義元素的方向。

如果儲存器段落表格表格資料格清單清單項目的第一個直屬子項是具有非 empty 方向內容的「文字」元素,則這些元素的實際方向由這個「文字」元素經過解析後的方向決定。

如果表格清單有其自己或繼承的 contextual 方向內容,則這些元素的實際方向會繼承自最近的上代(具有非 empty 和非 contextual 方向內容)。 如果最後發現沒有東西可繼承,則由文件的 document direction 內容定義元素的方向。

如果「文字」元素的方向不是 empty,則這個元素的內容(只能是邏輯段落的部分)會在產生的文件中顯示為隔離的文字區段,並根據這個內容來格式化。 如果「文字」元素有其自己的 contextual 方向內容,則對應文字區段的基準方向由其內容決定。 如果文字區段只包含中性字元,則由文件的 text direction 內容定義基本文字方向。

目錄表格目錄圖例目錄的方向由文件的 document direction 內容定義。 這僅指定它們的佈置(例如,區段編號、其名稱及頁碼的相對位置)。 區段名稱中的文字(不論這些元素的任何方向)看起來應該如同出現在文件內文中一樣。

表格標題圖例標題的方向由文件的 document direction 內容定義。 這指定它們的佈置(例如,標籤和內容的相對位置)。 標題各部分的基本文字方向由文件的 text direction 內容定義。

註腳的方向由文件的 document direction 內容定義。 這指定內容的佈置(例如,註腳號碼、其內容及其對齊方式的相對位置)。 註腳內容的基本文字方向由文件的 text direction 內容定義。

註解的方向未定義。其內容的基本文字方向由文件的 text direction 內容定義。

標頭標底的方向由文件的 document direction 內容定義。

處理 Rich Text (XHTML)

文字元素的內容可以由 XHTML 片段來呈現。 這些片段會當成範本元素的集合來剖析和處理:
  • P、H1-H6 - 當成具有不同樣式的段落
  • DIV - 當成儲存器
  • TABLE - 當成表格
  • TD - 當成表格資料格
  • OL、UL - 當成清單
  • LI - 當成清單項目

在 P、DIV、H1-H6、LI、TD 等區塊層次 html 元素中,以及 TABLE、OL 和 UL 中,樣式 direction 和屬性 dir 的值會經過辨識並轉換成 Rational Publishing Engine 格式化內容 direction。如果現行 html 元素同時定義這個樣式和屬性,則會使用 dir 的值。設定現行元素的內容

區塊層次 html 元素的內容當成具有不同樣式的一連串文字元素來處理。 您可以使用具有樣式 direction 的 html SPAN 元素。 這些 SPAN 元素會當成具有樣式 direction 內容的文字元素來處理。 (不過,這些元素內不應該包含其他任何標記。不支援含有其他標記的 SPAN 元素,因為可能會造成非預期的結果。)