模板: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子页面中添加分类。 本模板的子页面。 |