模板:圖書排版/doc
該模板用於書籍內容頁(如「傷寒論/章節」頁面)的正文排版,本身不輸出任何可見內容,只通過 TemplateStyles 引入 Template:圖書排版/styles.css。
用法
在頁面頂部引入模板、在正文結束處閉合容器(153 個既有頁面均已如此):
{{图书排版}}
(正文……)
{{图书排版/尾}}
頭部與尾部必須成對。 頭部模板總是輸出一個基礎容器 <div class="tushu-body">(不傳參數時也一樣,只是不帶版式類),閉合靠 {{图书排版/尾}} 或文末手寫 </div>。
- 漏寫尾部不會報錯,但容器會自動延伸到頁面末尾,把後續章節與頁尾導航一併包進版式里。
- 尾部應放在
----與<references />之上,使參考資料節留在容器內、頁尾導航與分類留在容器外。
樣式只作用於正文段落與標題:
- 段落
<p>:字號、行高、字距、首行縮進、兩端對齊、斷行規則 - 標題
<h1>–<h6>:字號階梯、行高、字距、字重
表格、列表、鏈接、引用、代碼塊、mark/q/sup/sub 等元素不受影響——導航框、目錄表、信息框的版式不會被改動。
默認排版效果
字體分派:中文 / 西文 / 標點
樣式用兩個 @font-face 配 unicode-range,把不同碼位分給不同字體:
| 字符範圍 | 實際字體 | 說明 |
|---|---|---|
| 拉丁字母、數字(ASCII) | Georgia 等西文字體 | 保留原有西文觀感 |
| 漢字、假名等 CJK | Noto Serif SC → Source Han Serif SC → Songti SC → SimSun → PingFang SC Regular → … | 宋體類優先(思源宋體 → macOS 宋體 → Windows 宋體),苹方、雅黑等黑體僅作最後兜底;可用名稱因系統而異 —— Windows 上安裝的苹方其註冊名為 PingFang SC Regular,寫成家族名 PingFang SC 或 macOS 的 PingFangSC-Regular 都不會匹配。(local() 只認字體全名 / PostScript 名)
|
| 中文標點(引號、破折號、頓號、書名號等) | Noto Serif SC → Source Han Serif SC → Songti SC → SimSun(宋體類) | 標點占滿一個全角字身,兩側留白正常 |
為什麼標點要單獨處理:全角引號 “ ” 的碼位是 U+201C / U+201D,Georgia、苹方、微軟雅黑都含這兩個字形,且做成西文風格的窄引號——此前因此出現「引號與後一個字貼在一起」。現在標點固定交給宋體類全角字體,任何設備上都不會再貼字。
字號階梯
| 元素 | 字號 | 行高 |
|---|---|---|
<h1> |
32px | 48px |
<h2> |
28px | 36px |
<h3> |
24px | 36px |
<h4> |
20px | 24px |
<h5> |
18px | 24px |
<h6> |
16px | 24px |
正文 <p> |
17px | 繼承皮膚(約 1.5–1.6) |
段落與對齊
- 字距
.02em(標題 h1–h3 為.05em) - 首行縮進
2em - 兩端對齊
text-align: justify - 行高
2.25(2026-09 起為默認——此前正文行高不固定、繼承皮膚的值;原「行間注」參數的行距即此值);標題行高固定為 48/36/36/24/24/24px - 非中文段落自動左對齊、取消縮進
- 長串西文自動斷行(
overflow-wrap/hyphens) - 相鄰標題自動收緊間距(
h1+h2、h2+h3… 上邊距 12px)
實時效果(本頁即為演示):
刻《仲景全書》序
歲乙未,吾邑疫癘大作,予家臧獲率六七就枕席。予曰:「吾聞是書於家大夫之日久矣,而書肆間絕不可得。」君曰:「予誠有之。」Latin check: Georgia ABC abc 0123 — 「quoted latin」。
可選版式(模板參數)
下列版式默認不生效;給模板傳參數即可打開對應容器(英文別名等效)。
參數可以疊加——多寫幾個,類名會拼在同一個容器上,兩種版式同時生效:{{图书排版|古籍|限宽}} → <div class="heti--ancient heti--line-length">。
| 參數 | 英文別名 | 容器類 | 效果 |
|---|---|---|---|
古籍 |
ancient |
heti--ancient |
標題居中、正文宋體(序跋) |
诗词 |
poetry |
heti--poetry |
居中、不縮進 |
楷体 |
kai |
heti--kai |
楷體字體棧 |
限宽 |
line-length |
heti--line-length |
正文限寬 42em 並居中(2026-09 改回參數觸發,不再默認生效) |
双栏 |
columns-2 |
heti--columns-2 |
三欄/|四栏 參數已於 2026-09 移除——很少用到;需要時手寫 <div class="heti--columns-3"> 或 <div class="heti--columns-4">)
|
詩詞體(參數 诗词)
正文居中、不縮進,適合詩詞、銘文。
{{图书排版|诗词}}
(诗句,每句之间空一行)
{{图书排版/尾}}
靜夜思
床前明月光,疑是地上霜。
舉頭望明月,低頭思故鄉。
分欄詩詞(推薦配 <poem>)
Poem 擴展的 <poem> 負責把換行變成 <br>(因此詩句不必每句空行),|双栏 負責分欄並把詩句改為左對齊(|诗词|双栏 組合與參數順序無關)。詩詞名與作者放在分欄容器之外,只有詩塊參與分欄。
{{图书排版|诗词|双栏}}
==静夜思==
<span class="heti-meta">唐·李白</span>
<poem>
床前明月光
疑是地上霜
举头望明月
低头思故乡
</poem>
{{图书排版/尾}}
該組合也可手寫為 <div class="heti--poetry heti--columns-2">(與 |诗词|双栏 等價,參數順序無關)。
注意 |双栏 自帶 max-width: none(多欄需要寬度),不要再疊加 |限宽。
用法(尾部可選,見#容器與閉合):
{{图书排版|古籍}}
(正文)
{{图书排版/尾}}
下方各節仍可用手寫 class 的方式實現同樣效果。
古籍體(參數 古籍)
標題居中、正文宋體,適合序跋。
{{图书排版|古籍}}
(正文)
{{图书排版/尾}}
刻《仲景全書》序 予曰:「吾聞是書於家大夫之日久矣,而書肆間絕不可得。」君曰:「予誠有之。」
多欄(參數 双栏)
把正文排成兩欄。注意不要疊加 |限宽——多欄自帶 max-width: none(分欄需要寬度),限寬 42em 再分兩欄每欄只剩約 350px。欄寬類(heti--columns-16em 到 heti--columns-48em)無參數入口,需要時手寫。
{{图书排版|双栏}}
(较长的正文)
{{图书排版/尾}}
予曰:「吾聞是書於家大夫之日久矣,而書肆間絕不可得。」君曰:「予誠有之。」吾吳和緩明卿沈君南昉在海虞,藉其力而起死亡殆徧,予家得大造於沈君矣。不知沈君操何朮而若斯之神,因詢之。
字體族切換
| class | 中文字體 |
|---|---|
heti--hei(默認) |
黑體(PingFang SC / Microsoft YaHei UI) |
heti--song / heti--serif / heti--classic |
宋體(Songti SC / SimSun) |
heti--kai |
楷體(Kaiti SC / STKaiti / KaiTi) |
字體族類是這套樣式里少數沒有模板參數入口的(例外出:|楷体 即 heti--kai),需要時這樣手寫。注意只寫這一個類名,不要寫成 class="heti heti--song"——本站沒有引入 heti 的 .heti 容器類。
宋體示例:予曰:「吾聞是書於家大夫之日久矣。」
楷體示例:予曰:「吾聞是書於家大夫之日久矣。」
輔助類速查
| class | 用途 |
|---|---|
heti-meta |
落款、副題(塊級、不縮進) |
heti-verse |
詩句(居中、不縮進) |
heti-large / heti-x-large / heti-small / heti-x-small |
字號微調 18px / 20px / 14px / 12px |
heti-fn |
文末注釋區 |
heti-hang |
懸掛縮進 |
heti-em |
已移除(2026-09):着重號改由 {{着重}} 提供(類名 em-cjk,樣式獨立在 Template:着重/styles.css)
|
heti-list-latin |
用在 <ol> 上:A B C…(其內層 ol 為羅馬數字,再內層為小寫字母)
|
heti-list-han |
暫不可用:漢字編號(cjk-ideographic)不在 TemplateStyles 白名單內,規則已被剔除,僅剩 ol 的數字回退
|
輔助類演示
下面每個類的效果都是本頁實時渲染的。
heti-meta(落款、副題:塊級、不縮進)
<div class="heti-meta">万历己亥三月谷旦 海虞清常道人赵开美序</div>
heti-verse(詩句:居中、不縮進)
<div class="heti-verse">床前明月光,疑是地上霜。</div>
heti-large / heti-x-large / heti-small / heti-x-small(四檔字號)
<div class="heti-large">……</div>
heti-fn(文末注釋區)
<div class="heti-fn"> <ol> <li>……</li> </ol> </div>
- 趙開美,字清常,海虞(今江蘇常熟)人,明代刻書家。
- 所刻《仲景全書》為《傷寒論》傳世重要版本之一。
着重號(已獨立為模板)
heti-em 類已於 2026-09 從本樣式表移除,着重號改由 {{着重}} 提供(類名 em-cjk,樣式在 Template:着重/styles.css)——好處是不再依賴本模板。
{{着重|成无己}}
予讀而知其為成無己所解之書也。
heti-list-latin(列表編號:拉丁字母)
<ol class="heti-list-latin"> <li>……</li> </ol>
- 太陽病
- 陽明病
- 少陽病
heti-hang(懸掛:用於標題內落款。此類為 position:absolute 且未設偏移量,單獨使用沒有視覺變化,需按具體版式配合定位屬性)
<h2>刻《仲景全书》序<span class="heti-hang">赵开美</span></h2>
行間注(已併入默認行距)
|行间注 參數已於 2026-09 移除——它原有的行距 2.25 已提為全站默認行距(見「段落與對齊」一節),因此不再需要單獨開關。首行縮進 2em、段距 12px/24px 本來也就是默認值。
需要真正的「行間夾注」時,可在默認行距的基礎上自行放置注文,例如用 heti-small(14px)排小字。
作用範圍與限制
- 只影響
p、h1–h6與各版式容器;其餘標籤一律不碰。 - 段落規則會命中模板輸出里的 p(少數模板會生成段落),影響很小但存在。
- 紙色背景
#f6f4f0需要選中內容容器自身,TemplateStyles 無法做到,需站點級 CSS。 - 未引入 heti 的 JavaScript 增強(中西文自動間距、標點擠壓):需要改站點 JS,且其擠壓方向與「標點要有留白」相反。
容器與閉合
{{图书排版}} 會輸出一個基礎容器 <div class="tushu-body">,正文限寬(42em + 居中)就掛在這個容器上——容器繼承正文字號,因此 em 的基準就是正文,標題與段落因而同寬對齊。(若把 max-width 分別寫在 p 與 h1–h6 上,em 會按各元素自身字號計算,h1 的 42em 寬達 1344px,標題反而無法與正文對齊。)
寫上 {{图书排版/尾}} 顯式閉合(等價於手寫 </div>)。153 個既有頁面已於 2026-09 全部加上。
尾部應放在 ---- 與 <references /> 之上,這樣參考資料節留在容器內,而頁尾導航、目錄、分類留在容器外。若兩者都不存在,則放在 {{daohang-f}} 之上。
若不寫尾部,容器會由 HTML5 解析器自動閉合到內容區末尾:頁面不會報錯,但頁末的導航、目錄也會被一併限寬。
- 傳了版式參數也一樣:容器始終只有一個,參數是它的附加類,例如
class="tushu-body heti--ancient"。 - 本版式僅用於頁面正文內容;本站閱讀器(Gadget BookVerticalReader)是獨立的書籍閱讀器,與本模板的版式開關無關。
- 版式類名沿用 heti(sivan/heti)的官方命名;本站樣式表以 heti 官方規則為底、按需補齊,全部內容都在 Template:圖書排版/styles.css 內,不加載任何外部 heti 文件。