行的組成

概述

「行的組成」屬於漢字標準格式的高級排版功能,藉由行內文字、標點符號等基本組成元素的調整,提升頁面整體的易讀性。

漢字-西文混排間隙

現代排版中,漢字常同其他文字混排,其中最廣泛者即拉丁字母,此外,希臘字母、西里爾字母等亦時有所見,在漢字同這些字母文字混排時,由於字形特徵迥異,需在二者間加入間隙以達平滑過渡。「漢字標準格式」提供「漢字-西文混排間隙」功能(需配合JavaScript腳本),預設在「漢字-拉丁字母」「漢字-希臘字母」「漢字-西里耳字母」間自動加入寬為0.25em的間隙(可能隨字元對齊致寬度偶有差異)。

示例

拉丁字母及數字

研究發現,全球狂銷的蘋果iPad超省電。根據非營利組織EPRI(電力研究中心),iPad一年電費只需1.36美刀(U.S. Dollar)。


希臘字母

游離輻射可以區分為高能粒子流與高能電磁波,其中高能粒子流包含α粒子、β粒子(+/−)與中子,高能電磁波包含γ射線、X射線與特定波長的紫外線。


西里爾字母

我有學過українська мова,所以русский язык我可以稍微看得懂。

關於本節的詳盡示例,請見測試範例頁·漢字-西文混排間隙

作用範圍

漢字-西文混排間隙預設作用範圍為文件內容body元素,遇下列元素將自行規避。

停用方式

在特定DOM範圍內停用漢字-西文混排間隙

以下示例使用CSS將類別為.warning的容器下的漢字-西文混排間隙隱藏。

.warning hws[hidden] {
  display: none;
}

或是使用JavaScript來清除漢字-西文混排間隙hws元素節點。

var warning = document.querySelectorAll( '.warning' )
var ahws = [].slice.call( warning.querySelectorAll( 'hws' ))

ahws
.forEach(function( hws ) {
    warning.removeChild( hws )
})

停用JS腳本內的.renderHWS()渲染

目前han.js尚未提供定義預設渲染途徑的方法,通過規避renderHWS(),即可停用漢字-西文混排間隙功能。

Han()
.initCond()
.renderElem()
.renderHanging()
.renderJiya()
//.renderHWS()
.correctBasicBD()
.substCombLigaWithPUA()

或,

Han().setRoutine([
  'initCond', 'renderElem', 'renderHanging', 'renderJiya',
  // 'renderHWS',
  'correctBasicBD', 'substCombLigaWithPUA'
]).render()

標點擠壓

漢字排版中,幾乎所有的標點符號皆佔一個漢字的空間,其中,日式點號、括號等符號位在靠近受注漢字一側,保留了半個漢字寬度的空白空間,連續使用多個符號時,字與字間將出現一個漢字寬度的空隙,不甚美觀。「漢字標準格式」提供「標點擠壓」功能(需配合JavaScript腳本),妥善縮減連續標點及行首/行尾標點的多餘空間。

調整前

何謂「標點『擠壓』」呢?
讓我來告訴你何謂「『標點』擠壓」。
「『漢字』標準格式」


調整後

何謂「標點『擠壓』」呢?
讓我來告訴你何謂「『標點』擠壓」。
「『漢字』標準格式」

關於本節的詳盡示例,請見測試範例頁·標點擠壓

停用方式

停用JS腳本內的.renderJiya()渲染

目前han.js尚未提供定義預設渲染途徑的方法,通過規避renderJiya(),即可停用標點擠壓功能。

Han()
.initCond()
.renderElem()
.renderHanging()
//.renderJiya()
.renderHWS()
.correctBasicBD()
.substCombLigaWithPUA()

或,

Han().setRoutine([
  'initCond', 'renderElem', 'renderHanging',
  // 'renderJiya',
  'renderHWS', 'correctBasicBD', 'substCombLigaWithPUA'
]).render()

行尾點號懸掛

行尾點號懸掛功能是「標點禁則」與「標點擠壓」的延伸,將點號懸掛出版心,避免標點禁則影響頭尾對齊或行尾的空間。目前「漢字標準格式」支援頓號、逗號、句號、全形西文句號、,。.四個點號的行尾懸掛。

提示:此功能新增自v3.2.0,並需搭配空格字體han-space.woff方可正常使用。

調整前

请你们告诉我这是怎么一回事……。

把示例给看清楚了,这是一种点号、「开引号」的组合也可以标点悬挂的概念。


調整後

请你们告诉我这是怎么一回事……。

把示例给看清楚了,这是一种点号、「开引号」的组合也可以标点悬挂的概念。

關於本節的詳盡示例,請見測試範例頁·行尾點號懸掛

停用方式

使用Sass變數關閉行尾點號懸掛

$han-hanging-hant: false; // 繁體中文
$han-hanging-hans: false; // 簡體中文
$han-hanging-ja:   false; // 日語

停用JS腳本內的.renderHanging()渲染

目前han.js尚未提供定義預設渲染途徑的方法,通過規避renderHanging(),即可停用行尾點號懸掛功能。

Han()
.initCond()
.renderElem()
//.renderHanging()
.renderJiya()
.renderHWS()
.correctBasicBD()
.substCombLigaWithPUA()

或,

Han().setRoutine([
  'initCond', 'renderElem', 
  // 'renderHanging',
  'renderJiya', 'renderHWS', 'correctBasicBD', 'substCombLigaWithPUA'
]).render()

字元的替換

「漢字標準格式」腳本包含二種字元替換的模式——着重字體效果的「異體字顯示」與着重語意的「訛字(符)修正」(皆需配合JavaScript)。前者不更動DOM的原始文字,僅在顯示時使用異體字或PUA字元;後者則直接替換原始字元,確保語意正確的字符被使用。

請見測試範例頁·字元的替換