Template:图书排版/doc:修订间差异

删除的内容 添加的内容
小无编辑摘要
以 heti 官方规则为底补齐版式类,并把版式改为模板参数开关({{图书排版|行间注}} 等)
 
(未显示同一用户的5个中间版本)
第1行:
<templatestyles src="图书排版/styles.css"/>{{Uses TemplateStyles|Template:图书排版/styles.css}}{{Uses Lua|module:图书排版}}
该模板用于'''书籍内容页'''(如「伤寒论/章节」页面)的正文排版,本身不输出任何可见内容,只通过 TemplateStyles 引入 [[Template:图书排版/styles.css]]。
 
第19行:
 
样式'''只作用于正文段落与标题''':
* 段落 <code>&lt;p&gt;</code>:字号、行高、字距、首行缩进、两端对齐、断行规则
* 标题 <code>&lt;h1&gt;</code>–<code>&lt;h6&gt;</code>:字号阶梯、行高、字距、字重
 
表格、列表、链接、引用、代码块、<code>mark</code>/<code>q</code>/<code>sup</code>/<code>sub</code> 等元素'''不受影响'''——导航框、目录表、信息框的版式不会被改动。
第26行:
== 默认排版效果 ==
 
=== 字体分派:中文 / 西文 / 标点 ===
正文字体栈按「西文 → 黑体 → 宋体 → 扩展区」的顺序回退:
样式用两个 <code>@font-face</code> 配 <code>unicode-range</code>,把不同码位分给不同字体:
 
{| class="wikitable"
! 字符范围 !! 实际字体 !! 说明
|-
| 拉丁字母、数字(ASCII) || GeorgiaVerdana 等/ Arial(黑体栈的西文字体) || 保留原有西文观感
|-
| 汉字、假名等 CJK || '''PingFang SC / Microsoft YaHei'''(黑体栈) → Hiragino Sans GB → SimSun → SimSun-ExtB/G → Jigmo → HanaMin || 黑体优先,屏幕阅读舒适;生僻字自动往后掉到扩展区字体。繁体视图由 <code>:lang(zh-hant)</code> 换成繁体系(苹方 TC / 微軟正黑體)
| 汉字、假名等 CJK || '''Noto Serif SC''' → Source Han Serif SC → Songti SC → SimSun → PingFang SC Regular → … || 宋体类优先(思源宋体 → macOS 宋体 → Windows 宋体),苹方、雅黑等黑体仅作最后兜底;可用名称因系统而异 —— '''Windows 上安装的苹方其注册名为 <code>PingFang SC Regular</code>''',写成家族名 <code>PingFang SC</code> 或 macOS 的 <code>PingFangSC-Regular</code> 都不会匹配。(<code>local()</code> 只认字体全名 / PostScript 名)
|-
| 标点(<code>,。、:;!?()“”《》「」</code>) || 跟随正文字体(上两行同源) || 2026-09 起不再单独指定字体;引号字形随各字体而异
| 中文标点(引号、破折号、顿号、书名号等) || Noto Serif SC → Source Han Serif SC → Songti SC → SimSun(宋体类) || 标点占满一个全角字身,两侧留白正常
|}
 
'''为什么标点要单独处理:'''全角引号 <code>“ ”</code> 的码位是 U+201C / U+201D,Georgia、苹方、微软雅黑都含这两个字形,且做成'''西文风格的窄引号'''——此前因此出现「引号与后一个字贴在一起」。现在标点固定交给宋体类全角字体,任何设备上都不会再贴字。
 
=== 字号阶梯 ===
第57行 ⟶ 第55行:
| <code>&lt;h6&gt;</code> || <code>1.25rem</code>(20px) || <code>1.4</code>
|-
| 正文 <code>&lt;p&gt;</code> || <code>1.25rem</code>(20px) || <code>2.25</code>
|}
 
'''单位策略''':'''正文与标题用 <code>rem</code>'''——相对根字号(<code>html { font-size: 100% }</code> = 16px),嵌套时不会叠乘,与 MediaWiki 的 <code>--font-size-medium</code> 做法一致;'''辅助类字号用 <code>em</code>'''——相对所在元素的字号,随环境自动缩放(如 <code>.heti-large</code> 为 <code>1.1em</code>、<code>.heti-small</code> 为 <code>0.8em</code>)。
 
=== 段落与对齐 ===
* 字号 <code>1.25rem</code>(= 20px)
* 字段距 :不自行声明,用站点默认(<code>.02emmw-body p</code>(标题 h1–h3 为 <code>0.05em5em</code> 上 / <code>1em</code> 下)
* 段距 <code>0.4em</code> 上 / <code>0.5em</code> 下(与 MediaWiki 默认一致)
* 首行缩进 <code>2em</code>
* 两端对齐 <code>text-align: justify</code>
* 行高 <code>2.25</code>;标题行高固定为 48<code>1.4</36/36/24/24/24pxcode>
* 非中文段落自动左对齐、取消缩进
* 长串西文自动断行(<code>overflow-wrap</code> / <code>hyphens</code>)
第91行 ⟶ 第88行:
| <code>限宽</code> || <code>line-length</code> || <code>heti--line-length</code> || 正文限宽 42em 并居中
|-
| <code>双栏</code> || <code>columns-2</code> || <code>heti--columns-2</code> || 两栏。(需三栏/四栏时可手写 <code>&lt;div class="heti--columns-3"&gt;</code> 或 <code>&lt;div目数固定为 class="heti--columns-4"&gt;</code>)2)
|}
 
第117行 ⟶ 第114行:
==静夜思==
 
&lt;span class="heti-meta"&gt;——唐·李白&lt;/span&gt;
 
<nowiki><poem></nowiki>
第141行 ⟶ 第138行:
 
=== 多栏(参数 <code>双栏</code>) ===
把正文排成两栏。注意'''不要叠加 <code>|限宽</code>'''——多栏自带 <code>max-width: none</code>(分栏需要宽度),限宽 42em 再分两栏每栏只剩约 350px。栏宽类(<code>heti--columns-16em</code> 到 <code>heti--columns-48em</code>)无参数入口,需要时手写。
<pre>
<nowiki>{{图书排版|双栏}}</nowiki>
第163行 ⟶ 第160行:
<p>宋体示例:予曰:“吾闻是书于家大夫之日久矣。”</p>
</div>
 
=== 辅助类速查 ===
{| class="wikitable"
! class !! 用途
|-
| <code>heti-meta</code> || 落款、副题(块级、不缩进)
|-
| <code>heti-verse</code> || 诗句(居中、不缩进)
|-
| <code>heti-large</code> / <code>heti-x-large</code> / <code>heti-small</code> / <code>heti-x-small</code> || 字号微调 22px / 25px / 16px / 14px
|-
| <code>heti-fn</code> || 文末注释区
|-
| <code>heti-hang</code> || 悬挂缩进
|-
| <code>em-cjk</code> || 着重号(由 <code>{{tl|着重}}</code> 提供,样式在 [[Template:着重/styles.css]])
|-
| <code>heti-list-latin</code> || 用在 <code>&lt;ol&gt;</code> 上:A B C…(其内层 ol 为罗马数字,再内层为小写字母)
|-
| <code>heti-list-han</code> || '''暂不可用''':汉字编号 <code>cjk-ideographic</code> 不在 TemplateStyles 白名单内
|}
=== 辅助类演示 ===
下面每个类的效果都是本页实时渲染的。
 
'''heti-meta'''(落款、副题:块级、不缩进)
<pre>
&lt;div class="heti-meta"&gt;万历己亥三月谷旦 海虞清常道人赵开美序&lt;/div&gt;
</pre>
<div class="heti-meta">万历己亥三月谷旦 海虞清常道人赵开美序</div>
 
'''heti-verse'''(诗句:居中、不缩进)
<pre>
&lt;div class="heti-verse"&gt;床前明月光,疑是地上霜。&lt;/div&gt;
</pre>
<div class="heti-verse">床前明月光,疑是地上霜。</div>
 
'''heti-large / heti-x-large / heti-small / heti-x-small'''(四档字号)
<pre>
&lt;div class="heti-large"&gt;……&lt;/div&gt;
</pre>
<div class="heti-large">heti-large(22px):予曰:“吾闻是书于家大夫之日久矣。”</div>
<div class="heti-x-large">heti-x-large(25px):予曰:“吾闻是书于家大夫之日久矣。”</div>
<div class="heti-small">heti-small(16px):予曰:“吾闻是书于家大夫之日久矣。”</div>
<div class="heti-x-small">heti-x-small(14px):予曰:“吾闻是书于家大夫之日久矣。”</div>
 
'''heti-fn'''(文末注释区)
<pre>
&lt;div class="heti-fn"&gt;
&lt;ol&gt;
&lt;li&gt;……&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</pre>
<div class="heti-fn">
<ol>
<li>赵开美,字清常,海虞(今江苏常熟)人,明代刻书家。</li>
<li>所刻《仲景全书》为《伤寒论》传世重要版本之一。</li>
</ol>
</div>
 
'''着重号'''
着重号由 <code>{{tl|着重}}</code> 提供(类名 <code>em-cjk</code>,样式在 [[Template:着重/styles.css]]),不依赖本模板。
<pre>
<nowiki>{{着重|成无己}}</nowiki>
</pre>
<p>予读而知其为{{着重|成无己}}所解之书也。</p>
 
'''heti-list-latin'''(列表编号:拉丁字母)
<pre>
&lt;ol class="heti-list-latin"&gt;
&lt;li&gt;……&lt;/li&gt;
&lt;/ol&gt;
</pre>
<ol class="heti-list-latin">
<li>太阳病</li>
<li>阳明病</li>
<li>少阳病</li>
</ol>
 
'''heti-hang'''(悬挂:用于标题内落款。此类为 <code>position:absolute</code> 且未设偏移量,单独使用没有视觉变化,需按具体版式配合定位属性)
<pre>
&lt;h2&gt;刻《仲景全书》序&lt;span class="heti-hang"&gt;赵开美&lt;/span&gt;&lt;/h2&gt;
</pre>
 
== 作用范围与限制 ==