模板:Side annotation
使用Lua語言編寫: |
介绍
[编辑]測試中的側批模板。
本模板顯示行間注釋,或稱側批,旁批。行間注釋,是直排的中文古籍的讀者寫在相鄰行之間的空白内的注釋,其排版規則與西文不同,不但可以延展多行,亦不像脚注一樣對應正文的單個位置,而是對應一段起點或終點明確的正文。簡單的 HTML 行内樣式很難在直排環境還原行間注釋,也不能自動連接各行注解,允許跨頁,勿論同時允許直排和橫排兩種展示方式。
本模板的設計功能是,輸出格式化的行間注釋,讓用戶輸入的 Wikitext 和生成的 HTML 代碼都能保持正文在前,注釋在后的順序,並允許直排和橫排同時輸出時指定不同樣式。直排環境下,可以模擬行間注釋,讓注釋逐行顯示在正文側面;橫排環境下,默認合并所有批語,在對應的正文之後的行内顯示。
保持正文在前,注釋在后的順序,有利於機器人或人工智能正確識讀,避免錯誤解析而產生新的異文;未開啓 CSS 的用戶亦可以清楚地識別出注釋(用尖括號〈〉包含在正文后)。
因 Mediawiki 的 Proofread Page 擴展的限制,換行不能自動適應環境,直排嵌入對頁面名稱有要求(需包括「直排」二字);不能在同一作品頁中同時以直排和橫排嵌入。未來如果維基文庫對直排嵌入和展示有更好的支持,可更新此模板。
用法
[编辑]此模板僅提供以<span>
標簽組織的格式化的的原文和注釋,其樣式不在本模板内指明,以達成通用的目的。
樣式需要在對於的索引頁面樣式頁内指定 (使用CSS),好處是,可以依直排和橫排,指定不同的樣式,如:直排時模擬原文效果,讓注釋文字出現在行間;橫排時則顯示行内小字。
因此,不推薦為本模板創建模板樣式頁,因其會與索引頁面樣式衝突。也不推薦直接在作品頁使用,而應在校對頁(Page 頁面)空間使用。
單行
[编辑]{{Side annotation
|1 = 第一行正文
|2 = 第一行注釋
|color = 顔色
|class = 子類名
}}
多行
[编辑]{{Side annotation
|1 = 第一行正文
|2 = 第二行正文
|3 = 第三行正文
...
| = 第一行注釋
| = 第二行注釋
| = 第三行注釋
...
|color = 顔色
|class = 子類名
}}
参数
[编辑]- {{{1}}}, {{{2}}}, {{{3}}}……:注釋對應的正文,每行為一個參數。此參數為注文提供顯示位置的參考點。在直排的單行注釋模式下,可以讓注文與第一個參數的頂端對齊。如果注釋文字壓縮到行内,注釋文字會出現在最後一個參數的後面。
- {{{n+1}}}, {{{n+2}}}, {{{n+3}}}……:注釋文字,,每行為一個參數。和維基文庫其他注釋模板類似,第一條注文和最末注文后有一對尖括號〈〉。可以通過指定樣式隱藏這一對括號。
- {{{color}}} : 顔色,樣式參數,可選。
- {{{class}}} : 子類別名稱,樣式參數,可選。兩者的用法見#顔色和子類別。
跨頁
[编辑]輸入跨頁的行間注釋,需要使用三個子模版: {{Side annotation/s}} (頭), {{Side annotation/m}} (中), {{Side annotation/e}} (尾),并且要錄入到恰當的頁眉,頁脚或正文的位置。以與{{Vertical page start}}模板協同使用為例。假設前一頁末尾,,后一頁開始分別有兩行批語,共四行批語。
頁面 | 部分 | 輸入内容 |
---|---|---|
首頁 | 頁眉 | {{Vertical page start}}
<poem>
|
正文 | ……
{{Side annotation/s
| 第一行正文
| 第二行正文
| 第一行注釋
| 第二行注釋
| file = 文件名
| page = 次頁頁碼
| color =
| class =
}}
| |
頁脚 | {{Side annotation/e}}
</poem>
{{Vertical page end}}
| |
次頁 | 頁眉 | {{Vertical page start}}
<poem>
{{Side annotation/s}}
或: {{Vertical page start}}
<poem>
{{Side annotation/s
| color =
| class =
}}
|
正文 | <noinclude>{{Side annotation/m
|第三行正文
|第四行正文
}}</noinclude>
{{Side annotation/e
|第三行注釋
|第四行注釋
}}
…… | |
頁脚 | </poem>
{{Vertical page end}}
|
樣式參數 {{{color}}} 和 {{{class}}} 與單頁模板中的用法類似,但只能在{{Side annotation/s}} 中指定,且每頁都要指定一次,以使 Page 頁面空間能顯示所選的樣式。
嵌入參數 {{{file}}} 填寫沒有命名空間前綴的文件名, {{{page}}} 輸入次頁,也就是 {{Side annotation/m}} 所在頁的頁碼。兩者都必填。其作用是,在作品頁將{{Side annotation/m}} 包括的正文嵌入到前頁的正文和注釋中間。
顔色和子類別
[编辑]可選參數{{{color}}} 可以用於指定個別注釋的顔色。例如,全書有少量批語為紅色,則可設置color=red
。
有時行間注釋有樣式差異,或分歸幾個不同作者,想要保存這些額外資訊,可以使用可選參數{{{color}}} 和 {{{class}}} 來為行間注釋細分子類,再在索引頁樣式頁指定子類的樣式。例如,假設有三個注釋作者A,B 和C,可以分別設定class=A
, class=B
, class=C
。
模板會自動在子類名前加入 wst-side-annotation-s-
的前綴(即 'wst' 前綴,本模板的名稱, 's' 後綴的組合),以防止類名衝突。在上面的例子中,可在索引頁樣式頁中指定
.wst-side-annotation-s-A{
color:blue;
}
即可讓作者A的注釋顯示為藍色。如果要限定直排環境内的樣式,須和直排環境模板協同使用(見下文#直排側面注文)。以{{Vertical page start}} 為例:
.wst-vertical-page .wst-side-annotation-s-A{
color:blue;
}
即可指定只有在{{Vertical page start}} 模板的環境内,才顯示藍色。
類似語法也適用與{{Header annotation}} 等類似模板。
樣式
[编辑]需在索引頁樣式頁指定本模板的樣式。
索引頁樣式頁是索引頁的子頁面,名字為styles.css
。例如,如果索引頁面的名稱為Index:1.pdf
,那麽,對應的樣式頁為Index:1.pdf/styles.css
。
行内注文
[编辑]如果僅希望顯示行内小字批語,不需要在直排環境内顯示花哨的樣式,需要輸入如下代碼:
.wst-side-delimiter{
display:inline-block;
color:transparent;
font-size:0;
width:0.3rem;
}
.wst-side-annotation-row{
font-size:x-small;
}
上面的代碼中,wst-side-annotation-row
對應所有注文,wst-side-delimiter
對應尖括號。代碼的效果是,隱藏尖括號,注文以 x-small
(正文的75%)顯示。width
讓尖括號顯示固定寬度的空白,以分隔注文和正文。
直排側面注文
[编辑]如果希望注文在直排環境中側面顯示,在橫排環境中行内顯示,需要和直排環境的模板協同使用。以{{Vertical page start}} 為例,可以將 Template:Side_annotation/styles-example.css 頁的例子複製到索引頁面的樣式頁。其中允許自訂的内容包括:
直排高度
[编辑].wst-vertical-page
的高度 height
, 和 .wst-vertical-page .wst-side-annotation-row
的高度應相同。
行高
[编辑]爲使正文給行間注文留出顯示空間,可以有兩種方法:
- 增加全書所有行的行高。例如
.wst-vertical-page{ line-height: 2em; }
- 只增加有批語的行的右邊距離。例如
.wst-vertical-page .wst-side-text-row{ margin-right: 1.2rem; } .wst-vertical-page .wst-side-annotation-row{ margin-right: 1.2rem; }
- 這兩個邊距應相同,單位應選擇 rem。
注文橫向位置
[编辑].wst-vertical-page .wst-side-annotation-box{
left:-0.3rem;
}
單位應選擇 rem。
示例
[编辑]注意事项
[编辑]技术细节
[编辑]重定向
[编辑]- {{SideAnno}},及 {{SideAnno/s}}, {{SideAnno/m}}, {{SideAnno/e}}。
参见
[编辑]- {{*}},通用的注釋模板。
- {{~}} ,紅色注釋模板。
- {{Header annotation}},類似原理的眉批模板。
- {{Vertical page start}},{{Vertical page end}}。和本模板可互動,提供直排環境的模板。
上述文档嵌入自Template:Side annotation/doc。 (编辑 | 历史) 编者可以在本模板的沙盒 (创建 | 镜像)和测试样例 (编辑)页面进行实验。 请在/doc子页面中添加分类。 本模板的子页面。 |