├── src
├── han
│ ├── font
│ │ ├── han.otf
│ │ ├── han.woff
│ │ ├── han-space.otf
│ │ └── han-space.woff
│ ├── han.min.js
│ ├── han.min.css
│ └── han.css
├── images
│ ├── figure1.png
│ └── figure2.png
├── fonts
│ └── MathJax_Main-Regular.otf
├── css
│ └── styles.css
└── main.html
├── .gitignore
├── scripts
└── render.js
└── README.md
/src/han/font/han.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shyujikou/cssprint-sample/HEAD/src/han/font/han.otf
--------------------------------------------------------------------------------
/src/han/font/han.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shyujikou/cssprint-sample/HEAD/src/han/font/han.woff
--------------------------------------------------------------------------------
/src/images/figure1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shyujikou/cssprint-sample/HEAD/src/images/figure1.png
--------------------------------------------------------------------------------
/src/images/figure2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shyujikou/cssprint-sample/HEAD/src/images/figure2.png
--------------------------------------------------------------------------------
/src/han/font/han-space.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shyujikou/cssprint-sample/HEAD/src/han/font/han-space.otf
--------------------------------------------------------------------------------
/src/han/font/han-space.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shyujikou/cssprint-sample/HEAD/src/han/font/han-space.woff
--------------------------------------------------------------------------------
/src/fonts/MathJax_Main-Regular.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Shyujikou/cssprint-sample/HEAD/src/fonts/MathJax_Main-Regular.otf
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # macOS
2 | .DS_Store
3 |
4 | # Ignore commercial fonts
5 | *.ttf
6 | *.TTF
7 |
8 | # Ignore temp files
9 | src/.main_rendered.html
10 |
--------------------------------------------------------------------------------
/scripts/render.js:
--------------------------------------------------------------------------------
1 | var page = require('webpage').create();
2 | var fs = require('fs'),
3 | system = require('system');
4 |
5 | page.open(system.args[1], function() {
6 | var interval, allDone;
7 |
8 | allDone = page.evaluate(function () {
9 | if (window.MathJax) {
10 | MathJax.Hub.Register.StartupHook('End', function () {
11 | window.allDone = 1;
12 | });
13 | return false;
14 | } else {
15 | return true;
16 | }
17 | });
18 |
19 | interval = setInterval(function () {
20 | var allDone = page.evaluate(function () {
21 | return window.allDone;
22 | });
23 |
24 | if (allDone) {
25 | clearInterval(interval);
26 | console.log(page.content);
27 | phantom.exit();
28 | }
29 | }, 100);
30 | });
31 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # HTML+CSS 图书排版示例
2 |
3 | 这里的示例代码节选自本人的译作[《物理是什么》](http://www.ituring.com.cn/book/1969)简体中文版,朝永振一郎著,人民邮电出版社2017年6月出版。
4 |
5 | 这本书是我自己用HTML+CSS排版输出的,在国内出版领域属于小众案例,因此我正在写一篇文章分享这次经历和其中的一些技术话题(文章链接等发布后补充),为了让大家更好地理解HTML+CSS图书排版,我将这本书的部分源代码共享出来,欢迎各种讨论和交流。
6 |
7 | ## 环境依赖
8 |
9 | 要将本示例中的代码渲染输出成PDF,需要安装以下软件:
10 |
11 | - [PhantomJS](http://phantomjs.org/)
12 | - [Prince](http://www.princexml.com/)
13 |
14 | 其中Prince为商业软件,但提供全功能免费版本,只是输出的PDF文件第一页右上角会加上水印,本示例中预先渲染的PDF文件也包含该水印。
15 |
16 | 此外,本示例中还引用了方正的若干商业字体,这些字体已由出版社(人民邮电出版社)获得授权,但该授权仅用于出版图书使用,因此我无法将这些字体一起提供出来,大家可以自行安装这些字体,或者在`src\css\styles.css`样式文件中替换掉这些字体。
17 |
18 | ## 如何渲染PDF
19 |
20 | 示例中提供了渲染脚本`build_pdf`,这个脚本会先运行PhantomJS调用MathJax来渲染文章中的数学公式,然后再运行Prince渲染输出PDF,请确保系统中已安装上述软件。
21 |
22 | 示例中也提供了我预先渲染好的PDF文件(`build/book.pdf`)供大家参考。注意:PDF正文中遇到如“第0页”的显示是正常的,因为示例节选了源代码的一部分,导致一些交叉引用会失效。
23 |
24 | ## 版权声明
25 |
26 | 本示例中的代码为已正式出版的图书的一部分,该书的版权属人民邮电出版社所有。本示例中的代码仅供学习交流使用,如利用本示例中的代码对版权方造成侵权后果,则需承担相应的法律责任。
27 |
28 | ## 致谢
29 |
30 | 本示例中使用了以下开源项目的代码,在此表示感谢:
31 |
32 | - [MathJax](https://www.mathjax.org/)
33 | - [Han 汉字标准格式排版框架](https://github.com/ethantw/Han)
34 |
--------------------------------------------------------------------------------
/src/css/styles.css:
--------------------------------------------------------------------------------
1 | /* 字体定义 */
2 |
3 | /* 数学公式字体,用于正文中的数字 */
4 | @font-face {
5 | font-family: "TeX";
6 | src: url("../fonts/MathJax_Main-Regular.otf");
7 | unicode-range: U+2E, U+30-39; /* 只使用字体中的数字和小数点 */
8 | }
9 |
10 | /* 西文字体,使用系统字体Times或Times New Roman */
11 | @font-face {
12 | font-family: "Latin";
13 | src: local(Times), local("Times New Roman");
14 |
15 | /* 对字体截取子集,使得非西文字符回退到后面的中文字体,
16 | 避免部分字符显示异常,如省略号、破折号等。
17 | 其中特别排除了U+00B7,即中点“·”,该字符需要回退到中文字体 */
18 | unicode-range: U+0000-00B6, U+00B8-1FFF;
19 | }
20 |
21 | /* 以下方正字体均由人民邮电出版社获得授权,可用于该社出版的图书 */
22 |
23 | /* 方正书宋 */
24 | @font-face {
25 | font-family: "SongTi";
26 | src: url("../fonts/FZSSJW.TTF");
27 | }
28 |
29 | /* 方正宋黑,用作书宋的粗体字 */
30 | @font-face {
31 | font-family: "SongTi";
32 | src: url("../fonts/FZSHJW.TTF");
33 | font-weight: bold;
34 | }
35 |
36 | /* 方正楷体 */
37 | @font-face {
38 | font-family: "KaiTi";
39 | src: url("../fonts/FZKTJW.TTF");
40 | }
41 |
42 | /* 方正仿宋 */
43 | @font-face {
44 | font-family: "FangSong";
45 | src: url("../fonts/FZFSJW.TTF");
46 | }
47 |
48 | /* 方正黑体 */
49 | @font-face {
50 | font-family: "HeiTi";
51 | src: url("../fonts/FZHTJW.TTF");
52 | }
53 |
54 | /* 方正细黑 */
55 | @font-face {
56 | font-family: "XiHei";
57 | src: url("../fonts/FZXHGBK.TTF");
58 | }
59 |
60 | /* 页面样式 */
61 |
62 | /* 基础页面样式 */
63 | @page {
64 | size: 145mm 210mm; /* 32开 */
65 | margin-top: 20mm;
66 | margin-bottom: 15mm;
67 | margin-inside: 21mm;
68 | margin-outside: 16mm;
69 | marks: crop cross;
70 | prince-bleed: 3mm;
71 | prince-trim: 10mm;
72 |
73 | /* 如果要每页重置脚注号可以使用以下样式 */
74 | /* counter-reset: footnote; */
75 | }
76 |
77 | /* 正文页面,左侧页样式 */
78 | @page main:left {
79 | /* 左上角显示页码 */
80 | @top-left-corner {
81 | content: counter(page) " ";
82 | font-family: XiHei;
83 | font-size: 8pt;
84 | color: cmyk(0,0,0,0.8); /* 颜色需使用CMYK色空间 */
85 | }
86 |
87 | /* 左上方显示章标题 */
88 | @top-left {
89 | content: "| " string(chaptitle);
90 | font-family: XiHei;
91 | font-size: 8pt;
92 | color: cmyk(0,0,0,0.8);
93 | }
94 | }
95 |
96 | /* 正文页面,右侧页样式 */
97 | @page main:right {
98 | /* 右上角显示页码 */
99 | @top-right-corner {
100 | content: " " counter(page);
101 | font-family: XiHei;
102 | font-size: 8pt;
103 | color: cmyk(0,0,0,0.8);
104 | }
105 |
106 | /* 右上方显示节标题 */
107 | @top-right {
108 | content: string(sectitle) " |";
109 | font-family: XiHei;
110 | font-size: 8pt;
111 | color: cmyk(0,0,0,0.8);
112 | }
113 | }
114 |
115 | /* 序章没有节标题,因此左右均显示章标题 */
116 | /* 序章正文,左侧页样式 */
117 | @page main-chap-title-only:left {
118 | @top-left-corner {
119 | content: counter(page) " ";
120 | font-family: XiHei;
121 | font-size: 8pt;
122 | color: cmyk(0,0,0,0.8);
123 | }
124 |
125 | @top-left {
126 | content: "| " string(chaptitle);
127 | font-family: XiHei;
128 | font-size: 8pt;
129 | color: cmyk(0,0,0,0.8);
130 | }
131 | }
132 |
133 | /* 序章正文,右侧页样式 */
134 | @page main-chap-title-only:right {
135 | @top-right-corner {
136 | content: " " counter(page);
137 | font-family: XiHei;
138 | font-size: 8pt;
139 | color: cmyk(0,0,0,0.8);
140 | }
141 |
142 | @top-right {
143 | content: string(chaptitle) " |";
144 | font-family: XiHei;
145 | font-size: 8pt;
146 | color: cmyk(0,0,0,0.8);
147 | }
148 | }
149 |
150 | /* 章标题单独占一页,纵向居中(近似) */
151 | @page chapter-title {
152 | margin-top: 40%;
153 | }
154 |
155 | /* 正文空白页面,清除所有页边框内容 */
156 | @page main:blank {
157 | @top-left {
158 | content: normal;
159 | }
160 |
161 | @top-right {
162 | content: normal;
163 | }
164 |
165 | @top-right-corner {
166 | content: normal;
167 | }
168 |
169 | @top-left-corner {
170 | content: normal;
171 | }
172 | }
173 |
174 | /* 序章正文空白页面,清除所有页边框内容 */
175 | @page main-chap-title-only:blank {
176 | @top-left {
177 | content: normal;
178 | }
179 |
180 | @top-right {
181 | content: normal;
182 | }
183 |
184 | @top-right-corner {
185 | content: normal;
186 | }
187 |
188 | @top-left-corner {
189 | content: normal;
190 | }
191 | }
192 |
193 | /* 文字样式 */
194 |
195 | html {
196 | font-size: 10pt; /* 基准正文字号 */
197 | }
198 |
199 | body {
200 | counter-reset: chapternum figurenum; /* 重置章号和图号计数器 */
201 | font-family: TeX, Latin, SongTi; /* 按数字、西文、中文的顺序回退 */
202 | line-height: 2.0;
203 | font-size: 1rem;
204 |
205 | /* 中文排版对页面段落孤行的控制没有特殊要求,将允许的孤行设置为1 */
206 | orphans: 1;
207 | widows: 1;
208 | }
209 |
210 | /* 正文容器,指定相应的页面样式 */
211 | article {
212 | page: main;
213 | }
214 |
215 | /* 序章的正文容器类 */
216 | article.chap-title-only {
217 | page: main-chap-title-only;
218 | }
219 |
220 | /* 统一所有等级标题的字体 */
221 | h1, h2, h3, h4, h5, h6 {
222 | font-family: HeiTi; /* 黑体不需要回退 */
223 | }
224 |
225 | /* 章标题 */
226 | h1 {
227 | string-set: chaptitle content(); /* 对chaptitle变量赋值用于页眉显示 */
228 |
229 | page: chapter-title;
230 |
231 | /* 强制分页逻辑 */
232 | page-break-before: right; /* 章标题必须为右侧页,按需要在前后插入空白页 */
233 | page-break-after: right;
234 |
235 | /* 每章开头重置图号和脚注号计数器 */
236 | counter-reset: figurenum;
237 | counter-reset: footnote;
238 | counter-increment: chapternum; /* 章号计数器+1 */
239 |
240 | bookmark-level: 1; /* 设置书签等级 */
241 |
242 | font-size: 2.6rem;
243 | text-align: right;
244 | }
245 |
246 | /* 序章章标题 */
247 | h1#ch0 {
248 | /* 重置页码计数器。内文页码从序章开始为第1页,前面目录不算 */
249 | counter-reset: page 1;
250 | counter-increment: none;
251 | }
252 |
253 | /* 节标题 */
254 | h2 {
255 | string-set: sectitle counter(chapternum) "-" content(); /* 对sectitle变量赋值用于页眉显示 */
256 | page-break-before: always; /* 节标题必须另起一页(前方强制换页) */
257 | bookmark-level: 2;
258 |
259 | font-size: 1.6rem;
260 |
261 | margin-bottom: 1.5em;
262 | }
263 |
264 | /* 小节标题 */
265 | h3 {
266 | bookmark-level: 3;
267 |
268 | font-weight: 300;
269 | font-size: 1.2rem;
270 |
271 | margin-top: 2em;
272 |
273 | /* 避免在小节标题之后立即换页,如换页把小节标题一起换到下一页 */
274 | page-break-after: avoid;
275 | }
276 |
277 | /* 取消h3以下标题的书签级别 */
278 | h4, h5, h6 {
279 | bookmark-level: none;
280 | }
281 |
282 | /* 正文中的黑体小标题 */
283 | h5 {
284 | font-weight: 600;
285 | font-size: 1rem;
286 |
287 | margin-bottom: 0.5em;
288 | margin-top: 0em;
289 | }
290 |
291 | /* 正文段落 */
292 | p {
293 | text-indent: 2em;
294 | text-align: justify; /* 中文排版规范为左右对齐 */
295 | prince-text-justify: prince-cjk; /* 使用中日韩字符左右对齐逻辑 */
296 | prince-footnote-policy: keep-with-line; /* 避免脚注和对应正文不在同一页 */
297 | margin-top: 0em;
298 | margin-bottom: 0em;
299 | }
300 |
301 | /* 首行不缩进的段落 */
302 | p.ni {
303 | text-indent: 0em;
304 | }
305 |
306 | /* 各种不同悬挂缩进的样式类 */
307 | p.hang2em {
308 | text-indent: -2em;
309 | margin-left: 4em;
310 | }
311 |
312 | p.hang2-5em {
313 | text-indent: -2.3em;
314 | margin-left: 4.3em;
315 | }
316 |
317 | p.hang3em {
318 | text-indent: -3em;
319 | margin-left: 5em;
320 | }
321 |
322 | p.hang4em {
323 | text-indent: -4em;
324 | margin-left: 6em;
325 | }
326 |
327 | p.hang5em {
328 | text-indent: -5em;
329 | margin-left: 7em;
330 | }
331 |
332 | /* 上方增加一个空行的段落 */
333 | p.mt {
334 | margin-top: 2em;
335 | }
336 |
337 | /* 需要右对齐的段落 */
338 | p.right {
339 | text-align: right;
340 | }
341 |
342 | /* 超链接
343 | 印刷排版中的超链接用来自动生成目录和正文中被引用的页码 */
344 | a {
345 | color: inherit; /* 使用和正文一样的颜色和样式 */
346 | text-decoration: inherit;
347 | }
348 |
349 | /* 交叉引用1:第X页 */
350 | a.xref:after{
351 | content: "第 " target-counter(attr(href), page) " 页";
352 | }
353 |
354 | /* 交叉引用2:第X~X页 */
355 | a.xref-p1:after{
356 | content: "第 " target-counter(attr(href), page);
357 | }
358 |
359 | a.xref-p2:after{
360 | content: target-counter(attr(href), page) " 页";
361 | }
362 |
363 | /* 引用段落样式 */
364 | .quote {
365 | font-family: TeX, Latin, FangSong;
366 | margin-top: 1em;
367 | margin-bottom: 1em;
368 | }
369 |
370 | /* 正文注释段落样式 */
371 | .notes {
372 | font-family: TeX, Latin, KaiTi;
373 | line-height: 1.5;
374 | background-color: cmyk(0,0,0,0.05);
375 | padding: 1em;
376 | margin-top: 1em;
377 | margin-bottom: 1em;
378 | }
379 |
380 | /* 插图 */
381 | figure {
382 | page-break-inside: avoid; /* 插图避免在中间换页 */
383 | }
384 |
385 | /* 插图下方的图注 */
386 | figcaption {
387 | text-align: center;
388 | font-family: HeiTi;
389 | }
390 |
391 | /* 插图下方的小字注释,仅图10使用 */
392 | p.fignotes {
393 | font-family: TeX, Latin, KaiTi;
394 | font-size: 0.8rem;
395 | line-height: 1.5;
396 | text-indent: 0;
397 | margin-top: 1em;
398 | }
399 |
400 | /* 有序列表 */
401 | ol {
402 | counter-reset: o-counter;
403 | text-align: justify;
404 | prince-text-justify: prince-cjk;
405 | prince-footnote-policy: keep-with-line;
406 | }
407 |
408 | /* 有序列表,序号为带括号的数字 */
409 | ol.bracket li::marker {
410 | content: "(" counter(list-item) ")";
411 | }
412 |
413 | /* b标签自动使用黑体 */
414 | b {
415 | font-family: HeiTi;
416 | font-style: inherit;
417 | font-size: inherit;
418 | }
419 |
420 | /* em标签使用粗体,下方加着重号 */
421 | em {
422 | font-family: inherit;
423 | font-weight: bold;
424 | font-style: inherit;
425 |
426 | /* 着重号在Webkit浏览器中可显示,但Prince不支持
427 | 因此正文中无法渲染出着重号,且没有找到有效的替代方案 */
428 | text-emphasis: filled dot;
429 | text-emphasis-position: under;
430 | -webkit-text-emphasis: filled dot;
431 | -webkit-text-emphasis-position: under;
432 | }
433 |
434 | /* 临时楷体 */
435 | span.kai {
436 | font-family: TeX, Latin, KaiTi;
437 | }
438 |
439 | /* 临时黑体 */
440 | span.hei {
441 | font-family: HeiTi;
442 | }
443 |
444 | /* 只使用宋体,排除西文字体
445 | 用于某些特定符号显示异常的情况 */
446 | span.song-only {
447 | font-family: SongTi;
448 | }
449 |
450 | /* 小字 */
451 | span.small {
452 | font-size: 0.8em;
453 | font-weight: 300;
454 | }
455 |
456 | span.xxsmall {
457 | font-size: 0.45em;
458 | font-weight: 300;
459 | }
460 |
461 | /* 用这个类包裹的文字会尽量避免换行,用于版式微调 */
462 | span.nowrap {
463 | white-space: nowrap;
464 | }
465 |
466 | /* MathJax公式样式,用于覆盖默认样式 */
467 |
468 | /* 行内公式两边加上0.25em的空白 */
469 | .MathJax, .MathJax_CHTML, .MathJax_SVG {
470 | margin-left: 0.25em !important;
471 | margin-right: 0.25em !important;
472 | }
473 |
474 | /* 单行公式左侧会有额外留白(和SVG的定位机制有关)
475 | 这个样式用于消除额外留白 */
476 | .MathJax_SVG_Display {
477 | text-indent: -2.2em !important;
478 | }
479 |
480 | /* 单行公式中的元素左右不保留空白 */
481 | .MathJax_SVG_Display .MathJax_SVG {
482 | margin-left: 0 !important;
483 | margin-right: 0 !important;
484 | }
485 |
486 | /* 脚注样式 */
487 |
488 | /* 脚注文字样式 */
489 | .fn {
490 | float: footnote; /* 将脚注填充到脚注区域 */
491 | counter-increment: footnote; /* 脚注号计数器+1 */
492 | font-family: TeX, Latin, KaiTi;
493 | font-size: 0.8rem;
494 | line-height: 1.2;
495 | text-indent: 0;
496 | }
497 |
498 | /* 正文中脚注标号的样式 */
499 | .fn::footnote-call {
500 | content: counter(footnote);
501 | font-size: 0.8rem;
502 | vertical-align: super; /* 上标 */
503 | line-height: none; /* 避免上标对正文行距的影响 */
504 | margin-left: 0.25em;
505 | margin-right: 0.25em;
506 | }
507 |
508 | /* 脚注区域样式 */
509 | @page {
510 | @footnotes {
511 | border-top: thin solid black; /* 脚注区域顶分割线 */
512 | border-clip: 6em; /* 顶分割线裁切到6em长度 */
513 | padding-top: 0.5em;
514 | padding-left: 1em;
515 | margin-top: 1em;
516 | }
517 | }
518 |
519 | /* 目录样式 */
520 |
521 | /* 目录容器 */
522 | div.toc {
523 | /* 目录必须从右侧页开始 */
524 | page-break-before: right;
525 | page-break-after: right;
526 | }
527 |
528 | /* 目录的大标题,即“目录”两个字 */
529 | div.toc h1 {
530 | /* 重置一般h1的换页规则和样式 */
531 | page: initial;
532 | page-break-before: initial;
533 | page-break-after: initial;
534 | text-align: initial;
535 | counter-increment: none;
536 | margin-left: 0;
537 | margin-bottom: 1.5em;
538 | }
539 |
540 | /* 一级目录 */
541 | div.toc ul {
542 | list-style: none;
543 |
544 | font-family: XiHei;
545 | font-size: 1.2rem;
546 | margin-left: 0;
547 | }
548 |
549 | /* 二级目录 */
550 | div.toc ul ul {
551 | font-size: 1rem;
552 | margin-left: 4em;
553 | }
554 |
555 | /* 三级目录 */
556 | div.toc ul ul ul {
557 | font-size: 0.8rem;
558 | margin-left: 1.5em;
559 | }
560 |
561 | /* 二级目录的末尾边距 */
562 | div.toc ul li.sublevel {
563 | margin-bottom: 1em;
564 | }
565 |
566 | /* 一级/二级目录页码,中间用句点“.”填充 */
567 | div.toc ul a::after {
568 | content: leader('.') ' ' target-counter(attr(href), page);
569 | margin-left: 1em;
570 | }
571 |
572 | /* 三级目录的页码,空一个格用括号包围 */
573 | div.toc ul ul ul a::after {
574 | content: ' (' target-counter(attr(href), page) ')';
575 | }
576 |
--------------------------------------------------------------------------------
/src/main.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 物理是什么
6 |
7 |
8 |
9 |
10 |
29 |
30 |
31 |
32 |
33 |
34 |
目 录
35 |
36 | 序 章
37 | 第一章
38 |
39 |
65 |
66 | 第二章
67 |
68 |
82 |
83 | 第三章
84 |
85 |
116 |
117 | 科学与文明
118 |
119 |
120 |
121 | 序 章
122 |
123 |
124 |
125 | 在我们如今的生活中,处处都可以见到物理学的影子。就拿我写这本书所在的这幢公寓的小房间来说,天花板上的荧光灯发出亮光,书架上摆放着电话、收音机和磁带,角落里的电冰箱发出微弱的声响,灶台上的换气扇在不停地转动。往窗外看,数根电线架在电线杆之间,电流在电线里穿梭,传递着能量和信息。再看对面的一幢大楼,楼顶上高高竖立着特高频通信天线,下面还可以看到一个水箱,电机将水从下面抽上来,蓄积在这个水箱里。不管是对面那幢楼,还是我现在所在的这幢楼,它们的外墙之中都有钢筋,这些钢筋都要按照物理学方法测量其强度,然后再根据物理学定律进行计算并组装起来,这样才能够支撑起建筑物以抵御地震和强风。物理学这一学问已经成为支撑现代文明的骨架,我们一分一秒都离不开它。
126 |
127 |
128 | 既然我们身边很多东西都是拜物理学所赐,那么物理学到底是一门怎样的学问呢?它又是在什么时候、在哪里、由谁提出来的呢?现在那些被称为物理学家的人们,又是在为了什么而做着什么样的工作呢?这些工作又会在将来为我们带来些什么呢?
129 |
130 |
131 | 物理学家在创立物理学时离不开数学的帮助,在数学中,一般先要对其探讨的对象进行定义。当然,近代数学中也可以不定义对象,而是以无定义的公理系统作为起点。然而,对于物理学来说,我们既不可能对它进行定义,也不可能对它建立一个公理系统。因为物理学这一学问,从创立至今一直在不断变化,将来也应该会继续变化下去。
132 |
133 |
134 | 不仅是物理学,科学本身亦是如此,无论在任何时代,都是在前人的基础上进行积累和发展的。有时候,我们会继承前人的观点,并将其打造得更加完善;有时候,我们则需要打破前人的狭隘思想,开辟出新的天地——科学就是这样不断变化的。因此,在这样的变化过程中,物理学家究竟以怎样的方式做过什么,或者说正在做着什么——这样的问题我想应该还是可以回答的。
135 |
136 |
137 | 话说回来,尽管我们无法给物理学下个定义,但还是需要对它所探讨的对象以及大致的游戏规则和势力范围作一些规定。当然,这些要素也是不断变化的,在这里,我们暂且认为物理学是这样一门学问:
138 |
139 |
140 |
141 |
以观察事实为依据,探求我们身处的自然界中所发生的各种现象——但主要限于非生物的现象——背后的规律。
142 |
143 |
144 |
145 | 之所以说“主要限于非生物”,而没有完全将生物排除出去,是因为现在有一门学问叫作“生物物理学”,大家可能也都听说过。此外,“以观察事实为依据”这句话,是为了强调物理学不是一种以纯粹思辨为依据的学问。至于“自然界”“现象”“规律”,以及“背后”“观察”“思辨”这些词具体是什么意思,这里暂且不作定义,大家以自己的常识理解就好。就像以无定义的公理系统为起点的数学一样,本书不妨更进一步,斗胆通过讲述这些无定义概念的故事,对“物理是什么”这一问题做出回答。
146 |
147 |
148 | 那么,物理学这个游戏到底是从什么时候开始,在什么地方确立了其最基本的游戏规则呢?大多数学者都认为是在16世纪到17世纪的欧洲。正如前面所提到的一样,物理学这一学问也是在前人的学问的基础上发展起来的,这一点毋庸置疑。不过,在物理学出现之前,对于自然规律的探索并不都是以观察事实为依据的,这其中包含仅通过纯粹的思考来确立观点的思辨主义或神秘主义的哲学、相信任何现象都是神的旨意的宗教,以及自然哲学等学问。除此之外,还包括一些我们现在已经不认为是学问的东西,例如巫术和魔法。
149 |
150 |
151 | 话说回来,尽管巫术和魔法现在已难登学问的大雅之堂,但无论是物理学,还是它的兄弟化学,在它们的发展过程中,巫术和魔法都扮演了不可忽视的角色。具体来说,占星术之于物理学,炼金术之于化学,它们之间都有着剪不断的密切联系。
152 |
153 |
154 | 自从人类知道如何冶炼金属,以及如何预测日食和月食开始,应该说就已经有了炼金术和占星术的雏形。不过,炼金术和占星术形成后来在欧洲流行的体系,一般认为应追溯到公元前2世纪到公元前1世纪时期,位于尼罗河口的亚历山大港。
155 |
156 |
157 | 亚历山大港据说是由出身古希腊边境马其顿地区的亚历山大大帝所开创的城市。亚历山大大帝统一了当时处于内战纷争之中的各个古希腊城邦,也许是为了巩固其成果,他决定继续出兵征讨希腊的宿敌波斯,不但击败了波斯国王大流士三世的军队,还将远征的脚步拓展到印度西北部,这段历史恐怕大家都有所耳闻。亚历山大大帝在埃及的尼罗河口用自己的名字建立了一座城市,时间大约在公元前4世纪左右,这座城市背靠尼罗河三角洲的沃土,面向宽广的地中海,凭借优越的地理条件,逐步形成了连接地中海沿岸、波斯、阿拉伯和印度的贸易网络,造就了一个繁华的国际化大都市——亚历山大港。而且,这座城市的创始者亚历山大大帝年少时,他的父王曾请到雅典哲学家亚里士多德做他的家庭教师,因此亚历山大大帝十分热爱学术,他在亚历山大港建立了学校和大图书馆,大力鼓励学术发展。
158 |
159 |
160 | 亚历山大大帝死后,执政官托勒密一世在此建立了新王朝,但统治者对学术的热爱以及对学者的优遇依然不减,希腊本土的很多学者也开始移居至此,可以说古希腊文明的中心已经从雅典转移到了亚历山大港,希腊化文明(Hellenistic civilization)开始结出硕果。活跃于此的古希腊学者包括以几何学闻名的欧几里得、创立圆锥曲线 圆锥曲线是指将圆锥体用刀切开之后所得到的曲线。圆、椭圆、双曲线、抛物线都属于圆锥曲线。相对于以直线和圆为对象的欧几里得几何学,阿波罗尼奥斯所发展的几何学是以这些圆锥曲线为基础的。 理论的阿波罗尼奥斯,以及以提出地心说而闻名于世的克劳狄乌斯·托勒密。此外,传说亚里士多德也经常从雅典到此地访问。
161 |
162 |
163 | 除了希腊派学术思想之外,亚历山大港自然也兼容并包了波斯、阿拉伯等东方派,以及埃及本土派的思想。这些思想相互融合,最终产生了一种不可思议的混合体,混合了金属冶炼和天文观测技术,古文明中的思辨主义、神秘主义和巫术,再加上人们内心深处的欲望和不安,它们相互纠缠交错,形成了一团黏糊糊的奇怪的东西,这就是我们称为炼金术和占星术的东西了。一般认为,炼金术和占星术大约是在12世纪左右才经过罗马传入欧洲的。
164 |
165 |
166 | 后来,炼金术和占星术在欧洲遍地开花,据说16世纪时,欧洲几乎每一位诸侯都有自己的占星术士。当时的政治形势十分不稳定,当需要做出重大决策时,他们就会通过占星术来决定应该如何行动。其中最有名的,莫过于首都位于布拉格的神圣罗马帝国皇帝鲁道夫二世(Rudolf II,1552—1612)了。鲁道夫二世是炼金术和占星术的狂热拥趸,他在皇宫旁边建造了一座大研究所,并从整个欧洲招募炼金术士和占星术士,让他们到这里来开展研究。鲁道夫二世之所以要建立这样一座研究所,是因为占星术可以帮助他维持政权,而炼金术可以炼金以改善财政,不过这位皇帝的脑子貌似有点问题,据说最后变得疯疯癫癫的。尽管如此,或者说正是因为如此,他对天文学的进步作出了巨大的贡献。这样的说法看起来有点怪,但从某种意义上来说,这也正是历史的有趣之处吧。
167 |
168 |
169 | 这到底是怎么一回事呢?原来,为天文学带来划时代发展,并在真正意义上为近代物理学诞生奠定基础的德国学者开普勒(Johannes Kepler,1571—1630),正是在鲁道夫二世的庇护下,也是在这位皇帝的研究所里,完成了他的伟大发现。
170 |
171 |
172 | 自然现象的背后必然存在一定的规律,而人们最早注意到这一点,正是通过观察天体的运动。事实上,尽管方法十分原始,但人类进行天体观测,并由此创立天文学这门学问,这一历史可以追溯到有史料记载之前的上古时代。例如,中国等东方文明和古埃及文明自不必说,美洲大陆的印加和玛雅遗迹中也发现了明显是用于天文观测的建筑物痕迹。人们找到天体运行的规律之后,发现通过这些规律可以预测星星的运行,于是他们就想,能不能用这些规律来预测地上人类世界中的各种事件呢?对于生活在充满不安的世界中的古代人来说,抱有这种朴素的愿望也是无可厚非的。
173 |
174 |
175 | 后来,人们发现地上世界的气候变化与天体运行之间有着密切的联系,于是利用这一经验发明了历法。历法为人们带来了巨大的益处,于是人们就会自然而然地相信,一定存在某种占卜的方法,能够将天体运行与更广泛的事物联系起来,例如人的命运以及社会事件。
176 |
177 |
178 | 然而,即便抛开这种愿望,当我们仰望夜空中那些严格按照规律运行的繁星时,都会被这种深邃的神秘感所触动,亲身体会到在自然的最深处,一定有什么巨大的力量让这些星星准确无误地运行着。我们不禁发问,支配整个自然界运行的那最深处的规律到底是什么?正巧,星星的运动是自然现象中规律性最强的,因此从上古时代,人们就开始不断探索星星运动的规律,并以此探求那个终极问题的答案。而且,这一探求并非满足于肉眼所看到的天体运行这一现象层面的规律,而是更进一步达到了探索世界构造,也就是我们现在所说的宇宙学现在我们所说的“世界”一般指的是地球,但在当时“世界”这个词指的是宇宙。 的层面。
179 |
180 |
181 | 为了寻找问题的答案,我们刚才提到了亚历山大港的天文学家托勒密所创立的天文学模型,也就是地心说,这是一种以地球为中心的宇宙理论。根据这一学说,有七颗行星在围绕地球运行,分别是月球、水星、金星、太阳、火星、木星和土星,它们的运行方式是由两个圆周运动叠加而成的复合圆周运动。托勒密将其宇宙理论写成了一部长达13部的长篇大论,我在这里也无法具说其详,不过大体上可以理解成下面这个样子。
182 |
183 |
184 | 想必大家应该知道,我们在天上所看到的星星中有恒星也有行星,恒星在天上排列成固定的形状(即星座)一齐转动,这就好像有一个巨大的球把我们包裹在里面,这个球不停地转动,而恒星就附着在这个球的表面。星座不但形状固定,其位置也是固定的,和地面上观测的地点和时间无关,这就暗示了地球位于这个天球的中心。相对地,行星的位置不是一成不变的,它们穿行于星座之间,有时与星座同向运行,有时又与星座反向运行。行星在天球上的运行轨迹是曲折往复的,这意味着它们并不是单纯地围绕地球做圆周运动。
185 |
186 |
187 | 因此,托勒密提出,行星的运动是由两个圆周运动组合而成的。具体来说,他首先想象有一个以地球为圆心的大圆,然后再想象有一个圆心位于大圆上,并绕大圆转动的小圆,而行星则在这个小圆上转动。其中,小圆叫作“本轮”(epicycle),而大圆叫作“均轮”(deferent)。这个模型看起来过于复杂,而且有明显的人工痕迹,但在当时的观测水平下,人们所能够看到的天球面上的所有行星运动这里所说的天球面上的行星运动,并不是指我们每天看到的东升西落的运动,而是指行星与天球之间的相对运动。以太阳为例,行星运动并不是指太阳每天从我们头顶划过的这种运动,而是指太阳每过一年回到天球上的初始位置的运动。 ,都可以用这个模型来解释。
188 |
189 |
190 | 托勒密提出地心说是在公元2世纪左右,这一学说在提出之后相当长的一段时期里都占据着统治地位,大多数人都信奉这一学说,直到16世纪哥白尼(Nicolaus Copernicus,1473—1543)提出了日心说,才动摇了它的地位。
191 |
192 |
193 | 正如大家所知,哥白尼的日心说是一个以太阳为中心的世界观,其中水星、金星、地球、火星、木星和土星都围绕太阳运行。如果要用一句话来概括哥白尼的学说,那就是行星之所以在天球面上时而顺行时而逆行,并不是由托勒密所说的那种复合圆周运动所导致的,而是因为我们观测它们时所处的地方,也就是地球本身,同样是在运动的。进一步说,我们所看到的天体的周日运动,实际上是由于地球自转而产生的视觉现象;而天体的周年运动,则是由于地球公转而产生的视觉现象。尽管地球也在运动,但星座的大小看起来是不变的,这是因为天球本身非常大,所以相对而言,我们可以认为地球始终处于天球的中心位置,这就是哥白尼学说的内容。
194 |
195 |
196 | 如果从纯粹的数学角度来看,哥白尼的学说相当于将观察天体的视点从地球转移到了太阳,这样一来行星运动就从复合圆周运动变成了简单圆周运动,仅此而已。实际上,哥白尼发表该学说的著作序文中有这样一段前言,大意是说地心说和日心说在本质上并没有区别,这段话是这样说的:
197 |
198 |
199 |
200 |
天文学并非试图寻找行星不规则运动的“原因”,即便找到了该原因,也并非意味着要将其当作真理去说服他人,而只是为天文学家计算天空中日月星辰之运行提供正确的基础,因此如果对天球上所见的同一运动存在不同的假说,则天文学家将选择其中更容易解释的一种。
201 |
202 |
203 |
204 | 当然,一般认为这段前言并非出自哥白尼本人,而是出版该著作的神学家安得利亚斯·奥西安德尔(Andreas Osiander)在出版时加上去的。我们不知道这段话到底是这个人的真实观点,还是为了回避来自教廷的压力而为之,无论如何,至少哥白尼本人相信自己的工作比单纯的“容易解释”更有价值。事实上,哥白尼的学说包含了托勒密学说中所没有的一个重要元素,因此比后者的内容更加丰富。
205 |
206 |
207 | 关于这个重要元素,我们将稍后探讨,但无论如何,日心说不仅提出了一个比地心说更加简洁的世界观,同时将人类观察自然的视点从地球这一狭隘的世界中解放出来。这一点堪称是革命性的,称日心说标志着近代天文学的开端也正是因为这一点。在哥白尼发表其学说半个世纪之后,日心说才被真正赋予了超越“容易解释”“内容丰富”的意义,后来开普勒提出了他的理论,为牛顿的工作奠定了基础。
208 |
209 |
210 | 刚才的内容似乎已经偏离了占星术的话题,然而天文学得到如此发展的背后,占星术多多少少扮演了一定的角色。很多例子可以佐证这一点,据说托勒密在当时是一位颇具威望的占星术士;刚才我们提到的天文学家开普勒,他可谓是时代的宠儿,为探求行星运行的规律倾注了毕生的心血,最终提出了沿用至今的开普勒定律,而这一切的起点也是因为占星术。
211 |
212 |
213 | 然而,我们需要关注的并不是开普勒的动机,而是他能够完成这一伟大发现的原因,这是因为他的研究方法和前人相比有着根本性的不同。古代哲学家所提倡的自然哲学大多不以观察作为依据,而是带有思辨所伴随的强烈的神秘主义色彩,开普勒自身也像前人一样,时常在神秘主义的森林中迷失方向。然而,引领他完成这一伟大发现的并非这样的思辨,也不是巫术,而是以准确的观察事实为依据进行严密的数学推理,这种方法是在前人身上难得一见的,而这也正是近代物理学所采用的方法。与他同时代的另一位学者伽利略(Galileo Galilei,1564—1642)所主张的“实验”,也是一种前人所未能重视的强力武器。后来,新一代学者牛顿(Sir Isaac Newton,1642—1727)将伽利略的“实验”与开普勒的“观察”相结合,奠定了“以观察事实为依据探求自然规律”这一物理学的特质。我刚才曾说,物理学这门学问是在16世纪到17世纪确立的,指的正是这件事。
214 |
215 | 刚才我们简单梳理了自然哲学如何从原始的哲学中脱胎出来形成了物理学,又如何洗去身上的巫术和魔法痕迹。然而,为了让大家更明确地理解古代自然哲学与物理学之间特质的差异,我们需要对开普勒、伽利略和牛顿的工作和思想进行更具体的阐述,这也是后面的章节所要涉及的内容。正如大家所知,伽利略曾因异端嫌疑在罗马教廷接受审判并被判有罪,因此我们的话题必然要涉及宗教与物理学的关系。然而,宗教与科学的关系这个命题对我来说有些过于庞大了,因此对于这个问题,我们只能浅尝辄止。
216 |
217 | 物理学的特质得以明确的16世纪到17世纪到底是怎样一个时代呢?到底是离我们很近还是很遥远呢?也许大家对于这个时间无法一下子产生具体的印象,因此我来列举同时期日本所发生的一些事件,供大家参考。哥白尼提出日心说是在1543年,这时火炮刚刚传入日本。此外,德川时代的数学家关孝和与牛顿正好是同一时代的人物。开普勒和伽利略位于上面两个年代的中间,当时日本正好是丰臣家灭亡,德川家兴起的时候,在牛顿诞生三年之前,日本进入了锁国时代如果对应中国历史的话,哥白尼提出日心说时是明朝嘉靖年间,开普勒和伽利略对应明的衰落和清的兴起,而牛顿生活的年代则对应清朝顺治到康熙年间。——译者注 。物理学就是在这样一个时代从欧洲发展起来的。
218 |
219 |
220 |
221 | 第一章
222 |
223 |
224 |
225 | 1. 开普勒的摸索与发现
226 |
227 | 作为本书的第一章第1节,让我们从开普勒讲起。正如之前所提到的,开普勒曾经也相信占星术的神秘教义,也许是为了维持生计,据说开普勒在年轻时也做过占星的活计。不过,他对当时的占星术士所使用的随意的、形式化的占卜方法是持怀疑态度的。
228 |
229 |
230 | 占星术士在占卜人的运势时,会将被占卜者诞生时的星象填写到一张标有天球十二宫的星图上,并根据星图的内容来预测被占卜者的运势。然而,开普勒对此表示怀疑:这种方法到底有什么依据呢?后来,开普勒的思想发生了转变,他认为天文学家的任务是观察天体运行的真正形态,并找出隐藏在其背后的规律。
231 |
232 |
233 | 开普勒的一位占星术前辈也抱有同样的想法,这个人就是开普勒十分尊敬的老师第谷·布拉赫(Tycho Brahe,1546—1601)。第谷是丹麦贵族,也是皇家御用占星师,据说他非常看不起那些拿粗制滥造的天体运行表来进行占卜的草根占星术士。因此,也许是想要绘制一张更加精密的运行表,第谷说服丹麦国王建造了一座大天文台,并配置了一台据说是当时世界最大的四分仪。第谷在这座天文台里进行了前人无法企及的高精度观测,据说这是在没有望远镜的情况下所能达到的最高的观测精度了。不仅如此,前人的运行表是根据间隔时间较长的粗略观测结果进行插值计算得到的,第谷并不满足于这样的精度,于是他改为以更密集的时间点进行实际观测。
234 |
235 |
236 | 然而,第谷找丹麦国王要了那么多钱,却只做一些其他占星术士都不做的观测活动,于是国王身边的人认为这是在浪费财力。面对这些人的不理解,第谷的态度十分顽固和傲慢,结果他选择离开丹麦,去投奔鲁道夫皇帝设立的那个研究所。第谷可谓声名远播,他来到布拉格的消息不胫而走,当时怀才不遇的开普勒还在靠占星维持生计,年方28岁的他听到这个消息之后,立刻动身背井离乡前往布拉格,一心想要拜第谷为师。
237 |
238 |
239 | 第谷是一位优秀的观测家,但他的数学功底似乎不是很好,因此他从四分仪上读取的大量原始数据只能原封不动地堆在手里。这些数据能够体现行星在天球上的运动,但要通过这些数据计算出行星的运行轨道需要一定的数学才能,而要论数学才能,开普勒在当时算是首屈一指的。从这个意义上来说,即便是不再相信占星术的我们,也不禁要感叹第谷与开普勒的相遇真乃“天作之合”。
240 |
241 |
242 | 第谷也十分信任他的这位学生,开普勒进入门下不久,第谷就去世了,据说在临终前他曾留下遗言,将自己所有的观测数据全部交给开普勒。拿到老师花费16年时间积累下来的精密观测数据之后,开普勒开始尝试对行星轨道进行精密的计算。
243 |
244 |
245 | 开普勒为什么要做这样的工作呢?这是因为人们一直以来相信托勒密和哥白尼的模型可以和观测数据很好地吻合,但后来发现并非如此。人们发现,根据这些模型所计算出的结果包含微小的误差,经过很长时间之后这些误差就会积累放大,与实际观测到的行星位置产生偏差,特别是火星,其理论和实测之间的偏差很大。看来是时候对这些古老的模型进行修正了。出于这样的背景,开普勒首先开始尝试利用第谷的观测数据计算火星的准确运行轨道。
246 |
247 |
248 | 在正式讲开普勒的故事之前,我们还有一个话题没说完。之前我们提到,哥白尼的日心说比托勒密的地心说拥有更加丰富的内容,关于这一点需要详细解释一下。
249 |
250 |
251 | 正如之前所讲过的,如果用一句话来概括哥白尼的学说,就是行星进退往复的原因并不是它们在做复合圆周运动,而是因作为观察者的我们所在的地球也是在运动的。大家应该都知道,当我们乘车时,窗外的电线杆、马路对面的房子以及远处的山,看起来都像是在往后退一样。这时,我们从车窗看到的各种景物的运动,实际上是车本身的运动,因此我们会觉得窗外的景物在以和车相同的速度朝相反的方向运动。同样,如果哥白尼的解释是正确的,那么托勒密模型中,任何行星在本轮上的运动,实际上都是地球本身绕太阳公转的运动。因此,所有行星的本轮应该大小相同,在本轮上的运动方式也应该相同,而且太阳绕地球的公转也应该可以用相同的方法来解释。这些事实在托勒密的学说中是不存在的。
252 |
253 |
254 |
实际上,第谷还提出过一个巧妙的模型,在承认行星本轮大小相同这一日心说观点的同时,认为地球本身是不动的。这个模型认为,太阳围绕不动的地球旋转,而水星、金星、火星、木星和土星则围绕太阳旋转。按照这个模型,行星的运动还是复合圆周运动,和托勒密模型不同的是,行星的本轮的圆心是太阳,而太阳则在均轮上运动。也就是说,这个模型把托勒密的本轮理解为均轮,把均轮理解为本轮,这是第谷模型的一大特色。此外,本轮的圆心上存在太阳这样一个实体,这也是该模型的另一大特色。因此,我们可以认为这一模型是介于托勒密和哥白尼之间的一种折中模型。
255 |
256 |
257 | 如果所有行星的本轮大小相同,那么距离我们越远的行星,其复合圆周运动的幅度看上去就越小,在天球上进退往复的振幅也就越小。因此,行星运动的振幅与其和我们之间的距离,也就是其均轮的大小是成比例的。然而,托勒密的学说中并没有阐述这一规律,也就是说,托勒密模型没有告诉我们如何计算均轮的半径。托勒密的学说认为,每个行星都有自己的运行规律,它们按照各自的规律做不同的运动,但并没有提出一个能够支配所有行星运动的统一规律。
258 |
259 |
260 | 从这一点来说,和托勒密相比,哥白尼的学说除了更容易解释之外,其内容的丰富性也远远胜于前者。不过,地球运动会不会带来什么灾难?地球运动又和宗教教义有着怎样的联系呢?这些问题需要等到伽利略出现之后才能得到解决。
261 |
262 |
263 | 刚才我们谈到了“容易解释”这个问题,但从现实来说,日心说恐怕也并不算容易解释。这一点我们后面还会再提到,那就是即便采用哥白尼的模型,围绕太阳旋转的地球以及其他行星的运动也并不能用简单的圆周运动来解释。
264 |
265 |
266 | 无论是托勒密还是哥白尼,大部分古希腊学派的天文学家都特别拘泥于圆形曲线上的均匀旋转(等角速度旋转)。这其中的原因在于,从古希腊哲学家毕达哥拉斯、柏拉图时代到亚里士多德时代,一直传承着一大原则。简单来说,那就是圆是一种没有起点和终点的曲线,而且曲线上所有部分都是均匀的(即曲线上任意部分都可以互相重合),匀速运动在时间尺度上也是均匀的,而天体运动正是没有开始、没有结束、永恒不变的,因此天体运动必然是圆形的、等角速度的。
267 |
268 |
269 | 从这一原则出发,天体做匀速圆周运动是最理想也是最容易解释的一种情况;也就是说,行星在圆形的轨道上,以等角速度围绕圆心旋转。然而实际的天体运动无法用这种简单的模型来解释,于是天文学家们开始想尽各种办法,试图在不违背“圆形”和“均匀旋转”这两个大原则的前提下解决这一问题。
270 |
271 |
272 | 以地心说中太阳围绕地球旋转的运动为例,根据观测,太阳的运动有时快有时慢。为了解释这一现象,托勒密提出地球的位置不在太阳轨道的圆心,而是在偏离圆心的位置。这一理论认为太阳依然是在圆形轨道上做匀速运动,也就是说并没有违背上述两个原则,而从地球上看起来,在近日点时太阳运动速度快,而在远日点时太阳运动速度慢。在这里,太阳的运动并不是以地球为圆心的,这被称为“偏心圆运动”,地球所在的位置称为“偏心点”。根据这一解释,尽管太阳实际上是做匀速圆周运动的,但由于地球与太阳之间的距离可变,因此从地球上看起来太阳的运动速度也是可变的。
273 |
274 |
275 | 在这个问题上,还存在其他的可能性,即地球虽然位于太阳轨道的圆心,但太阳并非围绕该圆心做匀速旋转,而是围绕偏离圆心的某一点以等角速度旋转。这里的某一点 称为“均衡点”这个词原文为equant,这是一个仅在托勒密模型中出现的词,因此中文存在各种不同的译法,其他译法包括“偏心匀速点”“偏心等距点”“对称点”等。——译者注 ,当太阳在轨道上靠近均衡点时运动速度慢,当远离均衡点时运动速度快。在这一解释中,观测到的速度变化不是“看起来”的,而是实际发生的,但通过引入均衡点这一偏离圆心的点,使得其并没有违背“均匀旋转”的原则。这种做法实际上将距离的中心和旋转的中心相分离,尽管的确没有违背原则,但看起来总觉得有些牵强附会。不过,托勒密却将均衡点和偏心点结合起来,成为确立其世界观的强大武器。
276 |
277 |
278 | 然而,行星的进退往复运动毕竟无法仅通过偏心点、均衡点这样的理论来解释,必须用更复杂的机制才能说得通,这个更复杂的机制就是我们之前提到的本轮。不过,对于在均轮上运动的本轮来说,其中心也必须兼用偏心点和均衡点的机制来解释。于是,在对“圆形”和“均匀旋转”的原则做出上述这些变化之后,总算是让实测值和计算值相互吻合了。
279 |
280 |
281 | 前面我们讲了托勒密的地心说,到了哥白尼这里,尽管地球的运动很大程度上抵消了本轮的作用,然而行星的运动依然无法用简单的匀速圆周运动来解释。为了在不违背“圆形”和“均匀运动”原则的前提下与实测值相吻合,看起来还是需要一些更复杂的变化才行。然而,哥白尼却拒绝承认托勒密的强大武器——均衡点,认为这过于牵强附会 ,但这样一来,要解释行星运行速度的变化,就只能重新引入本轮。于是,哥白尼模型中所使用的本轮数量比托勒密还要多,从结果来看,日心说的确比地心说内容更加丰富,但要说是否容易解释,恐怕是半斤八两。更何况后来人们已经发现实测值和理论值产生了偏差,这表明两种理论都需要从根本上进行修正。现在轮到开普勒出场了。
282 |
283 | 火星之谜与开普勒
284 |
285 | 开普勒来到第谷门下之后,等待他的第一件事就是研究火星。当时,火星的运动是一个未解之谜,而第谷的研究室正好在研究这个问题,而且负责这项研究的人正对此束手无策,这时,开普勒把这项工作接了下来。按照开普勒的说法,就在第谷的研究室在火星问题上陷入泥潭之时,他正好到了,这一定是神的旨意。这种说法确实符合开普勒的风格,无论如何,如果没有这次机遇的话,恐怕也就没有他后来的伟大成果了。
286 |
287 |
288 | 一开始,开普勒还是采用前人的方法来进行研究。然而,前人过于拘泥于“圆形”和“均匀旋转”这两大原则,开普勒对此持怀疑态度,而且随着研究的进行,他的怀疑开始越来越重。我觉得开普勒大概是这样想的:“圆形”和“均匀旋转”这两大原则,前者来自几何学,后者来自运动学,用在车轮和杠杆等组成的机械上比较合适,但对于宇宙来说,实在显得过于“机械”了。根据他的想法,太阳是产生行星运动的“物理原因”的中心,在宇宙中扮演着重要的角色,而且这应该是一种超越几何学的存在。他将火星研究的成果整理成一部著作,名叫《新天文学》。在这部著作中,开普勒反复强调了他的观点,即太阳才是让所有行星围绕其旋转的动力源。抱着这一观点,经过长期大量的计算,他终于发现行星其实是在以太阳为焦点的椭圆形轨道上运行的,其中太阳和行星之间的距离,以及行星的运行速度,都遵从同一个简洁的规律。
289 |
290 |
291 | 开普勒的发现表明,我们不能将行星当成一个受“圆形”“均匀旋转”这些条条框框所支配的机械。而且,通过这一发现,开普勒更加确信,行星之所以围绕太阳运动,是因为太阳为它们提供了动力。关于几何学和运动学的古老原则,开普勒本人是这样说的:“大家可能很难相信我在太阳的动力这个问题上付出了多少心血,但之所以历经如此磨难,是因为我被古老的思想所束缚,将太阳的动力牢牢拴在一台台圆形的水车上。”
292 |
293 |
294 | 接下来,我们来看一看开普勒到底是怎样完成这一重大发现的。不过,正如开普勒本人所说,他所付出的心血是难以置信的,这其中包含了十分复杂的计算过程,我们在此无法具说其详。不过,从一开始的一个模糊的想法,到最终凝结成为一个伟大的发现,通过回顾开普勒的整个思考过程,我们可以从一个侧面感受到物理学中的所谓“自然规律”,到底具有怎样的含义。
295 |
296 |
297 | 刚才我们提到,开普勒一开始是按照前人的方法来计算火星轨道的,但是他所使用的数据却是第谷观测到的最新数据。利用这些数据,开普勒获得了他的第一个成果,即对火星轨道平面每颗行星的轨道都各自形成一个平面,称为轨道平面。 与地球轨道平面的夹角进行了精确的计算,同时也计算出了两个轨道平面交叉时所形成的交线的方向。这里开普勒得到了一个重要的发现,那就是太阳正好位于这两个轨道平面的交线上,这可以解释为,太阳是火星和地球共同的运动中心。
298 |
299 |
300 | 接下来,开普勒尝试计算火星围绕太阳的运动轨道。这项计算工作十分复杂,因为第谷的数据只能直接得到从地球上看到的太阳的方向,以及从地球上看到的火星的方向,但并不包含任何表示距离关系的数据。开普勒没有找到求出距离关系的方法,迫不得已,他只能利用托勒密的模型,假设轨道的形状是圆形,太阳位于偏心点,而火星围绕均衡点做等角速度运动,然后尝试用这些圆和点来拟合第谷的观测数据。
301 |
302 |
303 | 然而,即便在建立了假设的情况下,计算的过程依然极其复杂。据说开普勒的计算花费了数年的时间,在即将大功告成的时候,他发现计算得到的角度与第谷的数据有8分的偏差,因此宣布之前的所有工作失败。话说回来,这个误差其实非常小,因为在过去的计算中,出现几度的误差都被认为是正常的。不过开普勒的学术良心无法允许出现哪怕仅有8分的误差,如果他没有这份严谨的话,恐怕也就与后面的发现失之交臂了。
304 |
305 |
306 | 开普勒决定抛弃之前的假设,就在这时,他想到了一个巧妙的方法,可以用纯几何计算通过观测数据求出太阳、地球、火星这三个天体之间的距离、角度以及时间关系。尽管关于这个方法的详细解释已经超出了本书的主题,不过这个例子很好地体现了开普勒除了是一位神秘学家之外,还是一位思维缜密的思想家,因此我们将这部分内容以注释的形式展现给大家。
307 |
308 |
309 |
310 |
311 |
312 | 图1
313 |
314 |
315 |
开普勒首先尝试计算地球围绕太阳运行的轨道,其中所采用的巧妙方法就是下面这一系列的推理过程。出于简化的需要,在这里我们假设地球和火星的轨道平面是完全重合的。刚才我们讲过,地球和火星的轨道平面是相互交叉的,并非完全重合,但其实这个夹角非常小,即便把它们当成完全重合,所产生的误差也是可以忽略的。于是,在该轨道平面上:
316 |
317 |
318 | 将火星、太阳和地球的位置分别记为$M$、$S$和$E$。(参见图1。这是一张概念性的图,并非展现实际的角度和尺度。)
319 | 当时人们已经知道,地球绕太阳运行的周期为365天,火星绕太阳运行的周期为687天。
320 | 接下来,找到一个地球位于火星和太阳中间,且三者排成一条直线的时间点(地球位于行星和太阳中间且排成一条直线的情况称为“冲”),将这个时间点记为$t_0$,将该时间点地球所在的位置记为$E_0$。($S$与$E_0$的距离$\overline{SE_0}$是未知的)此时火星的位置为$M$。
321 | 将687天后的时间点记为$t_1$,此时火星再次到达$M$,将此时地球的位置记为$E_1$($\overline{SE_1}$同样未知)。由于从地球上看到的太阳的角度变化可以通过每天的观测数据获得,因此可以知道时间点$t_1$时的$\angle E_0SE_1 = \theta _1$。而且,根据观测数据也可以得到从地球看到的太阳和火星间的角度$\angle SE_1M = \phi _1$。
322 | 已知角$\theta _1$和角$\phi _1$可以确定$\triangle MSE_1$的形状,因此我们可以求出时间点$t_1$时的$\overline{SE_1}/\overline{SM}$。(即可以求出未知的$\overline{SE_1}$以$\overline{SM}$为单位的相对值。)
323 | 将再经过687天后的时间点记为$t_2$,此时按照同样的方法,可以求出$\angle SE_2M = \phi _2$以及$\overline{SE_2}/\overline{SM}$。
324 | 将再经过687天后的时间点记为$t_3$,此时按照同样的方法,可以求出$\angle SE_3M = \phi _3$以及$\overline{SE_3}/\overline{SM}$。
325 | 重复上述过程,可以求出在时间点$t_1,t_2,t_3,\cdots$时以太阳为中心的地球的极坐标(以$\overline{SM}$为单位)。
326 | 同样,现在已知地球轨道上的点$E_0,E_1,E_2,\cdots$,将各个点所对应的时间点$t_1,t_2,t_3,\cdots$分别减去365的某个适当的整数倍,我们就可以得到在围绕太阳公转一周的范围内,地球经过轨道上这些点的时间。
327 | 已知轨道上的点所对应的时间,就可以求出以$\overline{SM}$为单位的地球的运行速度。
328 |
329 |
330 |
通过上面的方法,我们就搞清楚了地球围绕太阳的运行方式,接下来开普勒开始解决火星运动的问题。他的推理过程如下。
331 |
332 |
在计算地球运动时,我们从火星的“冲”为出发点,根据间隔687天的角度$\theta$和$\phi$求出以$\overline{SM}$为单位的地球的极坐标。现在,我们还是重复同样的过程,只是将时间间隔改为“冲”的间隔。于是,第一次“冲”时,设火星与太阳之间的距离为$\overline{SM_1}$, 则可求出以$\overline{SM_1}$为单位的地球轨道。接下来,第二次“冲”时,又可以求出以此时火星与太阳的距离,即$\overline{SM_2}$为单位的地球轨道。由于地球的轨道本身是不变的,因此将上面的两个数据与最初的数据进行比较,可以求出$\overline{SM_1}/\overline{SM}$以及$\overline{SM_2}/\overline{SM}$。而且,每次“冲”时火星的方位角(与地球的方位角一致)可以通过观测数据得到,于是可以求出第一次和第二次“冲”时以$\overline{SM}$为单位的火星的极坐标。这样,我们就得到了每次“冲”时以$\overline{SM}$为单位的火星的极坐标,将这些点对应的时间减去687的某个适当的整数倍,就可以求出火星绕太阳公转一周的范围内,火星经过轨道上各点的时间,从而求出以$\overline{SM}$为单位的火星的运行速度。
333 |
334 |
这就是开普勒所想出来的方法,他的几何洞察力之敏锐,推理能力之强,让我们不禁惊叹不已。从中可以看出,他身上拥有一个普通神秘爱好者所不具备的能力,而在当时能够将几何学运用得如此纯熟的,恐怕除了开普勒之外再无他人了吧。
335 |
336 |
337 |
338 | 下面我们来看看开普勒利用这一巧妙的方法到底推导出了怎样的结果。他首先假设地球的轨道为圆形,但太阳并不位于轨道的圆心,而是位于偏离圆心0.018倍半径的一个点上,在这个前提下,他发现地球在远日点和近日点时的速度正好和相应的日地距离成反比。由此他推断,这一比例关系应该在除了远日点和近日点以外的其他点也能成立;也就是说,在轨道上的任意位置,速度和距离都是成反比的。不过,我们发现开普勒实际计算中所使用的关系不是速度,而是角速度×距离,实际上用角速度才是正确的,他将这一点表述为“面积速度守恒”。
339 |
340 |
341 |
342 |
343 | 图2
344 |
345 |
346 |
假设一个物体在以点$O$为中心的轨道$AP_1P_2B$上运动,在单位时间内从$P_1$移动到$P_2$,则线段$\overline{OP_1},\overline{OP_2}$与弧$\overset{\frown}{P_1P_2}$所包围的平面的面积,即图2中阴影部分的面积$S$,称为关于点$O$的面积速度。
347 |
348 |
349 | 接下来再看火星的运动,按照开普勒的方法计算火星的极坐标后,发现火星的各个位置点并不位于一个圆上。刚才的计算都是基于圆形轨道的假设前提来进行的,这意味着这些计算都只不过是空中楼阁,与实测值无法吻合。
350 |
351 |
352 | 于是开普勒开始思考一个问题,既然圆形不对,那么应该是一个怎样的曲线才对呢?他首先想到的是卵形线,但是他发现这样的曲线无法满足面积速度守恒的关系。开普勒在数字和图形的迷宫中徘徊,一条路走不通就尝试另一条路,走来走去发现又回到了原点。就在他感到快要迷失方向的时候,有一天他发现在之前走过的一条路上,又遇到了一些看起来似曾相识却又好像包含什么神秘含义的数值。仔细研究之后,他终于发现了这些数值的意义,原来他所苦苦追寻的火星轨道其实是一个椭圆。
353 |
354 |
355 | 于是,开普勒终于得出了结论:火星的轨道是椭圆形,太阳位于其焦点上,且火星的速度满足面积速度守恒的关系。经过长年累月的烦琐计算,火星运动的真相终于展现在了他的眼前。
356 |
357 |
358 |
359 | 第二章
360 |
361 |
362 |
363 | 4. 热力学的确立
364 |
365 | 关于热的本质到底是什么,刚才我们提到,在卡诺的时代,认为热是一种叫作“热质”的物质的观点十分流行,但是也有其他一些不同的观点。18世纪末,本杰明·汤普森(伦福德伯爵)发现,在制造火炮时,有一个在炮管上镗孔的工序,在这个工序中会产生大量的热,他认为外力做功所产生的摩擦热的量,与功的量之间存在密切的联系。因此,汤普森提出了一种理论,认为热不是一种物质,而是一种肉眼无法观察到的,物体内部存在的运动。
366 |
367 | 在卡诺的时代,汤普森的理论尚未成为主流,但卡诺也渐渐开始注意到这一理论,在卡诺去世之后发现的他的一本笔记上,就有“伦福德伯爵的实验、车轮与轴的摩擦,要实验”的记录。卡诺还自问自答道:如果运动可以产生热,那么就等于承认运动可以产生物质,答案当然是否定的,运动只能产生运动。因此,尽管卡诺在《论火的动力》中采纳了热质说,但并不等于他真的信奉这一理论。
368 |
369 | 由此可见,卡诺的心中还是摇摆不定的。他在笔记中还自问道:如果运动可以产生热,那么反过来说,热显然也可以产生运动,但为什么在这个过程中只有一个热的物体是不行的,还必须得有一个冷的物体呢?
370 |
371 | 卡诺在《论火的动力》的开头就提出,在由热获得动力的过程中,必然伴随热从高温向低温的转移,也许是觉得不回答这个问题的话,论文在逻辑上就不完整,因此卡诺在笔记上记录了进一步探索热与动力之间的关系的必要性:“将伦福德伯爵的实验放在水中进行,在水中对金属打孔,计算产生的热量和消耗的动力之间的关系,然后再用各种不同的金属和木材进行实验。”可惜的是,《论火的动力》一直无人问津,卡诺也还没来得及完成这些实验就去世了,年仅36岁,死因据说是霍乱。
372 |
373 | 卡诺未能完成的实验,在他去世11年之后,由著名的焦耳(James Prescott Joule,1818—1889)完成了。焦耳用桨轮搅拌水,测量因此产生的热量,从而测出了热功当量,这一实验大家应该都不陌生。
374 |
375 | “卡诺定理”的复活
376 |
377 | 于是,当热与功之间的当量关系被发现后,热质说就变得非常站不住脚了,这时热能说开始代替热质说成为主流。汤普森认为热是肉眼无法观察到的物体内部的运动,我们暂且不管正确与否,但这一观点意味着热是一种能量。因此,正如力学上物体的能量分为动能和势能,那么热也可以看作是热能。
378 |
379 | 在力学上,当物体的动能和势能相互转化时,以及当物体对外做功,或者外界对物体做功时,动能和势能的总和是不变的,也就是守恒的。同样,当热在物体之间转移时,热和运动相互转化时,以及对外或外界对其做功时,热能、机械能(动能和势能)以及所做的功的总和此时热和功用同一单位来表示。 是守恒的。上述理论逐渐被更多的人所接受,根据这一理论,我们在介绍瓦特的时候提到的布拉克教授所说的“热量”,其实就是指热能的量。
380 |
381 | 包括热能在内的广义的能量守恒定律是在卡诺去世后不久,由迈尔(Julius Robert von Mayer,1814—1878)和亥姆霍兹亥姆霍兹认为,除热能之外,还有产生电磁现象的电磁能,而这些各种形态的能量的总和是一定的(守恒的)。 (Hermann Ludwig Ferdinand von Helmholtz,1821—1894)提出的。那么,我们应该如何回答那个让卡诺心神不宁的问题呢?也就是说,在用热做功时,为什么既需要高温还需要低温呢?根据迈尔和亥姆霍兹的能量守恒定律,把高温物体中的热能全部转换成功应该也是没有任何问题的。那么,同时需要高温和低温这一点,是不是和能量守恒定律相互矛盾呢?
382 |
383 | 于是,既然卡诺的《论火的动力》中论证的前提条件都需要重新审视,那么其结论,即热机的效率存在上限,也就跟着存疑了。实际上,焦耳发现卡诺采用了热质说,因此不但不相信卡诺的论证,而且还断定其结论“卡诺定理”是错误的。另一方面,尽管亥姆霍兹在其论文中引用了卡诺的《论火的动力》,但却没有对这一点进行深入讨论,似乎也是半信半疑。
384 |
385 | 不过,后来完善了热理论的英国物理学家汤姆森(William Thomson, Lord Kelvin,1824—1907)却持不同的态度。汤姆森看到卡诺的论文时,立刻就感觉到这个理论非常重要。汤姆森在支持迈尔-亥姆霍兹-焦耳 理论的同时,也不想放弃卡诺的观点。
386 |
387 | 实际上,卡诺的论文发表后20年间一直无人问津,1845年,当时正在巴黎留学的汤姆森发现了它,并将它介绍给全世界。热机的效率与结构和工质无关而是只取决于温度,卡诺所发现的规律以及其推理过程和思考方式,让当时年仅21岁的汤姆森感到无比惊叹,他觉得卡诺的论文不仅是在探讨热机的改良,而是触及了热的本性。汤姆森将温度的定义与热机的效率关联起来,这一想法正体现了他对于卡诺热机的理解。
388 |
389 | 汤姆森是如何定义温度的呢?我们通常采用的温度定义是一种人为的,比较省事的方法,即将冰的熔点规定为0度,然后在0度和水的沸点温度之间,按照水银的膨胀比例等分成100份。而汤姆森的定义则是更加直接的,以热的本性为基础做出的,他将之称为“绝对温度”。关于汤姆森的绝对温度,我们后面将会讲到。
390 |
391 | 汤姆森认为,“卡诺定理”是热理论中不可或缺的一部分,因此他并没有像焦耳一样直接否定卡诺的理论。汤姆森曾说:“如果抛弃卡诺的发现,我们将遇到无数的困难,而且恐怕只有在更多实验的基础上建立全新的热理论,才能够克服这些困难。”然而,用热来做功为什么需要低温物体呢?这个问题也让汤姆森感到困扰不已。而且,如果说热不是物质而是能量,那么都用不着焦耳来批判,卡诺在《论火的动力》中的论证就已经错了,这让汤姆森陷入了两难境地。
392 |
393 | 关于这个问题,德国学者克劳修斯(Rudolf Julius Emanuel Clausius,1822—1888)提出了一个解决方案。困扰汤姆森的问题有两个,即为什么不能只用高温物体获得动力,以及这一热的奇妙性质如何才能不与能量守恒定律发生矛盾。为此,克劳修斯提出了一种新的理论,即对于热的这一奇妙性质先予以全盘接受,并没有什么“为什么”,因为这就是热的本性。这样一来,这一新理论不但与能量守恒定律没有任何矛盾,而且还能与之相互补充,对于以错误的前提推导出的“卡诺定理”,克劳修斯用他的新理论也能够原原本本地推导出来。就这样,克劳修斯通过他天才般的洞察力解决了汤姆森的困扰。
394 |
395 | 克劳修斯提出了如下两条基本定律,并在其基础上建立了热力学体系。这里用了“热力学”这个词,它是一种与物体和物质热性质无关的,对于任何由热参与的现象普遍成立的一般理论体系。
396 |
397 | 克劳修斯对于他的两条定律是这样阐述的:
398 |
399 |
400 |
一、功可以转换成热,热也可以转换成功,其中一方的量与另一方的量恒成比例。
401 |
二、不可能在不引起其他变化的前提下,使热从低温物体向高温物体转移。
402 |
403 |
404 | 其中第一定律相当于迈尔-亥姆霍兹-焦耳 的能量守恒定律,这里所说的“成比例”,意思是这一比例是一个常数,而这个常数显然就是焦耳的热功当量。当然,如果用同一单位来测量“功”和“热量”,那么“成比例”就可以替换成“相等”。
405 |
406 | 在这两条定律中出现了“功”“热”以及它们的量,还有“高温”“低温”等术语,对于这些术语我们在此不做定义,大家按照自己的常识来理解即可。不过,后面我们在推导一些结论的时候会用到卡诺的“可逆热机”模型,因此大家需要理解“一点一点 的过程”的定义。关于这一点,请参见 的注释,凡是符合这一定义的过程都是可逆的。
407 |
408 | 克劳修斯的第二定律还可以换一种方法来表述:
409 |
410 |
411 |
二′、不存在任何热机,能够利用循环过程从一个物体中取出热并将其转换成当量的功。
412 |
413 |
414 | 这一表述与原本的克劳修斯第二定律是等价的即内容是相同的。 ,这一点我们通过可逆热机的定义就可以证明。在这一表述中清楚地提到了“一个 物体”,换句话说,就是指“在没有另一个温度更低的物体的情况下”,这正是卡诺论证的前提,也是汤姆森所无法回答的那个“为什么”。
415 |
416 | 那么,如何通过克劳修斯的两条定律原原本本地推导出卡诺定理呢?前面我们讲过,卡诺的论证是以热质说为基础的,并没有想到热是一种能量,因此其中确实包含焦耳所指出的错误。那么,具体来说,到底是哪一点出错了呢?
417 |
418 | 在卡诺的理论中,从热源所吸收的热质,像水力机器中的水一样,不多不少原原本本地被搬运到了冷却器中。热质这一观点原本是化学家所提出的,他们认为热也是一种元素,因此和其他化学元素一样,是不生不灭的,卡诺在《论火的动力》中也继承了这一观点。不过,如果热是一种能量,那么在搬运的过程中一旦做了功,能量就会相应地减少,因此最终到达冷却器的热量也就减少了。
419 |
420 | 请大家回想一下卡诺证明不存在超级热机的方法,即先假设存在超级热机,于是推导出可以凭空做功的永动机。如果我们仔细研究卡诺的证明方法,就会发现其中实际上隐含了“热质的量在从热源搬运到冷却器的过程中没有变化”这一条件。因此,焦耳无法接受卡诺的这一证明方法。
421 |
422 | 尽管如此,如果我们接受克劳修斯的第二定律,那么“不存在超级热机”这一卡诺的结论就可以原原本本地成立。克劳修斯的证明方法如下。
423 |
424 | 首先假设存在能够超越卡诺热机的超级热机,正如我们之前所描述的,超级热机在从热源吸收相同热量的情况下,可以比卡诺热机做更多的功。那么反过来说,在与卡诺热机做相同的功的情况下,超级热机需要吸收更少的热量。因此,与卡诺热机相比,在做相同的功的情况下,超能热机中从热源向冷却器转移的热量更少。
425 |
426 | 接下来,像卡诺在《论火的动力》中所采用的方法一样,我们先让超级热机正向运转,并将其所做的功储存起来。然后,我们用卡诺热机替换超级热机与热源和冷却器相连接,并用刚才储存的全部的功使卡诺热机逆向运转。于是,热从冷却器逆流回热源,但出于之前所说的原因,逆流的热量要比一开始由超级热机所搬运的热量多。因此,如果将正向和逆向转移的热量相减,结果就是一部分热量从冷却器转移到了热源。
427 |
428 | 而且,此时超级热机所产生的功已经全部用于卡诺热机的逆向运转,没有剩余的功了。因此,从结果上看,就相当于“在没有引起其他变化的情况下,使热从低温物体转移到了高温物体”,这显然是违背第二定律的,所以如果认同第二定律,就必须否定超级热机。
429 |
430 | 上述克劳修斯的证明方法与卡诺的证明方法有什么区别呢?我们来简单比较一下。首先,在卡诺的错误证明中,如果存在超级热机,就意味着出现了凭空做功的永动机,而在克劳修斯的证明中,如果存在超级热机,就意味着出现了违背第二定律的机器。凭空做功的机器显然违背了能量守恒定律,也就是违背了克劳修斯的第一定律,但克劳修斯的证明中所出现的机器,虽然违背了第二定律,却没有违背第一定律。因此从这一点上说,这种机器并不是通常意义上的永动机。
431 |
432 | 然而,如果存在违背第二定律的机器,那么只要把大洋的水温降低1度,就可以产生近乎无限的功,因此这也是一种不逊于永动机的梦幻般的机器。于是,人们将这种机器称为“第二类永动机”,相对地,将传统的永动机称为“第一类永动机”。
433 |
434 | 这样一来,卡诺在《论火的动力》中所推出的结论,即“热的动力与提取它所使用的工质无关,它的量只取决于热质最终发生转移的两个物体的温度”依然得以成立。可以说,是克劳修斯拯救了割舍不下这一结论的汤姆森。
435 |
436 | 热定律的数学化
437 |
438 | 如果说问题就这样解决了,恐怕还早了一点,因为用数学的语言来描述自然规律这一物理学的特性还没有得到满足。我们在第一章中已经学习了开普勒、伽利略、牛顿等人所做的努力,从中我们可以发现,物理学的力量就是能够从少量的基本定律出发,准确地预测出诸多现象。而要发挥这一力量,就必须使用数学的语言。第一章中我们介绍过伽利略的名言:“自然之书是用数学的语言写成的”,因此克劳修斯和汤姆森还剩下一个任务没有完成,那就是发现热的自然规律背后的数学语言。
439 |
440 | 请大家回忆一下牛顿的工作。牛顿发现了运动的自然规律背后的数学语言,并据此将天地两界的规律统一成了一个体系。同样,如果我们可以将热的自然规律数学化,那么不仅可以统一热机这一个领域,而是可以统一包括所有热过程在内的广阔领域。接下来我们就来讲讲这个话题。
441 |
442 | 从数学化的角度来说,第一定律没有什么问题。刚才我们讲过,在克劳修斯的表述中,“其中一方的量与另一方的量恒成比例”,这已经相当于是数学语言了。然而,第二定律的数学化一看就没那么容易。“不引起任何变化”“不可能转移”这样的表述,到底应该如何转换成数学公式呢?
443 |
444 | 当然,第二定律的数学化也并不是完全没有方法,其中的关键在于克劳修斯由这两条定律推导出的卡诺定理,即热机的最大效率只取决于热源和冷却器的温度,这一结论是蕴含着数学内容的。也就是说,“效率只取决于热源和冷却器的温度”这句话,如果用数学语言来表述,就是“效率是一个仅关于热源温度和冷却器温度的函数”。那么现在的问题就是,效率到底是关于这两个温度的一个怎样的函数呢?只要确定了这个函数,我们就得到了一个用数学表述第二定律的重要线索。
445 |
446 | 下面,我们分两步来确定效率是关于这两个温度的一个怎样的函数。第一步是先进行实验。我们无法实际制造出一台卡诺热机来进行实验,但我们可以通过实验来测量气体和蒸汽在等温或绝热状态下膨胀、收缩时,其体积、压强和温度之间的关系。通过这些数据,我们可以计算出卡诺热机中活塞的运动能够做多少功。此外,气体和蒸汽以及它们所凝结后的液体的比热,以及蒸发所需的热量等数据,也可以通过实验来得到,这样一来,我们就可以具体计算出卡诺热机从热源吸收的热量,或者向冷却器释放的热量。通过上述两个计算结果,我们就可以使用各种工质来计算出效率。
447 |
448 | 第一步的计算所得到的温度和效率的关系到底是怎样一个函数,想必大家都很想知道,我们留到后面再讲,这一步的重点其实是验证这一关系是否像卡诺定理所说的那样,与工质的种类无关。通过实验来验证卡诺定理是否成立,从“以观察事实为依据”的角度来看,这一步具有非常重要的意义。于是,克劳修斯和汤姆森根据克拉佩龙留下的关于各种气体和蒸汽的数据,以及法国实验家勒尼奥所积累的丰富数据,对卡诺定理进行了具体的计算验证,结果当然是没有问题的。
449 |
450 | 汤姆森根据实验得到的温度和效率的关系,制作了一张摄氏温度和他的绝对温度的换算表,并且将这一换算关系总结成一个经验公式。然而,这一实验性方法还有一个弱点,那就是它还没有从汽缸、活塞、气体、蒸汽等要素中解放出来。但我们根据实验已经基本验证了卡诺定理是正确的,那么现在我们可以以此为前提,以超越这一弱点的方法来求出温度和效率的关系,这就是第二步所要做的工作。
451 |
452 | 下面我们来看一看第二步。这一步的特点是,我们需要求出卡诺热机中热量、做功和温度三者之间的关系,但必须抛开汽缸、活塞、气体、蒸汽等与机器结构和工质种类等相关的属性,而且还需要抛开膨胀、收缩、变形等要素,只着眼于机器的功能。
453 |
454 | 这种方法其实在卡诺推导卡诺定理时已经用过了,克劳修斯修正卡诺的证明时也使用了同样的方法。从这个角度上来看,卡诺热机其实就是一种能够减少高温热库的热量,增加低温热库的热量(但增加量小于前者的减少量),并用减少和增加的热量的差值来做功的可逆的循环机器。于是,对于这样一种机器,其热量、做功和温度之间的数学关系,仅取决于第一定律和卡诺定理。按照这一方法,我们就可以在与机器结构等特性无关的情况下确定效率函数,这一结论应该是普遍性的,即可以消除前面所提到的那个弱点。
455 |
456 | 在正式开始介绍第二步的具体过程之前,我们需要先对“效率”下个定义。一般来说,从功能上看,热机的效率如我们在 中所提到的,指的是高温热库所减少的热量中,有多大比例被用来做功。下面我们会用一点点公式,但不会超过高中的水平,还望大家谅解。刚才所说的效率的定义,写成公式就是:
457 |
458 | $$\text{效率}=\frac{\text{输出的功 }W}{\text{高温热库减少的热量 }Q_高}\tag{1}$$
459 |
460 | 其中热量和功必须用同一单位来表示。现在我们暂时只考虑机器正向运转的情况,也就是高温热库热量减少,低温热库热量增加,同时输出功的情况。
461 |
462 | 下面我们使用第一定律。根据这一定律,将低温热库增加的热量记为$Q_低$,则$W$可定义为:
463 |
464 | $$\text{输出的功 }W=\text{高温热库减少的热量 }Q_高\\-\text{低温热库增加的热量 }Q_低\tag{2}$$
465 |
466 | 显然,这里$Q_高$和$Q_低$均为正数,而且$Q_高$要大于$Q_低$,因此$W$也是正数。
467 |
468 | 求出$W$之后,我们将其代入$(1)$,就可以得到效率的基本公式:
469 |
470 | $$\text{效率}=1-\frac{Q_低}{Q_高}\tag{3}$$
471 |
472 |
473 |
474 | 到这里为止我们只用了第一定律,下面我们使用“卡诺定理”。于是,卡诺热机的效率是一个仅关于高温热库的温度(记为$t_高$)和低温热库的温度(记为$t_低$)的函数,因此$Q_高$和$Q_低$之比也是同样的函数,我们可以得到:
475 |
476 | $$\frac{Q_低}{Q_高}=t_高\text{ 和 }t_低\text{ 的函数 }F(t_高,t_低)\tag{4}$$接下来的问题就是如何确定函数$F$的形式,即回答:$$F(t_高,t_低)=\text{?}$$
477 |
478 |
479 |
480 | 仅根据卡诺热机的功能推导出上述问题答案的过程非常具有教育意义,但这一过程有点过于专业,感觉超出了高中的水平,因此我们把具体过程放在后面的注释里讲,这里只给出答案,即:
481 |
482 | $$F(t_高,t_低)=\frac{f(t_低)}{f(t_高)}\tag{5}$$
483 |
484 | 通过这一答案我们可以看出,原来的二元函数$F$被表达成了一元函数$f$。
485 |
486 |
487 |
写给物理学生的注释:
488 |
关于$F(t_高,t_低)=\dfrac{f(t_低)}{f(t_高)}$的证明,克劳修斯在他的著作《机械热理论》(Die mechanische Wärmetheorie )中进行了阐述,但这一证明完全不像是克劳修斯的风格。下面我们来看一看这一证明的梗概。
489 |
490 |
首先,他先着眼于$F(t_高,t_低)$与工质无关这一点,假设有一个以理想气体这一特殊物质为工质的卡诺热机。接下来,如 中所提到的,他进行了具体的计算。于是,当具体计算$\dfrac{Q_低}{Q_高}$时,他发现其结果等于$\dfrac{T_低}{T_高}$,这里$T$为绝对温度。但是,他的方针是仅通过卡诺热机的功能推导出所有的结论,因此这一证明显然无法满足。于是接下来,他找到了一种可以满足这一方针的证明方法。
491 |
492 |
和正文中一样,我们将高温热库的温度记为$t_高$,将低温热库的温度记为$t_低$,于是$t_高$的热库热量减少了$Q_高$,$t_低$的热库热量增加了$Q_低$,因此下述$(4)$得以成立:
493 |
494 | $$\frac{Q_低}{Q_高}=F(t_高,t_低)$$
495 |
496 |
接下来假设存在第三个热库,其温度为$t_0$,该温度低于$t_低$。于是,假设有另一个卡诺热机,使得$t_低$的热库热量减少了$Q_低$,$t_0$的热库热量增加了$Q_0$,则下式应成立:
497 |
498 | $$\frac{Q_0}{Q_低}=F(t_低,t_0)$$
499 |
500 |
于是,在第一个卡诺热机运转结束后,再使第二个卡诺热机运转,则$t_高$的热库热量减少了$Q_高$,$t_0$的热库热量增加了$Q_0$。如果将两次运转的结果合起来,从功能上说相当于一个卡诺热机在$t_高$的热库和$t_0$的热库间运转,因此下式应成立:
501 |
502 | $$\frac{Q_0}{Q_高}=F(t_高,t_0)$$
503 |
504 |
于是下式:
505 |
506 | $$F(t_高,t_0)=F(t_高,t_低) \cdot F(t_低,t_0)$$
507 |
508 |
或者下式:
509 |
510 | $$F(t_高,t_低)=\frac{F(t_高,t_0)}{F(t_低,t_0)}$$
511 |
512 |
均成立,这里$t_0$只要满足$t_0<t_低$可取任意值,我们将其记为$\overline{t}_0$, 则$t$的函数$f(t)$可定义为:
513 |
514 | $$F(t,\overline{t}_0)=\frac{1}{f(t)}$$
515 |
516 |
结果就相当于:
517 |
518 | $$F(t_高,t_低)=\frac{f(t_低)}{f(t_高)}$$
519 |
520 |
证明完毕(这里$\overline{t}_0$的取值会改变$f(t)$的值,但我们可以看出,这只是改变了一个常数系数而已) 。
521 |
522 |
至于这一证明到底是谁做出的,我们现在已经不得而知,但我从理研借来的克劳修斯的上述著作中,这一证明是用铅笔写在克劳修斯给证明留出的空白部分中的。这本书原本是理研所购买的德国数学家和物理学家卡尔·龙格的藏书,而且这部分铅笔的内容是用德语写的,由此可见,龙格有可能就是这一证明的始作俑者。
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
--------------------------------------------------------------------------------
/src/han/han.min.js:
--------------------------------------------------------------------------------
1 | /*! 漢字標準格式 v3.3.0 | MIT License | css.hanzi.co */
2 | /*! Han.css: the CSS typography framework optimised for Hanzi */
3 |
4 | void function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=b(a,!0):"function"==typeof define&&define.amd?define(function(){return b(a,!0)}):b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a){return"function"==typeof a||a instanceof Element?a:void 0}function d(a){var b=0===a.index&&a.isEnd?"biaodian cjk":"biaodian cjk portion "+(0===a.index?"is-first":a.isEnd?"is-end":"is-inner"),c=S.create("h-char-group",b);return c.innerHTML=a.text,c}function e(a){var b=S.create("div"),c=a.charCodeAt(0).toString(16);return b.innerHTML=''+a+" ",b.firstChild}function f(a){return a.match(R["char"].biaodian.open)?"bd-open":a.match(R["char"].biaodian.close)?"bd-close bd-end":a.match(R["char"].biaodian.end)?/(?:\u3001|\u3002|\uff0c)/i.test(a)?"bd-end bd-cop":"bd-end":a.match(new RegExp(Q.biaodian.liga))?"bd-liga":a.match(new RegExp(Q.biaodian.middle))?"bd-middle":""}function g(a,b){var c,d=S.create("canvas");return d.width="50",d.height="20",d.style.display="none",L.appendChild(d),c=d.getContext("2d"),c.textBaseline="top",c.font="15px "+b+", sans-serif",c.fillStyle="black",c.strokeStyle="black",c.fillText(a,0,0),{node:d,context:c,remove:function(){S.remove(d,L)}}}function h(a,b){var c,d=a.context,e=b.context;try{for(var f=1;20>=f;f++)for(var g=1;50>=g;g++){if("undefined"==typeof c&&d.getImageData(g,f,1,1).data[3]!==e.getImageData(g,f,1,1).data[3]){c=!1;break}if("boolean"==typeof c)break;50===g&&20===f&&"undefined"==typeof c&&(c=!0)}return a.remove(),b.remove(),a=null,b=null,c}catch(h){}return!1}function i(a,b,c){var a=a,b=b||"sans-serif",c=c||"\u8fadQ";return b=g(c,b),a=g(c,a),!h(a,b)}function j(a){var b,c=S.create("!"),d=a.classList;return c.appendChild(S.clone(a)),S.tag("rt",c.firstChild).forEach(function(a){var c,e=S.create("!"),f=[];do{if(c=(c||a).previousSibling,!c||c.nodeName.match(/((?:h\-)?r[ubt])/i))break;e.insertBefore(S.clone(c),e.firstChild),f.push(c)}while(!c.nodeName.match(/((?:h\-)?r[ubt])/i));b=d.contains("zhuyin")?p(e,a):o(e,a);try{a.parentNode.replaceChild(b,a),f.map(S.remove)}catch(g){}}),m(c)}function k(a){var b=S.create("!");return b.appendChild(S.clone(a)),S.tag("rt",b.firstChild).forEach(function(a){var b,c,d=S.create("!"),e=[];do{if(b=(b||a).previousSibling,!b||b.nodeName.match(/((?:h\-)?r[ubt])/i))break;d.insertBefore(S.clone(b),d.firstChild),e.push(b)}while(!b.nodeName.match(/((?:h\-)?r[ubt])/i));c=S.create("rt"),c.innerHTML=q(a),a.parentNode.replaceChild(c,a)}),b.firstChild}function l(a){var b,c,d,e,f=S.create("!"),g=a.classList;return f.appendChild(S.clone(a)),b=f.firstChild,c=d=S.tag("rb",b),e=c.length,void function(a){a&&(d=S.tag("rt",a).map(function(a,b){if(c[b]){var d=p(c[b],a);try{c[b].parentNode.replaceChild(d,c[b])}catch(e){}return d}}),S.remove(a),b.setAttribute("rightangle","true"))}(b.querySelector("rtc.zhuyin")),S.qsa("rtc:not(.zhuyin)",b).forEach(function(a,c){var f;f=S.tag("rt",a).map(function(a,b){var f,h,i=Number(a.getAttribute("rbspan")||1),j=0,k=[];i>e&&(i=e);do{try{f=d.shift(),k.push(f)}catch(l){}if("undefined"==typeof f)break;j+=Number(f.getAttribute("span")||1)}while(i>j);if(j>i){if(k.length>1)return void console.error("An impossible `rbspan` value detected.",ruby);k=S.tag("rb",k[0]),d=k.slice(i).concat(d),k=k.slice(0,i),j=i}h=o(k,a,{"class":g,span:j,order:c});try{k[0].parentNode.replaceChild(h,k.shift()),k.map(S.remove)}catch(l){}return h}),d=f,1===c&&b.setAttribute("doubleline","true"),S.remove(a)}),m(f)}function m(a){var b=a.firstChild,c=S.create("h-ruby");return c.innerHTML=b.innerHTML,S.setAttr(c,b.attributes),c.normalize(),c}function n(a){if(!a instanceof Element)return a;var b=a.classList;return b.contains("pinyin")?b.add("romanization"):b.contains("romanization")?b.add("annotation"):b.contains("mps")?b.add("zhuyin"):b.contains("rightangle")&&b.add("complex"),a}function o(a,b,c){var d=S.create("h-ru"),b=S.clone(b),c=c||{};return c.annotation="true",Array.isArray(a)?d.innerHTML=a.map(function(a){return"undefined"==typeof a?"":a.outerHTML}).join("")+b.outerHTML:(d.appendChild(S.clone(a)),d.appendChild(b)),S.setAttr(d,c),d}function p(a,b){var a=S.clone(a),c=S.create("h-ru");return c.setAttribute("zhuyin",!0),c.appendChild(a),c.innerHTML+=q(b),c}function q(a){var b,c,d,e="string"==typeof a?a:a.textContent;return b=e.replace(R.zhuyin.diao,""),d=b?b.length:0,c=e.replace(b,"").replace(/[\u02C5]/g,"\u02c7").replace(/[\u030D]/g,"\u0358"),0===d?"":''+b+" "+c+" "}function r(a,b){return a&&b&&a.parentNode===b.parentNode}function s(a,b){var c=a,b=b||"";if(S.isElmt(a.nextSibling)||r(a,a.nextSibling))return b+X;for(;!c.nextSibling;)c=c.parentNode;return a!==c&&c.insertAdjacentHTML("afterEnd"," "),b}function t(a,b){return a.isEnd&&0===a.index?b[1]+X+b[2]:0===a.index?s(a.node,a.text):a.text}function u(a){return 0===a.index?S.clone(Y):""}function v(a){var b=a.node.parentNode;return 0===a.index&&(Z=a.endIndexInNode-2),"h-hws"!==b.nodeName.toLowerCase()||1!==a.index&&a.indexInMatch!==Z||b.classList.add("quote-inner"),a.text}function w(a){var b=a.node.parentNode;return"h-hws"===b.nodeName.toLowerCase()&&b.classList.add("quote-outer"),a.text}function x(){var a,b=S.create("div");return b.innerHTML="a b a b ",L.appendChild(b),a=b.firstChild.offsetWidth!==b.lastChild.offsetWidth,S.remove(b),a}function y(a){var b=a.nextSibling;b&&ba(b,"h-cs.jinze-outer")?b.classList.add("hangable-outer"):a.insertAdjacentHTML("afterend",aa)}function z(a){return a.replace(/(biaodian|cjk|bd-jiya|bd-consecutive|bd-hangable)/gi,"").trim()}function A(a){var b,c=a.text,d=a.node.parentNode,e=S.parent(d,"h-char.biaodian"),f=O.createBDChar(c);return f.innerHTML=""+c+" ",f.classList.add(ea),(b=S.parent(d,"h-jinze"))&&C(b),e?function(){return e.classList.add(ea),ba(d,"h-inner, h-inner *")?c:f.firstChild}():f}function B(a){var b,c=ca,d=a.node.parentNode,e=S.parent(d,"h-char.biaodian"),f=S.parent(e,"h-jinze");return b=e.classList,c&&e.setAttribute("prev",c),da&&b.contains("bd-open")&&da.pop().setAttribute("next","bd-open"),da=void 0,a.isEnd?(ca=void 0,b.add(ga,"end-portion")):(ca=z(e.getAttribute("class")),b.add(ga)),f&&(da=D(f,{prev:c,"class":z(e.getAttribute("class"))})),a.text}function C(a){ba(a,".tou, .touwei")&&!ba(a.previousSibling,"h-cs.jiya-outer")&&a.insertAdjacentHTML("beforebegin",ha),ba(a,".wei, .touwei")&&!ba(a.nextSibling,"h-cs.jiya-outer")&&a.insertAdjacentHTML("afterend",ha)}function D(a,b){var c,d;return ba(a,".tou, .touwei")&&(c=a.previousSibling,ba(c,"h-cs")&&(c.className="jinze-outer jiya-outer",c.setAttribute("prev",b.prev))),ba(a,".wei, .touwei")&&(d=a.nextSibling,ba(d,"h-cs")&&(d.className="jinze-outer jiya-outer "+b["class"],d.removeAttribute("prev"))),[c,d]}function E(a,b,c){return function(){var d=O.localize.writeOnCanvas(b,a),e=O.localize.writeOnCanvas(c,a);return O.localize.compareCanvases(d,e)}}function F(){return E('"Romanization Sans"',"a\u030d","\udb80\udc61")}function G(){return E('"Romanization Sans"',"i\u030d","\udb80\udc69")}function H(){return E('"Zhuyin Kaiti"',"\u31b4\u0358","\udb8c\uddb4")}function I(a){return function(b){var b=b||J,c=O.find(b).avoid(ia);return a.forEach(function(a){c.replace(new RegExp(a[0],"ig"),function(b,c){var d=S.clone(ja);return d.innerHTML=""+c[0]+" ",d.setAttribute("display-as",a[1]),0===b.index?d:""})}),c}}var J=a.document,K=J.documentElement,L=J.body,M="3.3.0",N=["initCond","renderElem","renderJiya","renderHanging","correctBiaodian","renderHWS","substCombLigaWithPUA"],O=function(a,b){return new O.fn.init(a,b)},P=function(){return arguments[0]&&(this.context=arguments[0]),arguments[1]&&(this.condition=arguments[1]),this};O.version=M,O.fn=O.prototype={version:M,constructor:O,context:L,condition:K,routine:N,init:P,setRoutine:function(a){return Array.isArray(a)&&(this.routine=a),this},render:function(a){var b=this,a=Array.isArray(a)?a:this.routine;return a.forEach(function(a){"string"==typeof a&&"function"==typeof b[a]?b[a]():Array.isArray(a)&&"function"==typeof b[a[0]]&&b[a.shift()].apply(b,a)}),this}},O.fn.init.prototype=O.fn,O.init=function(){return O.init=O().render()};var Q={punct:{base:"[\u2026,.;:!?\u203d_]",sing:"[\u2010-\u2014\u2026]",middle:"[\\/~\\-&\u2010-\u2014_]",open:"['\"\u2018\u201c\\(\\[\xa1\xbf\u2e18\xab\u2039\u201a\u201c\u201e]",close:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f]",end:"['\"\u201d\u2019\\)\\]\xbb\u203a\u201b\u201d\u201f\u203c\u203d\u2047-\u2049,.;:!?]"},biaodian:{base:"[\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]",liga:"[\u2014\u2026\u22ef]",middle:"[\xb7\uff3c\uff0f\uff0d\u30a0\uff06\u30fb\uff3f]",open:"[\u300c\u300e\u300a\u3008\uff08\u3014\uff3b\uff5b\u3010\u3016]",close:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017]",end:"[\u300d\u300f\u300b\u3009\uff09\u3015\uff3d\uff5d\u3011\u3017\ufe30\uff0e\u3001\uff0c\u3002\uff1a\uff1b\uff1f\uff01\u30fc]"},hanzi:{base:"[\u4e00-\u9fff\u3400-\u4db5\u31c0-\u31e3\u3007\ufa0e\ufa0f\ufa11\ufa13\ufa14\ufa1f\ufa21\ufa23\ufa24\ufa27-\ufa29]|[\ud800-\udbff][\udc00-\udfff]",desc:"[\u2ff0-\u2ffa]",radical:"[\u2f00-\u2fd5\u2e80-\u2ef3]"},latin:{base:"[A-Za-z0-9\xc0-\xff\u0100-\u017f\u0180-\u024f\u2c60-\u2c7f\ua720-\ua7ff\u1e00-\u1eff]",combine:"[\u0300-\u0341\u1dc0-\u1dff]"},ellinika:{base:"[0-9\u0370-\u03ff\u1f00-\u1fff]",combine:"[\u0300-\u0345\u1dc0-\u1dff]"},kirillica:{base:"[0-9\u0400-\u0482\u048a-\u04ff\u0500-\u052f\ua640-\ua66e\ua67e-\ua697]",combine:"[\u0483-\u0489\u2de0-\u2dff\ua66f-\ua67d\ua69f]"},kana:{base:"[\u30a2\u30a4\u30a6\u30a8\u30aa-\u30fa\u3042\u3044\u3046\u3048\u304a-\u3094\u309f\u30ff]|\ud82c[\udc00-\udc01]",small:"[\u3041\u3043\u3045\u3047\u3049\u30a1\u30a3\u30a5\u30a7\u30a9\u3063\u3083\u3085\u3087\u308e\u3095\u3096\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u31f0-\u31ff]",combine:"[\u3099-\u309c]",half:"[\uff66-\uff9f]",mark:"[\u30a0\u309d\u309e\u30fb-\u30fe]"},eonmun:{base:"[\uac00-\ud7a3]",letter:"[\u1100-\u11ff\u314f-\u3163\u3131-\u318e\ua960-\ua97c\ud7b0-\ud7fb]",half:"[\uffa1-\uffdc]"},zhuyin:{base:"[\u3105-\u312d\u31a0-\u31ba]",initial:"[\u3105-\u3119\u312a-\u312c\u31a0-\u31a3]",medial:"[\u3127-\u3129]","final":"[\u311a-\u3129\u312d\u31a4-\u31b3\u31b8-\u31ba]",tone:"[\u02d9\u02ca\u02c5\u02c7\u02cb\u02ea\u02eb]",checked:"[\u31b4-\u31b7][\u0358\u030d]?"}},R=function(){var a="[\\x20\\t\\r\\n\\f]",b=Q.punct.open,c=(Q.punct.close,Q.punct.end),d=Q.punct.middle,e=Q.punct.sing,f=b+"|"+c+"|"+d,g=Q.biaodian.open,h=Q.biaodian.close,i=Q.biaodian.end,j=Q.biaodian.middle,k=Q.biaodian.liga+"{2}",l=g+"|"+i+"|"+j,m=Q.kana.base+Q.kana.combine+"?",n=Q.kana.small+Q.kana.combine+"?",o=Q.kana.half,p=Q.eonmun.base+"|"+Q.eonmun.letter,q=Q.eonmun.half,r=Q.hanzi.base+"|"+Q.hanzi.desc+"|"+Q.hanzi.radical+"|"+m,s=Q.ellinika.combine,t=Q.latin.base+s+"*",u=Q.ellinika.base+s+"*",v=Q.kirillica.combine,w=Q.kirillica.base+v+"*",x=t+"|"+u+"|"+w,y="['\u2019]",z=r+"|(?:"+x+"|"+y+")+",A=Q.zhuyin.initial,B=Q.zhuyin.medial,C=Q.zhuyin["final"],D=Q.zhuyin.tone+"|"+Q.zhuyin.checked;return{"char":{punct:{all:new RegExp("("+f+")","g"),open:new RegExp("("+b+")","g"),end:new RegExp("("+c+")","g"),sing:new RegExp("("+e+")","g")},biaodian:{all:new RegExp("("+l+")","g"),open:new RegExp("("+g+")","g"),close:new RegExp("("+h+")","g"),end:new RegExp("("+i+")","g"),liga:new RegExp("("+k+")","g")},hanzi:new RegExp("("+r+")","g"),latin:new RegExp("("+t+")","ig"),ellinika:new RegExp("("+u+")","ig"),kirillica:new RegExp("("+w+")","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")","g"),eonmun:new RegExp("("+p+"|"+q+")","g")},group:{biaodian:[new RegExp("(("+l+"){2,})","g"),new RegExp("("+k+g+")","g")],punct:null,hanzi:new RegExp("("+r+")+","g"),western:new RegExp("("+t+"|"+u+"|"+w+"|"+f+")+","ig"),kana:new RegExp("("+m+"|"+n+"|"+o+")+","g"),eonmun:new RegExp("("+p+"|"+q+"|"+f+")+","g")},jinze:{hanging:new RegExp(a+"*([\u3001\uff0c\u3002\uff0e])(?!"+i+")","ig"),touwei:new RegExp("("+g+"+)("+z+")("+i+"+)","ig"),tou:new RegExp("("+g+"+)("+z+")","ig"),wei:new RegExp("("+z+")("+i+"+)","ig"),middle:new RegExp("("+z+")("+j+")("+z+")","ig")},zhuyin:{form:new RegExp("^\u02d9?("+A+")?("+B+")?("+C+")?("+D+")?$"),diao:new RegExp("("+D+")","g")},hws:{base:[new RegExp("("+r+")("+x+"|"+b+")","ig"),new RegExp("("+x+"|"+c+")("+r+")","ig")],strict:[new RegExp("("+r+")"+a+"?("+x+"|"+b+")","ig"),new RegExp("("+x+"|"+c+")"+a+"?("+r+")","ig")]},"display-as":{"ja-font-for-hant":["\u67e5 \u67fb","\u555f \u5553","\u9109 \u9115","\u503c \u5024","\u6c61 \u6c5a"],"comb-liga-pua":[["a[\u030d\u0358]","\udb80\udc61"],["e[\u030d\u0358]","\udb80\udc65"],["i[\u030d\u0358]","\udb80\udc69"],["o[\u030d\u0358]","\udb80\udc6f"],["u[\u030d\u0358]","\udb80\udc75"],["\u31b4[\u030d\u0358]","\udb8c\uddb4"],["\u31b5[\u030d\u0358]","\udb8c\uddb5"],["\u31b6[\u030d\u0358]","\udb8c\uddb6"],["\u31b7[\u030d\u0358]","\udb8c\uddb7"]],"comb-liga-vowel":[["a[\u030d\u0358]","\udb80\udc61"],["e[\u030d\u0358]","\udb80\udc65"],["i[\u030d\u0358]","\udb80\udc69"],["o[\u030d\u0358]","\udb80\udc6f"],["u[\u030d\u0358]","\udb80\udc75"]],"comb-liga-zhuyin":[["\u31b4[\u030d\u0358]","\udb8c\uddb4"],["\u31b5[\u030d\u0358]","\udb8c\uddb5"],["\u31b6[\u030d\u0358]","\udb8c\uddb6"],["\u31b7[\u030d\u0358]","\udb8c\uddb7"]]},"inaccurate-char":[["[\u2022\u2027]","\xb7"],["\u22ef\u22ef","\u2026\u2026"],["\u2500\u2500","\u2014\u2014"],["\u2035","\u2018"],["\u2032","\u2019"],["\u2036","\u201c"],["\u2033","\u201d"]]}}();O.UNICODE=Q,O.TYPESET=R,O.UNICODE.cjk=O.UNICODE.hanzi,O.UNICODE.greek=O.UNICODE.ellinika,O.UNICODE.cyrillic=O.UNICODE.kirillica,O.UNICODE.hangul=O.UNICODE.eonmun,O.UNICODE.zhuyin.ruyun=O.UNICODE.zhuyin.checked,O.TYPESET["char"].cjk=O.TYPESET["char"].hanzi,O.TYPESET["char"].greek=O.TYPESET["char"].ellinika,O.TYPESET["char"].cyrillic=O.TYPESET["char"].kirillica,O.TYPESET["char"].hangul=O.TYPESET["char"].eonmun,O.TYPESET.group.hangul=O.TYPESET.group.eonmun,O.TYPESET.group.cjk=O.TYPESET.group.hanzi;var S={id:function(a,b){return(b||J).getElementById(a)},tag:function(a,b){return this.makeArray((b||J).getElementsByTagName(a))},qs:function(a,b){return(b||J).querySelector(a)},qsa:function(a,b){return this.makeArray((b||J).querySelectorAll(a))},parent:function(a,b){return b?function(){if("function"==typeof S.matches){for(;!S.matches(a,b);){if(!a||a===J.documentElement){a=void 0;break}a=a.parentNode}return a}}():a?a.parentNode:void 0},create:function(a,b){var c="!"===a?J.createDocumentFragment():""===a?J.createTextNode(b||""):J.createElement(a);try{b&&(c.className=b)}catch(d){}return c},clone:function(a,b){return a.cloneNode("boolean"==typeof b?b:!0)},remove:function(a){return a.parentNode.removeChild(a)},setAttr:function(a,b){if("object"==typeof b){var c=b.length;if("object"==typeof b[0]&&"name"in b[0])for(var d=0;c>d;d++)void 0!==b[d].value&&a.setAttribute(b[d].name,b[d].value);else for(var e in b)b.hasOwnProperty(e)&&void 0!==b[e]&&a.setAttribute(e,b[e]);return a}},isElmt:function(a){return a&&a.nodeType===Node.ELEMENT_NODE},isIgnorable:function(a){return a?"WBR"===a.nodeName||a.nodeType===Node.COMMENT_NODE:!1},makeArray:function(a){return Array.prototype.slice.call(a)},extend:function(a,b){if(("object"==typeof a||"function"==typeof a)&&"object"==typeof b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}},T=function(b){function c(a,b,c){var d=Element.prototype,e=d.matches||d.mozMatchesSelector||d.msMatchesSelector||d.webkitMatchesSelector;return a instanceof Element?e.call(a,b):c&&/^[39]$/.test(a.nodeType)?!0:!1}var d="0.2.1",e=b.NON_INLINE_PROSE,f=b.PRESETS.prose.filterElements,g=a||{},h=g.document||void 0;if("undefined"==typeof h)throw new Error("Fibre requires a DOM-supported environment.");var i=function(a,b){return new i.fn.init(a,b)};return i.version=d,i.matches=c,i.fn=i.prototype={constructor:i,version:d,finder:[],context:void 0,portionMode:"retain",selector:{},preset:"prose",init:function(a,b){if(b&&(this.preset=null),this.selector={context:null,filter:[],avoid:[],boundary:[]},!a)throw new Error("A context is required for Fibre to initialise.");return a instanceof Node?a instanceof Document?this.context=a.body||a:this.context=a:"string"==typeof a&&(this.context=h.querySelector(a),this.selector.context=a),this},filterFn:function(a){var b=this.selector.filter.join(", ")||"*",d=this.selector.avoid.join(", ")||null,e=c(a,b,!0)&&!c(a,d);return"prose"===this.preset?f(a)&&e:e},boundaryFn:function(a){var b=this.selector.boundary.join(", ")||null,d=c(a,b);return"prose"===this.preset?e(a)||d:d},filter:function(a){return"string"==typeof a&&this.selector.filter.push(a),this},endFilter:function(a){return a?this.selector.filter=[]:this.selector.filter.pop(),this},avoid:function(a){return"string"==typeof a&&this.selector.avoid.push(a),this},endAvoid:function(a){return a?this.selector.avoid=[]:this.selector.avoid.pop(),this},addBoundary:function(a){return"string"==typeof a&&this.selector.boundary.push(a),this},removeBoundary:function(){return this.selector.boundary=[],this},setMode:function(a){return this.portionMode="first"===a?"first":"retain",this},replace:function(a,c){var d=this;return d.finder.push(b(d.context,{find:a,replace:c,filterElements:function(a){return d.filterFn(a)},forceContext:function(a){return d.boundaryFn(a)},portionMode:d.portionMode})),d},wrap:function(a,c){var d=this;return d.finder.push(b(d.context,{find:a,wrap:c,filterElements:function(a){return d.filterFn(a)},forceContext:function(a){return d.boundaryFn(a)},portionMode:d.portionMode})),d},revert:function(a){var b=this.finder.length,a=Number(a)||(0===a?Number(0):"all"===a?b:1);if("undefined"==typeof b||0===b)return this;a>b&&(a=b);for(var c=a;c>0;c--)this.finder.pop().revert();return this}},i.fn.filterOut=i.fn.avoid,i.fn.init.prototype=i.fn,i}(function(){function a(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function b(){return c.apply(null,arguments)||d.apply(null,arguments)}function c(a,c,e,f,g){if(c&&!c.nodeType&&arguments.length<=2)return!1;var h="function"==typeof e;h&&(e=function(a){return function(b,c){return a(b.text,c.startIndex)}}(e));var i=d(c,{find:a,wrap:h?null:e,replace:h?e:"$"+(f||"&"),prepMatch:function(a,b){if(!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";if(f>0){var c=a[f];a.index+=a[0].indexOf(c),a[0]=c}return a.endIndex=a.index+a[0].length,a.startIndex=a.index,a.index=b,a},filterElements:g});return b.revert=function(){return i.revert()},!0}function d(a,b){return new e(a,b)}function e(a,c){var d=c.preset&&b.PRESETS[c.preset];if(c.portionMode=c.portionMode||f,d)for(var e in d)i.call(d,e)&&!i.call(c,e)&&(c[e]=d[e]);this.node=a,this.options=c,this.prepMatch=c.prepMatch||this.prepMatch,this.reverts=[],this.matches=this.search(),this.matches.length&&this.processMatches()}var f="retain",g="first",h=J,i=({}.toString,{}.hasOwnProperty);return b.NON_PROSE_ELEMENTS={br:1,hr:1,script:1,style:1,img:1,video:1,audio:1,canvas:1,svg:1,map:1,object:1,input:1,textarea:1,select:1,option:1,optgroup:1,button:1},b.NON_CONTIGUOUS_PROSE_ELEMENTS={address:1,article:1,aside:1,blockquote:1,dd:1,div:1,dl:1,fieldset:1,figcaption:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,main:1,nav:1,noscript:1,ol:1,output:1,p:1,pre:1,section:1,ul:1,br:1,li:1,summary:1,dt:1,details:1,rp:1,rt:1,rtc:1,script:1,style:1,img:1,video:1,audio:1,canvas:1,svg:1,map:1,object:1,input:1,textarea:1,select:1,option:1,optgroup:1,button:1,table:1,tbody:1,thead:1,th:1,tr:1,td:1,caption:1,col:1,tfoot:1,colgroup:1},b.NON_INLINE_PROSE=function(a){return i.call(b.NON_CONTIGUOUS_PROSE_ELEMENTS,a.nodeName.toLowerCase())},b.PRESETS={prose:{forceContext:b.NON_INLINE_PROSE,filterElements:function(a){return!i.call(b.NON_PROSE_ELEMENTS,a.nodeName.toLowerCase())}}},b.Finder=e,e.prototype={search:function(){function b(a){for(var g=0,j=a.length;j>g;++g){var k=a[g];if("string"==typeof k){if(f.global)for(;c=f.exec(k);)h.push(i.prepMatch(c,d++,e));else(c=k.match(f))&&h.push(i.prepMatch(c,0,e));e+=k.length}else b(k)}}var c,d=0,e=0,f=this.options.find,g=this.getAggregateText(),h=[],i=this;return f="string"==typeof f?RegExp(a(f),"g"):f,b(g),h},prepMatch:function(a,b,c){if(!a[0])throw new Error("findAndReplaceDOMText cannot handle zero-length matches");return a.endIndex=c+a.index+a[0].length,a.startIndex=c+a.index,a.index=b,a},getAggregateText:function(){function a(d,e){if(3===d.nodeType)return[d.data];if(b&&!b(d))return[];var e=[""],f=0;if(d=d.firstChild)do if(3!==d.nodeType){var g=a(d);c&&1===d.nodeType&&(c===!0||c(d))?(e[++f]=g,e[++f]=""):("string"==typeof g[0]&&(e[f]+=g.shift()),g.length&&(e[++f]=g,e[++f]=""))}else e[f]+=d.data;while(d=d.nextSibling);return e}var b=this.options.filterElements,c=this.options.forceContext;return a(this.node)},processMatches:function(){var a,b,c,d=this.matches,e=this.node,f=this.options.filterElements,g=[],h=e,i=d.shift(),j=0,k=0,l=0,m=[e];a:for(;;){if(3===h.nodeType&&(!b&&h.length+j>=i.endIndex?b={node:h,index:l++,text:h.data.substring(i.startIndex-j,i.endIndex-j),indexInMatch:j-i.startIndex,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,isEnd:!0}:a&&g.push({node:h,index:l++,text:h.data,indexInMatch:j-i.startIndex,indexInNode:0}),!a&&h.length+j>i.startIndex&&(a={node:h,index:l++,indexInMatch:0,indexInNode:i.startIndex-j,endIndexInNode:i.endIndex-j,text:h.data.substring(i.startIndex-j,i.endIndex-j)}),j+=h.data.length),c=1===h.nodeType&&f&&!f(h),a&&b){if(h=this.replaceMatch(i,a,g,b),j-=b.node.data.length-b.endIndexInNode,a=null,b=null,g=[],i=d.shift(),l=0,k++,!i)break}else if(!c&&(h.firstChild||h.nextSibling)){h.firstChild?(m.push(h),h=h.firstChild):h=h.nextSibling;continue}for(;;){if(h.nextSibling){h=h.nextSibling;break}if(h=m.pop(),h===e)break a}}},revert:function(){for(var a=this.reverts.length;a--;)this.reverts[a]();this.reverts=[]},prepareReplacementString:function(a,b,c,d){var e=this.options.portionMode;return e===g&&b.indexInMatch>0?"":(a=a.replace(/\$(\d+|&|`|')/g,function(a,b){var d;switch(b){case"&":d=c[0];break;case"`":d=c.input.substring(0,c.startIndex);break;case"'":d=c.input.substring(c.endIndex);break;default:d=c[+b]}return d}),e===g?a:b.isEnd?a.substring(b.indexInMatch):a.substring(b.indexInMatch,b.indexInMatch+b.text.length))},getPortionReplacementNode:function(a,b,c){var d=this.options.replace||"$&",e=this.options.wrap;if(e&&e.nodeType){var f=h.createElement("div");f.innerHTML=e.outerHTML||(new XMLSerializer).serializeToString(e),e=f.firstChild}if("function"==typeof d)return d=d(a,b,c),d&&d.nodeType?d:h.createTextNode(String(d));var g="string"==typeof e?h.createElement(e):e;return d=h.createTextNode(this.prepareReplacementString(d,a,b,c)),d.data&&g?(g.appendChild(d),g):d},replaceMatch:function(a,b,c,d){var e,f,g=b.node,i=d.node;if(g===i){var j=g;b.indexInNode>0&&(e=h.createTextNode(j.data.substring(0,b.indexInNode)),j.parentNode.insertBefore(e,j));var k=this.getPortionReplacementNode(d,a);return j.parentNode.insertBefore(k,j),d.endIndexInNoden;++n){var p=c[n],q=this.getPortionReplacementNode(p,a);p.node.parentNode.replaceChild(q,p.node),this.reverts.push(function(a,b){return function(){b.parentNode.replaceChild(a.node,b)}}(p,q)),m.push(q)}var r=this.getPortionReplacementNode(d,a);return g.parentNode.insertBefore(e,g),g.parentNode.insertBefore(l,g),g.parentNode.removeChild(g),i.parentNode.insertBefore(r,i),i.parentNode.insertBefore(f,i),i.parentNode.removeChild(i),this.reverts.push(function(){e.parentNode.removeChild(e),l.parentNode.replaceChild(g,l),f.parentNode.removeChild(f),r.parentNode.replaceChild(i,r)}),r}},b}()),U=function(){var a=S.create("div");return a.appendChild(S.create("","0-")),a.appendChild(S.create("","2")),a.normalize(),2!==a.firstChild.length}();S.extend(T.fn,{normalize:function(){return U&&this.context.normalize(),this},jinzify:function(a){return this.filter(a||null).avoid("h-jinze").replace(R.jinze.touwei,function(a,b){var c=S.create("h-jinze","touwei");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(R.jinze.wei,function(a,b){var c=S.create("h-jinze","wei");return c.innerHTML=b[0],0===a.index?c:""}).replace(R.jinze.tou,function(a,b){var c=S.create("h-jinze","tou");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).replace(R.jinze.middle,function(a,b){var c=S.create("h-jinze","middle");return c.innerHTML=b[0],0===a.index&&a.isEnd||1===a.index?c:""}).endAvoid().endFilter()},groupify:function(a){var a=S.extend({biaodian:!1,hanzi:!1,kana:!1,eonmun:!1,western:!1},a||{});return this.avoid("h-word, h-char-group"),a.biaodian&&this.replace(R.group.biaodian[0],d).replace(R.group.biaodian[1],d),(a.hanzi||a.cjk)&&this.wrap(R.group.hanzi,S.clone(S.create("h-char-group","hanzi cjk"))),a.western&&this.wrap(R.group.western,S.clone(S.create("h-word","western"))),a.kana&&this.wrap(R.group.kana,S.clone(S.create("h-char-group","kana"))),(a.eonmun||a.hangul)&&this.wrap(R.group.eonmun,S.clone(S.create("h-word","eonmun hangul"))),this.endAvoid(),this},charify:function(a){var a=S.extend({avoid:!0,biaodian:!1,punct:!1,hanzi:!1,latin:!1,ellinika:!1,kirillica:!1,kana:!1,eonmun:!1},a||{});return a.avoid&&this.avoid("h-char"),a.biaodian&&this.replace(R["char"].biaodian.all,c(a.biaodian)||function(a){return e(a.text)}).replace(R["char"].biaodian.liga,c(a.biaodian)||function(a){return e(a.text)}),(a.hanzi||a.cjk)&&this.wrap(R["char"].hanzi,c(a.hanzi||a.cjk)||S.clone(S.create("h-char","hanzi cjk"))),a.punct&&this.wrap(R["char"].punct.all,c(a.punct)||S.clone(S.create("h-char","punct"))),a.latin&&this.wrap(R["char"].latin,c(a.latin)||S.clone(S.create("h-char","alphabet latin"))),(a.ellinika||a.greek)&&this.wrap(R["char"].ellinika,c(a.ellinika||a.greek)||S.clone(S.create("h-char","alphabet ellinika greek"))),(a.kirillica||a.cyrillic)&&this.wrap(R["char"].kirillica,c(a.kirillica||a.cyrillic)||S.clone(S.create("h-char","alphabet kirillica cyrillic"))),a.kana&&this.wrap(R["char"].kana,c(a.kana)||S.clone(S.create("h-char","kana"))),(a.eonmun||a.hangul)&&this.wrap(R["char"].eonmun,c(a.eonmun||a.hangul)||S.clone(S.create("h-char","eonmun hangul"))),this.endAvoid(),this}}),S.extend(O,{isNodeNormalizeNormal:U,find:T,createBDGroup:d,createBDChar:e}),S.matches=O.find.matches,void["setMode","wrap","replace","revert","addBoundary","removeBoundary","avoid","endAvoid","filter","endFilter","jinzify","groupify","charify"].forEach(function(a){O.fn[a]=function(){return this.finder||(this.finder=O.find(this.context)),this.finder[a](arguments[0],arguments[1]),this}});var V={};V.writeOnCanvas=g,V.compareCanvases=h,V.detectFont=i,V.support=function(){function b(a){var b,c=a.charAt(0).toUpperCase()+a.slice(1),d=(a+" "+e.join(c+" ")+c).split(" ");return d.forEach(function(a){"string"==typeof f.style[a]&&(b=!0)}),b||!1}function c(a,b){var c,d,e,f=L||S.create("body"),g=S.create("div"),h=L?g:f,b="function"==typeof b?b:function(){};return c=[""].join(""),h.innerHTML+=c,f.appendChild(g),L||(f.style.background="",f.style.overflow="hidden",e=K.style.overflow,K.style.overflow="hidden",K.appendChild(f)),d=b(h,a),S.remove(h),L||(K.style.overflow=e),!!d}function d(b,c){var d;return a.getComputedStyle?d=J.defaultView.getComputedStyle(b,null).getPropertyValue(c):b.currentStyle&&(d=b.currentStyle[c]),d}var e="Webkit Moz ms".split(" "),f=S.create("h-test");return{columnwidth:b("columnWidth"),fontface:function(){var a;return c('@font-face { font-family: font; src: url("//"); }',function(b,c){var d=S.qsa("style",b)[0],e=d.sheet||d.styleSheet,f=e?e.cssRules&&e.cssRules[0]?e.cssRules[0].cssText:e.cssText||"":"";a=/src/i.test(f)&&0===f.indexOf(c.split(" ")[0])}),a}(),ruby:function(){var a,b=S.create("ruby"),c=S.create("rt"),e=S.create("rp");return b.appendChild(e),b.appendChild(c),K.appendChild(b),a="none"===d(e,"display")||"ruby"===d(b,"display")&&"ruby-text"===d(c,"display")?!0:!1,K.removeChild(b),b=null,c=null,e=null,a}(),"ruby-display":function(){var a=S.create("div");return a.innerHTML=' ',"ruby"===a.querySelector("h-test-a").style.display&&"ruby-text-container"===a.querySelector("h-test-b").style.display}(),"ruby-interchar":function(){var a,b="inter-character",c=S.create("div");return c.innerHTML=' ',a=c.querySelector("h-test").style,a.rubyPosition===b||a.WebkitRubyPosition===b||a.MozRubyPosition===b||a.msRubyPosition===b}(),textemphasis:b("textEmphasis"),unicoderange:function(){var a;return c('@font-face{font-family:test-for-unicode-range;src:local(Arial),local("Droid Sans")}@font-face{font-family:test-for-unicode-range;src:local("Times New Roman"),local(Times),local("Droid Serif");unicode-range:U+270C}',function(){a=!V.detectFont("test-for-unicode-range",'Arial, "Droid Sans"',"Q")}),a}(),writingmode:b("writingMode")}}(),V.initCond=function(a){var b,a=a||K,c="";for(var d in V.support)b=(V.support[d]?"":"no-")+d,a.classList.add(b),c+=b+" ";return c};var W=V.support["ruby-interchar"];S.extend(V,{renderRuby:function(a,b){var b=b||"ruby",c=S.qsa(b,a);S.qsa("rtc",a).concat(c).map(n),c.forEach(function(a){var b,c=a.classList;c.contains("complex")?b=l(a):c.contains("zhuyin")&&(b=W?k(a):j(a)),b&&a.parentNode.replaceChild(b,a)})},simplifyRubyClass:n,getZhuyinHTML:q,renderComplexRuby:l,renderSimpleRuby:j,renderInterCharRuby:k}),S.extend(V,{renderElem:function(a){this.renderRuby(a),this.renderDecoLine(a),this.renderDecoLine(a,"s, del"),this.renderEm(a)},renderDecoLine:function(a,b){var c=S.qsa(b||"u, ins",a),d=c.length;a:for(;d--;){var e=c[d],f=null;do{if(f=(f||e).previousSibling,!f)continue a;c[d-1]===f&&e.classList.add("adjacent")}while(S.isIgnorable(f))}},renderEm:function(a,b){var c=b?"qsa":"tag",b=b||"em",d=S[c](b,a);d.forEach(function(a){var b=O(a);V.support.textemphasis?b.avoid("rt, h-char").charify({biaodian:!0,punct:!0}):b.avoid("rt, h-char, h-char-group").jinzify().groupify({western:!0}).charify({hanzi:!0,biaodian:!0,punct:!0,latin:!0,ellinika:!0,kirillica:!0})})}}),O.normalize=V,O.localize=V,O.support=V.support,O.detectFont=V.detectFont,O.fn.initCond=function(){return this.condition.classList.add("han-js-rendered"),O.normalize.initCond(this.condition),this},void["Elem","DecoLine","Em","Ruby"].forEach(function(a){var b="render"+a;O.fn[b]=function(a){return O.normalize[b](this.context,a),this}}),S.extend(O.support,{heiti:!0,songti:O.detectFont('"Han Songti"'),"songti-gb":O.detectFont('"Han Songti GB"'),kaiti:O.detectFont('"Han Kaiti"'),fangsong:O.detectFont('"Han Fangsong"')}),O.correctBiaodian=function(a){var a=a||J,b=O.find(a);return b.avoid("h-char").replace(/([\u2018\u201c])/g,function(a){var b=O.createBDChar(a.text);return b.classList.add("bd-open","punct"),b}).replace(/([\u2019\u201d])/g,function(a){var b=O.createBDChar(a.text);return b.classList.add("bd-close","bd-end","punct"),b}),O.support.unicoderange?b:b.charify({biaodian:!0})},O.correctBasicBD=O.correctBiaodian,O.correctBD=O.correctBiaodian,S.extend(O.fn,{biaodian:null,correctBiaodian:function(){return this.biaodian=O.correctBiaodian(this.context),this},revertCorrectedBiaodian:function(){try{this.biaodian.revert("all")}catch(a){}return this}}),O.fn.correctBasicBD=O.fn.correctBiaodian,O.fn.revertBasicBD=O.fn.revertCorrectedBiaodian;var X="<>",Y=S.create("h-hws");Y.setAttribute("hidden",""),Y.innerHTML=" ";var Z;S.extend(O,{renderHWS:function(a,b){var c=b?"textarea, code, kbd, samp, pre":"textarea",d=b?"strict":"base",a=a||J,e=O.find(a);
5 | return e.avoid(c).replace(O.TYPESET.hws[d][0],t).replace(O.TYPESET.hws[d][1],t).replace(new RegExp("("+X+")+","g"),u).replace(/([\'"])\s(.+?)\s\1/g,v).replace(/\s[\u2018\u201c]/g,w).replace(/[\u2019\u201d]\s/g,w).normalize(),e}}),S.extend(O.fn,{renderHWS:function(a){return O.renderHWS(this.context,a),this},revertHWS:function(){return S.tag("h-hws",this.context).forEach(function(a){S.remove(a)}),this.HWS=[],this}});var $="bd-hangable",_="h-char.bd-hangable",aa=' ',ba=O.find.matches;O.support["han-space"]=x(),S.extend(O,{detectSpaceFont:x,isSpaceFontLoaded:x(),renderHanging:function(a){var a=a||J,b=O.find(a);return b.avoid("textarea, code, kbd, samp, pre").avoid(_).replace(R.jinze.hanging,function(a){if(/^[\x20\t\r\n\f]+$/.test(a.text))return"";var b,c,d,e,f=a.node.parentNode;return(b=S.parent(f,"h-jinze"))&&y(b),e=a.text.trim(),c=O.createBDChar(e),c.innerHTML=""+e+" ",c.classList.add($),d=S.parent(f,"h-char.biaodian"),d?function(){return d.classList.add($),ba(f,"h-inner, h-inner *")?e:c.firstChild}():c}),b}}),S.extend(O.fn,{renderHanging:function(){var a=this.condition.classList;return O.isSpaceFontLoaded=x(),O.isSpaceFontLoaded&&a.contains("no-han-space")&&(a.remove("no-han-space"),a.add("han-space")),O.renderHanging(this.context),this},revertHanging:function(){return S.qsa("h-char.bd-hangable, h-cs.hangable-outer",this.context).forEach(function(a){var b=a.classList;b.remove("bd-hangable"),b.remove("hangable-outer")}),this}});var ca,da,ea="bd-jiya",fa="h-char.bd-jiya",ga="bd-consecutive",ha=' ',ba=O.find.matches;O.renderJiya=function(a){var a=a||J,b=O.find(a);return b.avoid("textarea, code, kbd, samp, pre, h-cs").avoid(fa).charify({avoid:!1,biaodian:A}).endAvoid().avoid("textarea, code, kbd, samp, pre, h-cs").replace(R.group.biaodian[0],B).replace(R.group.biaodian[1],B),b},S.extend(O.fn,{renderJiya:function(){return O.renderJiya(this.context),this},revertJiya:function(){return S.qsa("h-char.bd-jiya, h-cs.jiya-outer",this.context).forEach(function(a){var b=a.classList;b.remove("bd-jiya"),b.remove("jiya-outer")}),this}});var ia="textarea, code, kbd, samp, pre",ja=S.create("h-char","comb-liga");return S.extend(O,{isVowelCombLigaNormal:F(),isVowelICombLigaNormal:G(),isZhuyinCombLigaNormal:H(),isCombLigaNormal:G()(),substVowelCombLiga:I(O.TYPESET["display-as"]["comb-liga-vowel"]),substZhuyinCombLiga:I(O.TYPESET["display-as"]["comb-liga-zhuyin"]),substCombLigaWithPUA:I(O.TYPESET["display-as"]["comb-liga-pua"]),substInaccurateChar:function(a){var a=a||J,b=O.find(a);b.avoid(ia),O.TYPESET["inaccurate-char"].forEach(function(a){b.replace(new RegExp(a[0],"ig"),a[1])})}}),S.extend(O.fn,{"comb-liga-vowel":null,"comb-liga-vowel-i":null,"comb-liga-zhuyin":null,"inaccurate-char":null,substVowelCombLiga:function(){return this["comb-liga-vowel"]=O.substVowelCombLiga(this.context),this},substVowelICombLiga:function(){return this["comb-liga-vowel-i"]=O.substVowelICombLiga(this.context),this},substZhuyinCombLiga:function(){return this["comb-liga-zhuyin"]=O.substZhuyinCombLiga(this.context),this},substCombLigaWithPUA:function(){return O.isVowelCombLigaNormal()?O.isVowelICombLigaNormal()||(this["comb-liga-vowel-i"]=O.substVowelICombLiga(this.context)):this["comb-liga-vowel"]=O.substVowelCombLiga(this.context),O.isZhuyinCombLigaNormal()||(this["comb-liga-zhuyin"]=O.substZhuyinCombLiga(this.context)),this},revertVowelCombLiga:function(){try{this["comb-liga-vowel"].revert("all")}catch(a){}return this},revertVowelICombLiga:function(){try{this["comb-liga-vowel-i"].revert("all")}catch(a){}return this},revertZhuyinCombLiga:function(){try{this["comb-liga-zhuyin"].revert("all")}catch(a){}return this},revertCombLigaWithPUA:function(){try{this["comb-liga-vowel"].revert("all"),this["comb-liga-vowel-i"].revert("all"),this["comb-liga-zhuyin"].revert("all")}catch(a){}return this},substInaccurateChar:function(){return this["inaccurate-char"]=O.substInaccurateChar(this.context),this},revertInaccurateChar:function(){try{this["inaccurate-char"].revert("all")}catch(a){}return this}}),a.addEventListener("DOMContentLoaded",function(){var a;K.classList.contains("han-init")?O.init():(a=J.querySelector(".han-init-context"))&&(O.init=O(a).render())}),("undefined"==typeof b||b===!1)&&(a.Han=O),O});
--------------------------------------------------------------------------------
/src/han/han.min.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 | /*! 漢字標準格式 v3.3.0 | MIT License | css.hanzi.co */
4 | /*! Han.css: the CSS typography framework optimised for Hanzi */
5 |
6 | progress,sub,sup{vertical-align:baseline}button,hr,input,select{overflow:visible}[type=checkbox],[type=radio],legend{box-sizing:border-box;padding:0}pre,textarea{overflow:auto}[zhuyin] [length="0"],article blockquote,article blockquote blockquote{margin-right:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent;text-decoration:inherit}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button:-moz-focusring,input:-moz-focusring{outline:ButtonText dotted 1px}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{color:inherit;display:table;max-width:100%;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}html{line-height:1.3;-webkit-font-smoothing:subpixel-antialiased}ol,ul{padding-left:2em}blockquote,figure{margin-left:2em;margin-right:2em}address,cite:lang(ja),cite:lang(zh),i:lang(ja),i:lang(zh),var:lang(ja),var:lang(zh){font-style:inherit}pre{white-space:pre;word-wrap:normal}em:lang(ja),em:lang(zh){-moz-text-emphasis:filled circle;-webkit-text-emphasis:filled circle;text-emphasis:filled circle;-moz-text-emphasis-position:under;-webkit-text-emphasis-position:under;text-emphasis-position:under;font-style:inherit;border-bottom:2px dotted;padding-bottom:.05em;border-bottom-width:-webkit-calc(0px);padding-bottom:-webkit-calc(0px)}em:lang(ja){-moz-text-emphasis:filled sesame;-webkit-text-emphasis:filled sesame;text-emphasis:filled sesame;-moz-text-emphasis-position:over;-webkit-text-emphasis-position:over;text-emphasis-position:over}dfn:lang(ja),dfn:lang(zh){font-style:inherit;font-weight:bolder}q,q:lang(en),q:lang(zh-CN){quotes:"\201c" "\201d" "\2018" "\2019" "\201c" "\201d" "\2018" "\2019" "\201c" "\201d" "\2018" "\2019"}q:lang(zh){quotes:"\300c" "\300d" "\300e" "\300f" "\300c" "\300d" "\300e" "\300f" "\300c" "\300d" "\300e" "\300f"}q:lang(en-GB){quotes:"\2018" "\2019" "\201c" "\201d" "\2018" "\2019" "\201c" "\201d" "\2018" "\2019" "\201c" "\201d"}q:before{content:open-quote}q:after{content:close-quote}q:lang(ja):after,q:lang(ja):before{content:none}code,kbd,pre,samp{font-family:monospace,monospace,sans-serif}.han-js-rendered del+del.adjacent,.han-js-rendered del+s.adjacent,.han-js-rendered ins.adjacent,.han-js-rendered s+del.adjacent,.han-js-rendered s+s.adjacent,.han-js-rendered u.adjacent,del+del,del+s,ins+ins,ins+u,s+del,s+s,u+ins,u+u{margin-left:.125em}ins,u{padding-bottom:.05em;border-bottom:1px solid;text-decoration:none}ruby rtc rt{display:inline;font-size:inherit}ruby.mps,ruby.zhuyin{display:ruby;-webkit-ruby-position:inter-character;ruby-position:inter-character}ruby.mps>rt,ruby.zhuyin>rt{-moz-transform:scale(.8);-ms-transform:scale(.8);-webkit-transform:scale(.8);transform:scale(.8);-moz-transform-origin:left center;-ms-transform-origin:left center;-webkit-transform-origin:left center;transform-origin:left center;font-size:.5em}ruby.mps>rt:empty,ruby.zhuyin>rt:empty{display:none}.han-js-rendered del+del,.han-js-rendered del+s,.han-js-rendered ins+ins,.han-js-rendered ins+u,.han-js-rendered s+del,.han-js-rendered s+s,.han-js-rendered u+ins,.han-js-rendered u+u{margin-left:auto}.textemphasis $han-text-emphasis-pf h-jinze,.textemphasis em:lang(ja) h-jinze,.textemphasis em:lang(zh) h-jinze{display:inline}.han-js-rendered em:lang(ja),.han-js-rendered em:lang(zh){padding-bottom:auto;border-bottom-width:0}.no-textemphasis em:lang(ja),.no-textemphasis em:lang(zh){line-height:2}.no-textemphasis em:lang(ja) h-char,.no-textemphasis em:lang(zh) h-char{position:relative;font-style:inherit}.no-textemphasis em:lang(ja) h-char:after,.no-textemphasis em:lang(zh) h-char:after,[zhuyin] h-zhuyin{font-style:normal;font-weight:400;-moz-text-emphasis:none;-webkit-text-emphasis:none;text-emphasis:none;text-decoration:none;text-indent:0}.no-textemphasis em:lang(ja) h-char:after,.no-textemphasis em:lang(zh) h-char:after{-moz-transform:scale(.5);-ms-transform:scale(.5);-webkit-transform:scale(.5);transform:scale(.5);position:absolute;left:50%;top:0;margin-left:-250%;overflow:hidden;display:inline-block;height:1em;width:500%;line-height:1;text-align:center;font-family:Georgia,"Times New Roman",Arial ,!important}em:lang(ja) h-char.biaodian,em:lang(ja) h-char.punct,em:lang(zh) h-char.biaodian,em:lang(zh) h-char.punct{-moz-text-emphasis:none;-webkit-text-emphasis:none;text-emphasis:none}.no-textemphasis em:lang(ja) h-char.biaodian:after,.no-textemphasis em:lang(ja) h-char.punct:after,.no-textemphasis em:lang(zh) h-char.biaodian:after,.no-textemphasis em:lang(zh) h-char.punct:after{content:none!important}.no-textemphasis em:lang(zh) h-char:after{margin-top:1em;content:"\25cf"}.no-textemphasis em:lang(ja) h-char:after{margin-top:-.7em;content:"\fe45"}h-ruby.zhuyin h-zhuyin,ruby.mps h-zhuyin,ruby.zhuyin h-zhuyin{position:relative;letter-spacing:0}h-ruby.zhuyin h-diao,ruby.mps h-diao,ruby.zhuyin h-diao{position:absolute;right:-.9em;bottom:.5em;display:block;font-size:1.5em}h-ruby.zhuyin h-diao h-char,ruby.mps h-diao h-char,ruby.zhuyin h-diao h-char{-webkit-writing-mode:horizontal-tb;writing-mode:horizontal-tb}h-ruby.zhuyin [diao="˙"] h-diao,ruby.mps [diao="˙"] h-diao,ruby.zhuyin [diao="˙"] h-diao{top:-.3em;right:auto;bottom:auto;left:0;font-size:1em}h-ruby.zhuyin [diao=""] h-diao,h-ruby.zhuyin [diao=""] h-diao,h-ruby.zhuyin [diao=""] h-diao,h-ruby.zhuyin [diao=""] h-diao,h-ruby.zhuyin [diao^="ㆴ"] h-diao,h-ruby.zhuyin [diao^="ㆵ"] h-diao,h-ruby.zhuyin [diao^="ㆶ"] h-diao,h-ruby.zhuyin [diao^="ㆷ"] h-diao,ruby.mps [diao=""] h-diao,ruby.mps [diao=""] h-diao,ruby.mps [diao=""] h-diao,ruby.mps [diao=""] h-diao,ruby.mps [diao^="ㆴ"] h-diao,ruby.mps [diao^="ㆵ"] h-diao,ruby.mps [diao^="ㆶ"] h-diao,ruby.mps [diao^="ㆷ"] h-diao,ruby.zhuyin [diao=""] h-diao,ruby.zhuyin [diao=""] h-diao,ruby.zhuyin [diao=""] h-diao,ruby.zhuyin [diao=""] h-diao,ruby.zhuyin [diao^="ㆴ"] h-diao,ruby.zhuyin [diao^="ㆵ"] h-diao,ruby.zhuyin [diao^="ㆶ"] h-diao,ruby.zhuyin [diao^="ㆷ"] h-diao{right:-1em;bottom:-.125em;font-size:1em}h-ru[annotation]{position:relative;display:inline-table;border-collapse:collapse;border-spacing:0;line-height:1.1;text-align:center;vertical-align:1em}h-ru[annotation]>rt,h-ru[order="0"]>rt,h-ruby[rightangle][doubleline] h-ru[order="0"]>rt{display:table-header-group}h-ru[annotation]>h-ru[annotation]{vertical-align:-.1em}h-ru[annotation]>h-ru,h-ru[annotation]>rb,h-ru[annotation]>rt{line-height:1;text-align:center}h-ru[annotation]>rt{height:1em;font-size:.5em;white-space:nowrap;word-break:normal}h-ru[annotation]>rt:after,h-ru[annotation]>rt:before{content:"\2006"}h-ru[order="1"]>rt,h-ruby[rightangle] h-ru[order="0"]>rt,h-ruby[rightangle][doubleline] h-ru[order="1"]>rt{display:table-footer-group}[zhuyin],[zhuyin] h-zhuyin,[zhuyin] h-zhuyin>*,h-jinze,h-word{display:inline-block}h-ru[order="0"]>h-ru[order="1"]{vertical-align:.15em}h-ruby[rightangle][doubleline] h-ru[order="0"] rt{line-height:1.5}h-ruby[rightangle][doubleline] h-ru[annotation]{vertical-align:.5em}[zhuyin] h-zhuyin{line-height:normal;position:relative;height:1em;width:.4em;vertical-align:text-top}[zhuyin] h-zhuyin>*{-moz-transform:scale(.4);-ms-transform:scale(.4);-webkit-transform:scale(.4);transform:scale(.4);-moz-transform-origin:left top;-ms-transform-origin:left top;-webkit-transform-origin:left top;transform-origin:left top}[zhuyin] h-yin{position:absolute;left:0;height:1em;vertical-align:top;line-height:1}[zhuyin] h-diao{position:absolute;bottom:0;right:-.9em;line-height:1}[zhuyin] [length="0"] h-zhuyin,[zhuyin] h-diao:empty,[zhuyin] h-yin:empty{display:none}[zhuyin] [length="1"] h-yin{top:.3em}[zhuyin] [length="1"] h-diao{bottom:0}[zhuyin] [length="2"] h-yin{top:.05em}[zhuyin] [length="2"] h-diao{bottom:-.3em}[zhuyin] [length="3"] h-yin{top:-.05em;line-height:.85}[zhuyin] [length="3"] h-diao{bottom:-.35em}[zhuyin] [diao="˙"] h-diao{top:0;right:auto;bottom:auto;left:.06em}[zhuyin] [diao="˙"] [length="1"] h-diao{top:.15em}[zhuyin] [diao="˙"] [length="2"] h-diao{top:-.05em}[zhuyin] [diao="˙"] [length="3"] h-diao{top:-.2em}[zhuyin] [diao="˪"] h-diao,[zhuyin] [diao="˫"] h-diao{-moz-transform:scale(.6);-ms-transform:scale(.6);-webkit-transform:scale(.6);transform:scale(.6);-moz-transform-origin:left top;-ms-transform-origin:left top;-webkit-transform-origin:left top;transform-origin:left top}[zhuyin] [diao=""] h-diao,[zhuyin] [diao=""] h-diao,[zhuyin] [diao=""] h-diao,[zhuyin] [diao=""] h-diao,[zhuyin] [diao^="ㆴ"] h-diao,[zhuyin] [diao^="ㆵ"] h-diao,[zhuyin] [diao^="ㆶ"] h-diao,[zhuyin] [diao^="ㆷ"] h-diao{bottom:-.6em;margin-right:.3em}[zhuyin]{margin-right:.2em;line-height:1.8}[rightangle] h-ru[annotation]{vertical-align:0;line-height:1}[rightangle] rt:after{content:"";display:inline-block;width:1.2em}h-ru h-ru[zhuyin]{margin-top:-.4em;margin-bottom:-.2em;line-height:1.8}h-jinze,h-word{text-indent:0}@font-face{font-family:"Han Heiti";src:local("Hiragino Sans GB"),local("Lantinghei TC Extralight"),local("Lantinghei SC Extralight"),local(FZLTXHB--B51-0),local(FZLTZHK--GBK1-0),local(".PingFang SC Light"),local(".PingFang TC Light"),local(".PingFang-SC-Light"),local(".PingFang-TC-Light"),local(".PingFang SC"),local(".PingFang TC"),local("Heiti SC Light"),local(STHeitiSC-Light),local("Heiti SC"),local("Heiti TC Light"),local(STHeitiTC-Light),local("Heiti TC"),local("Microsoft Yahei"),local("Microsoft Jhenghei"),local("Noto Sans CJK KR"),local("Noto Sans CJK JP"),local("Noto Sans CJK SC"),local("Noto Sans CJK TC"),local("Source Han Sans K"),local("Source Han Sans KR"),local("Source Han Sans JP"),local("Source Han Sans CN"),local("Source Han Sans HK"),local("Source Han Sans TW"),local("Source Han Sans TWHK"),local("Droid Sans Fallback")}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Heiti";src:local(YuGothic),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro")}@font-face{font-family:"Han Heiti CNS";src:local(".PingFang TC Light"),local(".PingFang-TC-Light"),local(".PingFang TC"),local("Heiti TC Light"),local(STHeitiTC-Light),local("Heiti TC"),local("Lantinghei TC Extralight"),local(FZLTXHB--B51-0),local("Lantinghei TC"),local("Microsoft Jhenghei"),local("Microsoft Yahei"),local("Noto Sans CJK TC"),local("Source Han Sans TC"),local("Source Han Sans TW"),local("Source Han Sans TWHK"),local("Source Han Sans HK"),local("Droid Sans Fallback")}@font-face{font-family:"Han Heiti GB";src:local("Hiragino Sans GB"),local(".PingFang SC Light"),local(".PingFang-SC-Light"),local(".PingFang SC"),local("Lantinghei SC Extralight"),local(FZLTXHK--GBK1-0),local("Lantinghei SC"),local("Heiti SC Light"),local(STHeitiSC-Light),local("Heiti SC"),local("Microsoft Yahei"),local("Noto Sans CJK SC"),local("Source Han Sans SC"),local("Source Han Sans CN"),local("Droid Sans Fallback")}@font-face{font-family:"Han Heiti";font-weight:600;src:local("Hiragino Sans GB W6"),local(HiraginoSansGB-W6),local("Lantinghei TC Demibold"),local("Lantinghei SC Demibold"),local(FZLTZHB--B51-0),local(FZLTZHK--GBK1-0),local(".PingFang-SC-Semibold"),local(".PingFang-TC-Semibold"),local("Heiti SC Medium"),local("STHeitiSC-Medium"),local("Heiti SC"),local("Heiti TC Medium"),local("STHeitiTC-Medium"),local("Heiti TC"),local("Microsoft YaHei Bold"),local("Microsoft Jhenghei Bold"),local(MicrosoftYaHei-Bold),local(MicrosoftJhengHeiBold),local("Microsoft YaHei"),local("Microsoft Jhenghei"),local("Noto Sans CJK KR Bold"),local("Noto Sans CJK JP Bold"),local("Noto Sans CJK SC Bold"),local("Noto Sans CJK TC Bold"),local(NotoSansCJKkr-Bold),local(NotoSansCJKjp-Bold),local(NotoSansCJKsc-Bold),local(NotoSansCJKtc-Bold),local("Source Han Sans K Bold"),local(SourceHanSansK-Bold),local("Source Han Sans K"),local("Source Han Sans KR Bold"),local("Source Han Sans JP Bold"),local("Source Han Sans CN Bold"),local("Source Han Sans HK Bold"),local("Source Han Sans TW Bold"),local("Source Han Sans TWHK Bold"),local("SourceHanSansKR-Bold"),local("SourceHanSansJP-Bold"),local("SourceHanSansCN-Bold"),local("SourceHanSansHK-Bold"),local("SourceHanSansTW-Bold"),local("SourceHanSansTWHK-Bold"),local("Source Han Sans KR"),local("Source Han Sans CN"),local("Source Han Sans HK"),local("Source Han Sans TW"),local("Source Han Sans TWHK")}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Heiti";font-weight:600;src:local("YuGothic Bold"),local("Hiragino Kaku Gothic ProN W6"),local("Hiragino Kaku Gothic Pro W6"),local(YuGo-Bold),local(HiraKakuProN-W6),local(HiraKakuPro-W6)}@font-face{font-family:"Han Heiti CNS";font-weight:600;src:local(".PingFang TC Semibold"),local(".PingFang-TC-Semibold"),local("Heiti TC Medium"),local("STHeitiTC-Medium"),local("Heiti TC"),local("Lantinghei TC Demibold"),local(FZLTXHB--B51-0),local("Microsoft Jhenghei Bold"),local(MicrosoftJhengHeiBold),local("Microsoft Jhenghei"),local("Microsoft YaHei Bold"),local(MicrosoftYaHei-Bold),local("Noto Sans CJK TC Bold"),local(NotoSansCJKtc-Bold),local("Noto Sans CJK TC"),local("Source Han Sans TC Bold"),local("SourceHanSansTC-Bold"),local("Source Han Sans TC"),local("Source Han Sans TW Bold"),local("SourceHanSans-TW"),local("Source Han Sans TW"),local("Source Han Sans TWHK Bold"),local("SourceHanSans-TWHK"),local("Source Han Sans TWHK"),local("Source Han Sans HK"),local("SourceHanSans-HK"),local("Source Han Sans HK")}@font-face{font-family:"Han Heiti GB";font-weight:600;src:local("Hiragino Sans GB W6"),local(HiraginoSansGB-W6),local(".PingFang SC Semibold"),local(".PingFang-SC-Semibold"),local("Lantinghei SC Demibold"),local(FZLTZHK--GBK1-0),local("Heiti SC Medium"),local("STHeitiSC-Medium"),local("Heiti SC"),local("Microsoft YaHei Bold"),local(MicrosoftYaHei-Bold),local("Microsoft YaHei"),local("Noto Sans CJK SC Bold"),local(NotoSansCJKsc-Bold),local("Noto Sans CJK SC"),local("Source Han Sans SC Bold"),local("SourceHanSansSC-Bold"),local("Source Han Sans CN Bold"),local("SourceHanSansCN-Bold"),local("Source Han Sans SC"),local("Source Han Sans CN")}@font-face{font-family:"Han Heiti";src:local("Hiragino Sans GB"),local("Lantinghei TC Extralight"),local("Lantinghei SC Extralight"),local(FZLTXHB--B51-0),local(FZLTZHK--GBK1-0),local(".PingFang SC Light"),local(".PingFang TC Light"),local(".PingFang-SC-Light"),local(".PingFang-TC-Light"),local(".PingFang SC"),local(".PingFang TC"),local("Heiti SC Light"),local("STHeitiSC-Light"),local("Heiti SC"),local("Heiti TC Light"),local("STHeitiTC-Light"),local("Heiti TC"),local("Microsoft Yahei"),local("Microsoft Jhenghei"),local("Noto Sans CJK KR"),local("Noto Sans CJK JP"),local("Noto Sans CJK SC"),local("Noto Sans CJK TC"),local("Source Han Sans K"),local("Source Han Sans KR"),local("Source Han Sans JP"),local("Source Han Sans CN"),local("Source Han Sans HK"),local("Source Han Sans TW"),local("Source Han Sans TWHK"),local("Droid Sans Fallback");unicode-range:U+270C}@font-face{font-family:"Han Heiti";font-weight:600;src:local("Hiragino Sans GB W6"),local(HiraginoSansGB-W6),local("Lantinghei TC Demibold"),local("Lantinghei SC Demibold"),local(FZLTZHB--B51-0),local(FZLTZHK--GBK1-0),local(".PingFang-SC-Semibold"),local(".PingFang-TC-Semibold"),local("Heiti SC Medium"),local("STHeitiSC-Medium"),local("Heiti SC"),local("Heiti TC Medium"),local("STHeitiTC-Medium"),local("Heiti TC"),local("Microsoft YaHei Bold"),local("Microsoft Jhenghei Bold"),local(MicrosoftYaHei-Bold),local(MicrosoftJhengHeiBold),local("Microsoft YaHei"),local("Microsoft Jhenghei"),local("Noto Sans CJK KR Bold"),local("Noto Sans CJK JP Bold"),local("Noto Sans CJK SC Bold"),local("Noto Sans CJK TC Bold"),local(NotoSansCJKkr-Bold),local(NotoSansCJKjp-Bold),local(NotoSansCJKsc-Bold),local(NotoSansCJKtc-Bold),local("Source Han Sans K Bold"),local(SourceHanSansK-Bold),local("Source Han Sans K"),local("Source Han Sans KR Bold"),local("Source Han Sans JP Bold"),local("Source Han Sans CN Bold"),local("Source Han Sans HK Bold"),local("Source Han Sans TW Bold"),local("Source Han Sans TWHK Bold"),local("SourceHanSansKR-Bold"),local("SourceHanSansJP-Bold"),local("SourceHanSansCN-Bold"),local("SourceHanSansHK-Bold"),local("SourceHanSansTW-Bold"),local("SourceHanSansTWHK-Bold"),local("Source Han Sans KR"),local("Source Han Sans CN"),local("Source Han Sans HK"),local("Source Han Sans TW"),local("Source Han Sans TWHK");unicode-range:U+270C}@font-face{font-family:"Han Songti";src:local("Songti SC Regular"),local(STSongti-SC-Regular),local("Songti SC"),local("Songti TC Regular"),local(STSongti-TC-Regular),local("Songti TC"),local(STSong),local("Lisong Pro"),local(SimSun),local(PMingLiU)}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Songti";src:local(YuMincho),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("MS Mincho")}@font-face{font-family:"Han Songti CNS";src:local("Songti TC Regular"),local(STSongti-TC-Regular),local("Songti TC"),local("Lisong Pro"),local("Songti SC Regular"),local(STSongti-SC-Regular),local("Songti SC"),local(STSong),local(PMingLiU),local(SimSun)}@font-face{font-family:"Han Songti GB";src:local("Songti SC Regular"),local(STSongti-SC-Regular),local("Songti SC"),local(STSong),local(SimSun),local(PMingLiU)}@font-face{font-family:"Han Songti";font-weight:600;src:local("STSongti SC Bold"),local("STSongti TC Bold"),local(STSongti-SC-Bold),local(STSongti-TC-Bold),local("STSongti SC"),local("STSongti TC")}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Songti";font-weight:600;src:local("YuMincho Demibold"),local("Hiragino Mincho ProN W6"),local("Hiragino Mincho Pro W6"),local(YuMin-Demibold),local(HiraMinProN-W6),local(HiraMinPro-W6),local(YuMincho),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro")}@font-face{font-family:"Han Songti CNS";font-weight:600;src:local("STSongti TC Bold"),local("STSongti SC Bold"),local(STSongti-TC-Bold),local(STSongti-SC-Bold),local("STSongti TC"),local("STSongti SC")}@font-face{font-family:"Han Songti GB";font-weight:600;src:local("STSongti SC Bold"),local(STSongti-SC-Bold),local("STSongti SC")}@font-face{font-family:"Han Songti";src:local("Songti SC Regular"),local(STSongti-SC-Regular),local("Songti SC"),local("Songti TC Regular"),local(STSongti-TC-Regular),local("Songti TC"),local(STSongti),local("Lisong Pro"),local("MS Mincho"),local(SimSun),local(PMingLiU);unicode-range:U+270C}@font-face{font-family:"Han Songti";font-weight:600;src:local("Songti TC Bold"),local("Songti SC Bold"),local(STSongti-TC-Bold),local(STSongti-SC-Bold),local("Songti TC"),local("Songti SC");unicode-range:U+270C}@font-face{font-family:"Han Songti CNS";src:local("Songti TC Regular"),local("Lisong Pro"),local("Songti TC"),local("Songti SC Regular"),local(STSong),local("Songti SC"),local("MS Mincho"),local(PMingLiU),local(SimSun);unicode-range:U+270C}@font-face{font-family:"Han Songti CNS";font-weight:600;src:local("Songti TC Bold"),local("Songti SC Bold"),local(STSongti-TC-Bold),local(STSongti-SC-Bold),local("Songti TC"),local("Songti SC");unicode-range:U+270C}@font-face{font-family:"Han Songti GB";src:local("Songti SC"),local(STSong),local(SimSun);unicode-range:U+270C}@font-face{font-family:"Han Songti GB";font-weight:600;src:local("Songti SC Bold"),local(STSongti-SC-Bold),local("Songti SC");unicode-range:U+270C}@font-face{font-family:cursive;src:local("Kaiti TC Regular"),local(STKaiTi-TC-Regular),local("Kaiti TC"),local("Kaiti SC"),local(STKaiti),local(BiauKai),local("標楷體"),local(DFKaiShu-SB-Estd-BF),local(Kaiti),local(DFKai-SB)}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Kaiti";src:local("Kaiti TC Regular"),local(STKaiTi-TC-Regular),local("Kaiti TC"),local("Kaiti SC"),local(STKaiti),local(BiauKai),local("標楷體"),local(DFKaiShu-SB-Estd-BF),local(Kaiti),local(DFKai-SB)}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Kaiti CNS";src:local(BiauKai),local("標楷體"),local(DFKaiShu-SB-Estd-BF),local("Kaiti TC Regular"),local(STKaiTi-TC-Regular),local("Kaiti TC")}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Kaiti GB";src:local("Kaiti SC Regular"),local(STKaiTi-SC-Regular),local("Kaiti SC"),local(STKaiti),local(Kai),local(Kaiti),local(DFKai-SB)}@font-face{font-family:cursive;font-weight:600;src:local("Kaiti TC Bold"),local(STKaiTi-TC-Bold),local("Kaiti SC Bold"),local(STKaiti-SC-Bold),local("Kaiti TC"),local("Kaiti SC")}@font-face{font-family:"Han Kaiti";font-weight:600;src:local("Kaiti TC Bold"),local(STKaiTi-TC-Bold),local("Kaiti SC Bold"),local(STKaiti-SC-Bold),local("Kaiti TC"),local("Kaiti SC")}@font-face{font-family:"Han Kaiti CNS";font-weight:600;src:local("Kaiti TC Bold"),local(STKaiTi-TC-Bold),local("Kaiti TC")}@font-face{font-family:"Han Kaiti GB";font-weight:600;src:local("Kaiti SC Bold"),local(STKaiti-SC-Bold)}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Fangsong";src:local(STFangsong),local(FangSong)}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Fangsong CNS";src:local(STFangsong),local(FangSong)}@font-face{unicode-range:U+4E00-9FFF,U+3400-4DB5,U+20000-2A6D6,U+2A700-2B734,U+2B740-2B81D,U+FA0E-FA0F,U+FA11,U+FA13-FA14,U+FA1F,U+FA21,U+FA23,U+FA24,U+FA27-FA29,U+3040-309F,U+30A0-30FF,U+3099-309E,U+FF66-FF9F,U+3007,U+31C0-31E3,U+2F00-2FD5,U+2E80-2EF3;font-family:"Han Fangsong GB";src:local(STFangsong),local(FangSong)}@font-face{font-family:"Biaodian Sans";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local("MS Gothic"),local(SimSun);unicode-range:U+FF0E}@font-face{font-family:"Biaodian Serif";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSong),local(SimSun);unicode-range:U+FF0E}@font-face{font-family:"Biaodian Pro Sans";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local("MS Gothic"),local(SimSun);unicode-range:U+FF0E}@font-face{font-family:"Biaodian Pro Serif";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSong),local(SimSun);unicode-range:U+FF0E}@font-face{font-family:"Biaodian Pro Sans CNS";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local("MS Gothic"),local(SimSun);unicode-range:U+FF0E}@font-face{font-family:"Biaodian Pro Serif CNS";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSong),local(SimSun);unicode-range:U+FF0E}@font-face{font-family:"Biaodian Pro Sans GB";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local("MS Gothic"),local(SimSun);unicode-range:U+FF0E}@font-face{font-family:"Biaodian Pro Serif GB";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSong),local(SimSun);unicode-range:U+FF0E}@font-face{font-family:"Biaodian Sans";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local(SimSun);unicode-range:U+00B7}@font-face{font-family:"Biaodian Serif";src:local("Songti SC"),local(STSong),local("Heiti SC"),local(SimSun);unicode-range:U+00B7}@font-face{font-family:"Biaodian Pro Sans";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local(SimSun);unicode-range:U+00B7}@font-face{font-family:"Biaodian Pro Serif";src:local("Songti SC"),local(STSong),local("Heiti SC"),local(SimSun);unicode-range:U+00B7}@font-face{font-family:"Biaodian Pro Sans CNS";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local(SimSun);unicode-range:U+00B7}@font-face{font-family:"Biaodian Pro Serif CNS";src:local("Songti SC"),local(STSong),local("Heiti SC"),local(SimSun);unicode-range:U+00B7}@font-face{font-family:"Biaodian Pro Sans GB";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local(SimSun);unicode-range:U+00B7}@font-face{font-family:"Biaodian Pro Serif GB";src:local("Songti SC"),local(STSong),local("Heiti SC"),local(SimSun);unicode-range:U+00B7}@font-face{font-family:"Biaodian Sans";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Sans GB"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Microsoft Yahei"),local(SimSun);unicode-range:U+2014}@font-face{font-family:"Biaodian Serif";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSong),local("Microsoft Yahei"),local(SimSun);unicode-range:U+2014}@font-face{font-family:"Yakumono Sans";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Arial Unicode MS"),local("MS Gothic");unicode-range:U+2014}@font-face{font-family:"Yakumono Serif";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("MS Mincho"),local("Microsoft Yahei");unicode-range:U+2014}@font-face{font-family:"Biaodian Pro Sans";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Sans GB"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Microsoft Yahei"),local(SimSun);unicode-range:U+2014}@font-face{font-family:"Biaodian Pro Serif";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSong),local("Microsoft Yahei"),local(SimSun);unicode-range:U+2014}@font-face{font-family:"Biaodian Pro Sans CNS";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Sans GB"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Microsoft Yahei"),local(SimSun);unicode-range:U+2014}@font-face{font-family:"Biaodian Pro Serif CNS";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSong),local("Microsoft Yahei"),local(SimSun);unicode-range:U+2014}@font-face{font-family:"Biaodian Pro Sans GB";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Sans GB"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Microsoft Yahei"),local(SimSun);unicode-range:U+2014}@font-face{font-family:"Biaodian Pro Serif GB";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSong),local("Microsoft Yahei"),local(SimSun);unicode-range:U+2014}@font-face{font-family:"Biaodian Sans";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Sans GB"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local(Meiryo),local("MS Gothic"),local(SimSun),local(PMingLiU);unicode-range:U+2026}@font-face{font-family:"Biaodian Serif";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local("MS Mincho"),local(SimSun),local(PMingLiU);unicode-range:U+2026}@font-face{font-family:"Yakumono Sans";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local(Meiryo),local("MS Gothic");unicode-range:U+2026}@font-face{font-family:"Yakumono Serif";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("MS Mincho");unicode-range:U+2026}@font-face{font-family:"Biaodian Pro Sans";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Sans GB"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local(SimSun),local(PMingLiU);unicode-range:U+2026}@font-face{font-family:"Biaodian Pro Serif";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(SimSun),local(PMingLiU);unicode-range:U+2026}@font-face{font-family:"Biaodian Pro Sans CNS";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Sans GB"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local(SimSun),local(PMingLiU);unicode-range:U+2026}@font-face{font-family:"Biaodian Pro Serif CNS";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSongti),local(SimSun),local(PMingLiU);unicode-range:U+2026}@font-face{font-family:"Biaodian Pro Sans GB";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Sans GB"),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local(SimSun),local(PMingLiU);unicode-range:U+2026}@font-face{font-family:"Biaodian Pro Serif GB";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype"),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Songti SC"),local(STSongti),local(SimSun),local(PMingLiU);unicode-range:U+2026}@font-face{font-family:"Biaodian Pro Sans GB";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local(SimSun),local(PMingLiU);unicode-range:U+201C-201D,U+2018-2019}@font-face{font-family:"Biaodian Pro Sans GB";font-weight:700;src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local(SimSun),local(PMingLiU);unicode-range:U+201C-201D,U+2018-2019}@font-face{font-family:"Biaodian Pro Serif GB";src:local("Lisong Pro"),local("Heiti SC"),local(STHeiti),local(SimSun),local(PMingLiU);unicode-range:U+201C-201D,U+2018-2019}@font-face{font-family:"Biaodian Pro Serif GB";font-weight:700;src:local("Lisong Pro"),local("Heiti SC"),local(STHeiti),local(SimSun),local(PMingLiU);unicode-range:U+201C-201D,U+2018-2019}@font-face{font-family:"Biaodian Sans";src:local(Georgia),local("Times New Roman"),local(Arial),local("Droid Sans Fallback");unicode-range:U+25CF}@font-face{font-family:"Biaodian Serif";src:local(Georgia),local("Times New Roman"),local(Arial),local("Droid Sans Fallback");unicode-range:U+25CF}@font-face{font-family:"Biaodian Pro Sans";src:local(Georgia),local("Times New Roman"),local(Arial),local("Droid Sans Fallback");unicode-range:U+25CF}@font-face{font-family:"Biaodian Pro Serif";src:local(Georgia),local("Times New Roman"),local(Arial),local("Droid Sans Fallback");unicode-range:U+25CF}@font-face{font-family:"Biaodian Pro Sans CNS";src:local(Georgia),local("Times New Roman"),local(Arial),local("Droid Sans Fallback");unicode-range:U+25CF}@font-face{font-family:"Biaodian Pro Serif CNS";src:local(Georgia),local("Times New Roman"),local(Arial),local("Droid Sans Fallback");unicode-range:U+25CF}@font-face{font-family:"Biaodian Pro Sans GB";src:local(Georgia),local("Times New Roman"),local(Arial),local("Droid Sans Fallback");unicode-range:U+25CF}@font-face{font-family:"Biaodian Pro Serif GB";src:local(Georgia),local("Times New Roman"),local(Arial),local("Droid Sans Fallback");unicode-range:U+25CF}@font-face{font-family:"Biaodian Pro Sans";src:local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("MS Gothic");unicode-range:U+3002,U+FF0C,U+3001,U+FF1B,U+FF1A,U+FF1F,U+FF01,U+FF0D,U+FF0F,U+FF3C}@font-face{font-family:"Biaodian Pro Serif";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("MS Mincho");unicode-range:U+3002,U+FF0C,U+3001,U+FF1B,U+FF1A,U+FF1F,U+FF01,U+FF0D,U+FF0F,U+FF3C}@font-face{font-family:"Biaodian Pro Sans CNS";src:local("Heiti TC"),local("Lihei Pro"),local("Microsoft Jhenghei"),local(PMingLiU);unicode-range:U+3002,U+FF0C,U+3001}@font-face{font-family:"Biaodian Pro Sans CNS";src:local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Heiti TC"),local("Lihei Pro"),local("Microsoft Jhenghei"),local(PMingLiU),local("MS Gothic");unicode-range:U+FF1B,U+FF1A,U+FF1F,U+FF01}@font-face{font-family:"Biaodian Pro Sans CNS";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("MS Mincho");unicode-range:U+FF0D,U+FF0F,U+FF3C}@font-face{font-family:"Biaodian Pro Serif CNS";src:local(STSongti-TC-Regular),local("Lisong Pro"),local("Heiti TC"),local(PMingLiU);unicode-range:U+3002,U+FF0C,U+3001}@font-face{font-family:"Biaodian Pro Serif CNS";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local(PMingLiU),local("MS Mincho");unicode-range:U+FF1B,U+FF1A,U+FF1F,U+FF01,U+FF0D,U+FF0F,U+FF3C}@font-face{font-family:"Biaodian Pro Sans GB";src:local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local(SimSun),local("MS Gothic");unicode-range:U+3002,U+FF0C,U+3001,U+FF1B,U+FF1A,U+FF1F,U+FF01,U+FF0D,U+FF0F,U+FF3C}@font-face{font-family:"Biaodian Pro Serif GB";src:local("Songti SC"),local(STSongti),local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Hiragino Sans GB"),local("Heiti SC"),local(STHeiti),local(SimSun),local("MS Mincho");unicode-range:U+3002,U+FF0C,U+3001,U+FF1B,U+FF1A,U+FF1F,U+FF01}@font-face{font-family:"Biaodian Pro Serif GB";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local(PMingLiU),local("MS Mincho");unicode-range:U+FF0D,U+FF0F,U+FF3C}@font-face{font-family:"Biaodian Pro Sans";src:local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Yu Gothic"),local(YuGothic),local(SimSun),local(PMingLiU);unicode-range:U+300C-300F,U+300A-300B,U+3008-3009,U+FF08-FF09,U+3014-3015}@font-face{font-family:"Biaodian Pro Serif";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Yu Mincho"),local(YuMincho),local(SimSun),local(PMingLiU);unicode-range:U+300C-300F,U+300A-300B,U+3008-3009,U+FF08-FF09,U+3014-3015}@font-face{font-family:"Biaodian Pro Sans CNS";src:local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Yu Gothic"),local(YuGothic),local(SimSun),local(PMingLiU);unicode-range:U+300C-300F,U+300A-300B,U+3008-3009,U+FF08-FF09,U+3014-3015}@font-face{font-family:"Biaodian Pro Serif CNS";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Yu Mincho"),local(YuMincho),local(SimSun),local(PMingLiU);unicode-range:U+300C-300F,U+300A-300B,U+3008-3009,U+FF08-FF09,U+3014-3015}@font-face{font-family:"Biaodian Pro Sans GB";src:local("Hiragino Kaku Gothic ProN"),local("Hiragino Kaku Gothic Pro"),local("Yu Gothic"),local(YuGothic),local(SimSun),local(PMingLiU);unicode-range:U+300C-300F,U+300A-300B,U+3008-3009,U+FF08-FF09,U+3014-3015}@font-face{font-family:"Biaodian Pro Serif GB";src:local("Hiragino Mincho ProN"),local("Hiragino Mincho Pro"),local("Yu Mincho"),local(YuMincho),local(SimSun),local(PMingLiU);unicode-range:U+300C-300F,U+300A-300B,U+3008-3009,U+FF08-FF09,U+3014-3015}@font-face{font-family:"Biaodian Basic";src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Basic";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Sans";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Pro Sans";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Pro Sans";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Pro Sans CNS";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Pro Sans GB";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Pro Serif";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Pro Serif CNS";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Biaodian Pro Serif GB";font-weight:700;src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+2014,U+2026,U+00B7}@font-face{font-family:"Latin Italic Serif";src:local("Georgia Italic"),local("Times New Roman Italic"),local(Georgia-Italic),local(TimesNewRomanPS-ItalicMT),local(Times-Italic)}@font-face{font-family:"Latin Italic Serif";font-weight:700;src:local("Georgia Bold Italic"),local("Times New Roman Bold Italic"),local(Georgia-BoldItalic),local(TimesNewRomanPS-BoldItalicMT),local(Times-Italic)}@font-face{font-family:"Latin Italic Sans";src:local("Helvetica Neue Italic"),local("Helvetica Oblique"),local("Arial Italic"),local(HelveticaNeue-Italic),local(Helvetica-LightOblique),local(Arial-ItalicMT)}@font-face{font-family:"Latin Italic Sans";font-weight:700;src:local("Helvetica Neue Bold Italic"),local("Helvetica Bold Oblique"),local("Arial Bold Italic"),local(HelveticaNeue-BoldItalic),local(Helvetica-BoldOblique),local(Arial-BoldItalicMT)}@font-face{unicode-range:U+0030-0039;font-family:"Numeral TF Sans";src:local(Skia),local("Neutraface 2 Text"),local(Candara),local(Corbel)}@font-face{unicode-range:U+0030-0039;font-family:"Numeral TF Serif";src:local(Georgia),local("Hoefler Text"),local("Big Caslon")}@font-face{unicode-range:U+0030-0039;font-family:"Numeral TF Italic Serif";src:local("Georgia Italic"),local("Hoefler Text Italic"),local(Georgia-Italic),local(HoeflerText-Italic)}@font-face{unicode-range:U+0030-0039;font-family:"Numeral LF Sans";src:local("Helvetica Neue"),local(Helvetica),local(Arial)}@font-face{unicode-range:U+0030-0039;font-family:"Numeral LF Italic Sans";src:local("Helvetica Neue Italic"),local("Helvetica Oblique"),local("Arial Italic"),local(HelveticaNeue-Italic),local(Helvetica-LightOblique),local(Arial-ItalicMT)}@font-face{unicode-range:U+0030-0039;font-family:"Numeral LF Italic Sans";font-weight:700;src:local("Helvetica Neue Bold Italic"),local("Helvetica Bold Oblique"),local("Arial Bold Italic"),local(HelveticaNeue-BoldItalic),local(Helvetica-BoldOblique),local(Arial-BoldItalicMT)}@font-face{unicode-range:U+0030-0039;font-family:"Numeral LF Serif";src:local(Palatino),local("Palatino Linotype"),local("Times New Roman")}@font-face{unicode-range:U+0030-0039;font-family:"Numeral LF Italic Serif";src:local("Palatino Italic"),local("Palatino Italic Linotype"),local("Times New Roman Italic"),local(Palatino-Italic),local(Palatino-Italic-Linotype),local(TimesNewRomanPS-ItalicMT)}@font-face{unicode-range:U+0030-0039;font-family:"Numeral LF Italic Serif";font-weight:700;src:local("Palatino Bold Italic"),local("Palatino Bold Italic Linotype"),local("Times New Roman Bold Italic"),local(Palatino-BoldItalic),local(Palatino-BoldItalic-Linotype),local(TimesNewRomanPS-BoldItalicMT)}@font-face{font-family:"Numeral TF Sans";src:local(lying-to-firefox);unicode-range:U+270C}@font-face{font-family:"Numeral TF Serif";src:local(lying-to-firefox);unicode-range:U+270C}@font-face{font-family:"Numeral TF Italic Serif";src:local(lying-to-firefox);unicode-range:U+270C}@font-face{font-family:"Numeral LF Sans";src:local(lying-to-firefox);unicode-range:U+270C}@font-face{font-family:"Numeral LF Italic Sans";src:local(lying-to-firefox);unicode-range:U+270C}@font-face{font-family:"Numeral LF Italic Sans";font-weight:700;src:local(lying-to-firefox);unicode-range:U+270C}@font-face{font-family:"Numeral LF Serif";src:local(lying-to-firefox);unicode-range:U+270C}@font-face{font-family:"Numeral LF Italic Serif";src:local(lying-to-firefox);unicode-range:U+270C}@font-face{font-family:"Numeral LF Italic Serif";font-weight:700;src:local(lying-to-firefox);unicode-range:U+270C}@font-face{src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+3105-312D,U+31A0-31BA,U+02D9,U+02CA,U+02C5,U+02C7,U+02CB,U+02EA-02EB,U+030D,U+0358,U+F31B4-F31B7,U+F0061,U+F0065,U+F0069,U+F006F,U+F0075;font-family:"Zhuyin Kaiti"}@font-face{unicode-range:U+3105-312D,U+31A0-31BA,U+02D9,U+02CA,U+02C5,U+02C7,U+02CB,U+02EA-02EB,U+030D,U+0358,U+F31B4-F31B7,U+F0061,U+F0065,U+F0069,U+F006F,U+F0075;font-family:"Zhuyin Heiti";src:local("Hiragino Sans GB"),local("Heiti TC"),local("Microsoft Jhenghei"),url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype")}@font-face{font-family:"Zhuyin Heiti";src:local("Heiti TC"),local("Microsoft Jhenghei"),url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");unicode-range:U+3127}@font-face{src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");font-family:"Zhuyin Heiti";unicode-range:U+02D9,U+02CA,U+02C5,U+02C7,U+02CB,U+02EA-02EB,U+31B4,U+31B5,U+31B6,U+31B7,U+030D,U+0358,U+F31B4-F31B7,U+F0061,U+F0065,U+F0069,U+F006F,U+F0075}@font-face{src:url(./font/han.woff?v3.3.0) format("woff"),url(./font/han.otf?v3.3.0) format("opentype");font-family:"Romanization Sans";unicode-range:U+030D,U+0358,U+F31B4-F31B7,U+F0061,U+F0065,U+F0069,U+F006F,U+F0075}article strong :lang(ja-Latn),article strong :lang(zh-Latn),article strong :not(:lang(zh)):not(:lang(ja)),article strong:lang(ja-Latn),article strong:lang(zh-Latn),article strong:not(:lang(zh)):not(:lang(ja)),html :lang(ja-Latn),html :lang(zh-Latn),html :not(:lang(zh)):not(:lang(ja)),html:lang(ja-Latn),html:lang(zh-Latn),html:not(:lang(zh)):not(:lang(ja)){font-family:"Helvetica Neue",Helvetica,Arial,"Han Heiti",sans-serif}[lang*=Hant],[lang=zh-TW],[lang=zh-HK],[lang^=zh],article strong:lang(zh),article strong:lang(zh-Hant),html:lang(zh),html:lang(zh-Hant){font-family:"Biaodian Pro Sans CNS","Helvetica Neue",Helvetica,Arial,"Zhuyin Heiti","Han Heiti",sans-serif}.no-unicoderange [lang*=Hant],.no-unicoderange [lang=zh-TW],.no-unicoderange [lang=zh-HK],.no-unicoderange [lang^=zh],.no-unicoderange article strong:lang(zh),.no-unicoderange article strong:lang(zh-Hant),html:lang(zh).no-unicoderange,html:lang(zh-Hant).no-unicoderange{font-family:"Helvetica Neue",Helvetica,Arial,"Han Heiti",sans-serif}[lang*=Hans],[lang=zh-CN],article strong:lang(zh-CN),article strong:lang(zh-Hans),html:lang(zh-CN),html:lang(zh-Hans){font-family:"Biaodian Pro Sans GB","Helvetica Neue",Helvetica,Arial,"Han Heiti GB",sans-serif}.no-unicoderange [lang*=Hans],.no-unicoderange [lang=zh-CN],.no-unicoderange article strong:lang(zh-CN),.no-unicoderange article strong:lang(zh-Hans),html:lang(zh-CN).no-unicoderange,html:lang(zh-Hans).no-unicoderange{font-family:"Helvetica Neue",Helvetica,Arial,"Han Heiti GB",sans-serif}[lang^=ja],article strong:lang(ja),html:lang(ja){font-family:"Yakumono Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.no-unicoderange [lang^=ja],.no-unicoderange article strong:lang(ja),html:lang(ja).no-unicoderange{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}article blockquote i :lang(ja-Latn),article blockquote i :lang(zh-Latn),article blockquote i :not(:lang(zh)):not(:lang(ja)),article blockquote i:lang(ja-Latn),article blockquote i:lang(zh-Latn),article blockquote i:not(:lang(zh)):not(:lang(ja)),article blockquote var :lang(ja-Latn),article blockquote var :lang(zh-Latn),article blockquote var :not(:lang(zh)):not(:lang(ja)),article blockquote var:lang(ja-Latn),article blockquote var:lang(zh-Latn),article blockquote var:not(:lang(zh)):not(:lang(ja)){font-family:"Latin Italic Sans","Helvetica Neue",Helvetica,Arial,"Han Heiti",sans-serif}article blockquote i:lang(zh),article blockquote i:lang(zh-Hant),article blockquote var:lang(zh),article blockquote var:lang(zh-Hant){font-family:"Biaodian Pro Sans CNS","Latin Italic Sans","Helvetica Neue",Helvetica,Arial,"Zhuyin Heiti","Han Heiti",sans-serif}.no-unicoderange article blockquote i:lang(zh),.no-unicoderange article blockquote i:lang(zh-Hant),.no-unicoderange article blockquote var:lang(zh),.no-unicoderange article blockquote var:lang(zh-Hant){font-family:"Latin Italic Sans","Helvetica Neue",Helvetica,Arial,"Han Heiti",sans-serif}article blockquote i:lang(zh-CN),article blockquote i:lang(zh-Hans),article blockquote var:lang(zh-CN),article blockquote var:lang(zh-Hans){font-family:"Biaodian Pro Sans GB","Latin Italic Sans","Helvetica Neue",Helvetica,Arial,"Han Heiti GB",sans-serif}.no-unicoderange article blockquote i:lang(zh-CN),.no-unicoderange article blockquote i:lang(zh-Hans),.no-unicoderange article blockquote var:lang(zh-CN),.no-unicoderange article blockquote var:lang(zh-Hans){font-family:"Latin Italic Sans","Helvetica Neue",Helvetica,Arial,"Han Heiti GB",sans-serif}article blockquote i:lang(ja),article blockquote var:lang(ja){font-family:"Yakumono Sans","Latin Italic Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.no-unicoderange article blockquote i:lang(ja),.no-unicoderange article blockquote var:lang(ja){font-family:"Latin Italic Sans","Helvetica Neue",Helvetica,Arial,sans-serif}article figure blockquote :lang(ja-Latn),article figure blockquote :lang(zh-Latn),article figure blockquote :not(:lang(zh)):not(:lang(ja)),article figure blockquote:lang(ja-Latn),article figure blockquote:lang(zh-Latn),article figure blockquote:not(:lang(zh)):not(:lang(ja)){font-family:Georgia,"Times New Roman","Han Songti",cursive,serif}article figure blockquote:lang(zh),article figure blockquote:lang(zh-Hant){font-family:"Biaodian Pro Serif CNS","Numeral LF Serif",Georgia,"Times New Roman","Zhuyin Kaiti","Han Songti",serif}.no-unicoderange article figure blockquote:lang(zh),.no-unicoderange article figure blockquote:lang(zh-Hant){font-family:"Numeral LF Serif",Georgia,"Times New Roman","Han Songti",serif}article figure blockquote:lang(zh-CN),article figure blockquote:lang(zh-Hans){font-family:"Biaodian Pro Serif GB","Numeral LF Serif",Georgia,"Times New Roman","Han Songti GB",serif}.no-unicoderange article figure blockquote:lang(zh-CN),.no-unicoderange article figure blockquote:lang(zh-Hans){font-family:"Numeral LF Serif",Georgia,"Times New Roman","Han Songti GB",serif}article figure blockquote:lang(ja){font-family:"Yakumono Serif","Numeral LF Serif",Georgia,"Times New Roman",serif}.no-unicoderange article figure blockquote:lang(ja){font-family:"Numeral LF Serif",Georgia,"Times New Roman",serif}article blockquote :lang(ja-Latn),article blockquote :lang(zh-Latn),article blockquote :not(:lang(zh)):not(:lang(ja)),article blockquote:lang(ja-Latn),article blockquote:lang(zh-Latn),article blockquote:not(:lang(zh)):not(:lang(ja)){font-family:Georgia,"Times New Roman","Han Kaiti",cursive,serif}article blockquote:lang(zh),article blockquote:lang(zh-Hant){font-family:"Biaodian Pro Serif CNS","Numeral LF Serif",Georgia,"Times New Roman","Zhuyin Kaiti","Han Kaiti",cursive,serif}.no-unicoderange article blockquote:lang(zh),.no-unicoderange article blockquote:lang(zh-Hant){font-family:"Numeral LF Serif",Georgia,"Times New Roman","Han Kaiti",cursive,serif}article blockquote:lang(zh-CN),article blockquote:lang(zh-Hans){font-family:"Biaodian Pro Serif GB","Numeral LF Serif",Georgia,"Times New Roman","Han Kaiti GB",cursive,serif}.no-unicoderange article blockquote:lang(zh-CN),.no-unicoderange article blockquote:lang(zh-Hans){font-family:"Numeral LF Serif",Georgia,"Times New Roman","Han Kaiti GB",cursive,serif}article blockquote:lang(ja){font-family:"Yakumono Serif","Numeral LF Serif",Georgia,"Times New Roman",cursive,serif}.no-unicoderange article blockquote:lang(ja){font-family:"Numeral LF Serif",Georgia,"Times New Roman",cursive,serif}i :lang(ja-Latn),i :lang(zh-Latn),i :not(:lang(zh)):not(:lang(ja)),i:lang(ja-Latn),i:lang(zh-Latn),i:not(:lang(zh)):not(:lang(ja)),var :lang(ja-Latn),var :lang(zh-Latn),var :not(:lang(zh)):not(:lang(ja)),var:lang(ja-Latn),var:lang(zh-Latn),var:not(:lang(zh)):not(:lang(ja)){font-family:"Latin Italic Serif",Georgia,"Times New Roman","Han Kaiti",cursive,serif}i:lang(zh),i:lang(zh-Hant),var:lang(zh),var:lang(zh-Hant){font-family:"Biaodian Pro Serif CNS","Numeral LF Italic Serif","Latin Italic Serif",Georgia,"Times New Roman","Zhuyin Kaiti","Han Kaiti",cursive,serif}.no-unicoderange i:lang(zh),.no-unicoderange i:lang(zh-Hant),.no-unicoderange var:lang(zh),.no-unicoderange var:lang(zh-Hant){font-family:"Numeral LF Italic Serif","Latin Italic Serif",Georgia,"Times New Roman","Han Kaiti",cursive,serif}i:lang(zh-CN),i:lang(zh-Hans),var:lang(zh-CN),var:lang(zh-Hans){font-family:"Biaodian Pro Serif GB","Numeral LF Italic Serif","Latin Italic Serif",Georgia,"Times New Roman","Han Kaiti GB",cursive,serif}.no-unicoderange i:lang(zh-CN),.no-unicoderange i:lang(zh-Hans),.no-unicoderange var:lang(zh-CN),.no-unicoderange var:lang(zh-Hans){font-family:"Numeral LF Italic Serif","Latin Italic Serif",Georgia,"Times New Roman","Han Kaiti GB",cursive,serif}i:lang(ja),var:lang(ja){font-family:"Yakumono Serif","Numeral LF Italic Serif","Latin Italic Serif",Georgia,"Times New Roman",cursive,serif}.no-unicoderange i:lang(ja),.no-unicoderange var:lang(ja){font-family:"Numeral LF Italic Serif","Latin Italic Serif",Georgia,"Times New Roman",cursive,serif}code :lang(ja-Latn),code :lang(zh-Latn),code :not(:lang(zh)):not(:lang(ja)),code:lang(ja-Latn),code:lang(zh-Latn),code:not(:lang(zh)):not(:lang(ja)),kbd :lang(ja-Latn),kbd :lang(zh-Latn),kbd :not(:lang(zh)):not(:lang(ja)),kbd:lang(ja-Latn),kbd:lang(zh-Latn),kbd:not(:lang(zh)):not(:lang(ja)),pre :lang(ja-Latn),pre :lang(zh-Latn),pre :not(:lang(zh)):not(:lang(ja)),pre:lang(ja-Latn),pre:lang(zh-Latn),pre:not(:lang(zh)):not(:lang(ja)),samp :lang(ja-Latn),samp :lang(zh-Latn),samp :not(:lang(zh)):not(:lang(ja)),samp:lang(ja-Latn),samp:lang(zh-Latn),samp:not(:lang(zh)):not(:lang(ja)){font-family:Menlo,Consolas,Courier,"Han Heiti",monospace,monospace,sans-serif}code:lang(zh),code:lang(zh-Hant),kbd:lang(zh),kbd:lang(zh-Hant),pre:lang(zh),pre:lang(zh-Hant),samp:lang(zh),samp:lang(zh-Hant){font-family:"Biaodian Pro Sans CNS",Menlo,Consolas,Courier,"Zhuyin Heiti","Han Heiti",monospace,monospace,sans-serif}.no-unicoderange code:lang(zh),.no-unicoderange code:lang(zh-Hant),.no-unicoderange kbd:lang(zh),.no-unicoderange kbd:lang(zh-Hant),.no-unicoderange pre:lang(zh),.no-unicoderange pre:lang(zh-Hant),.no-unicoderange samp:lang(zh),.no-unicoderange samp:lang(zh-Hant){font-family:Menlo,Consolas,Courier,"Han Heiti",monospace,monospace,sans-serif}code:lang(zh-CN),code:lang(zh-Hans),kbd:lang(zh-CN),kbd:lang(zh-Hans),pre:lang(zh-CN),pre:lang(zh-Hans),samp:lang(zh-CN),samp:lang(zh-Hans){font-family:"Biaodian Pro Sans GB",Menlo,Consolas,Courier,"Han Heiti GB",monospace,monospace,sans-serif}.no-unicoderange code:lang(zh-CN),.no-unicoderange code:lang(zh-Hans),.no-unicoderange kbd:lang(zh-CN),.no-unicoderange kbd:lang(zh-Hans),.no-unicoderange pre:lang(zh-CN),.no-unicoderange pre:lang(zh-Hans),.no-unicoderange samp:lang(zh-CN),.no-unicoderange samp:lang(zh-Hans){font-family:Menlo,Consolas,Courier,"Han Heiti GB",monospace,monospace,sans-serif}code:lang(ja),kbd:lang(ja),pre:lang(ja),samp:lang(ja){font-family:"Yakumono Sans",Menlo,Consolas,Courier,monospace,monospace,sans-serif}.no-unicoderange code:lang(ja),.no-unicoderange kbd:lang(ja),.no-unicoderange pre:lang(ja),.no-unicoderange samp:lang(ja){font-family:Menlo,Consolas,Courier,monospace,monospace,sans-serif}.no-unicoderange h-char.bd-liga,.no-unicoderange h-char[unicode=b7],h-ruby [annotation] rt,h-ruby h-zhuyin,h-ruby h-zhuyin h-diao,h-ruby.romanization rt,html,ruby [annotation] rt,ruby h-zhuyin,ruby h-zhuyin h-diao,ruby.romanization rt{-moz-font-feature-settings:"liga";-ms-font-feature-settings:"liga";-webkit-font-feature-settings:"liga";font-feature-settings:"liga"}[lang*=Hant],[lang*=Hans],[lang=zh-TW],[lang=zh-HK],[lang=zh-CN],[lang^=zh],article blockquote i,article blockquote var,article strong,code,html,kbd,pre,samp{-moz-font-feature-settings:"liga=1, locl=0";-ms-font-feature-settings:"liga","locl" 0;-webkit-font-feature-settings:"liga","locl" 0;font-feature-settings:"liga","locl" 0}.no-unicoderange h-char.bd-cop:lang(zh-HK),.no-unicoderange h-char.bd-cop:lang(zh-Hant),.no-unicoderange h-char.bd-cop:lang(zh-TW){font-family:-apple-system,"Han Heiti CNS"}.no-unicoderange h-char.bd-liga,.no-unicoderange h-char[unicode=b7]{font-family:"Biaodian Basic","Han Heiti"}.no-unicoderange h-char[unicode="2018"]:lang(zh-CN),.no-unicoderange h-char[unicode="2018"]:lang(zh-Hans),.no-unicoderange h-char[unicode="2019"]:lang(zh-CN),.no-unicoderange h-char[unicode="2019"]:lang(zh-Hans),.no-unicoderange h-char[unicode="201c"]:lang(zh-CN),.no-unicoderange h-char[unicode="201c"]:lang(zh-Hans),.no-unicoderange h-char[unicode="201d"]:lang(zh-CN),.no-unicoderange h-char[unicode="201d"]:lang(zh-Hans){font-family:"Han Heiti GB"}i,var{font-style:inherit}.no-unicoderange h-ruby h-zhuyin,.no-unicoderange h-ruby h-zhuyin h-diao,.no-unicoderange ruby h-zhuyin,.no-unicoderange ruby h-zhuyin h-diao,h-ruby h-diao,ruby h-diao{font-family:"Zhuyin Kaiti",cursive,serif}h-ruby [annotation] rt,h-ruby.romanization rt,ruby [annotation] rt,ruby.romanization rt{font-family:"Romanization Sans","Helvetica Neue",Helvetica,Arial,"Han Heiti",sans-serif}.no-kaiti i,.no-kaiti var{padding-bottom:.05em;border-bottom:3px double #d3d3d3}article h1+blockquote,article h1+h2,article h1+h3,article h1+h4,article h1+h5,article h1+h6,article h1+ol,article h1+p,article h1+section>blockquote:first-child,article h1+section>h2:first-child,article h1+section>h3:first-child,article h1+section>h4:first-child,article h1+section>h5:first-child,article h1+section>h6:first-child,article h1+section>ol:first-child,article h1+section>p:first-child,article h1+section>ul:first-child,article h1+ul,article h2+blockquote,article h2+h2,article h2+h3,article h2+h4,article h2+h5,article h2+h6,article h2+ol,article h2+p,article h2+section>blockquote:first-child,article h2+section>h2:first-child,article h2+section>h3:first-child,article h2+section>h4:first-child,article h2+section>h5:first-child,article h2+section>h6:first-child,article h2+section>ol:first-child,article h2+section>p:first-child,article h2+section>ul:first-child,article h2+ul,article h3+blockquote,article h3+h3,article h3+h4,article h3+h5,article h3+h6,article h3+ol,article h3+p,article h3+section>blockquote:first-child,article h3+section>h3:first-child,article h3+section>h4:first-child,article h3+section>h5:first-child,article h3+section>h6:first-child,article h3+section>ol:first-child,article h3+section>p:first-child,article h3+section>ul:first-child,article h3+ul,article h4+blockquote,article h4+h4,article h4+h5,article h4+h6,article h4+ol,article h4+p,article h4+section>blockquote:first-child,article h4+section>h4:first-child,article h4+section>h5:first-child,article h4+section>h6:first-child,article h4+section>ol:first-child,article h4+section>p:first-child,article h4+section>ul:first-child,article h4+ul,article h5+blockquote,article h5+h5,article h5+h6,article h5+ol,article h5+p,article h5+section>blockquote:first-child,article h5+section>h5:first-child,article h5+section>h6:first-child,article h5+section>ol:first-child,article h5+section>p:first-child,article h5+section>ul:first-child,article h5+ul,article h6+blockquote,article h6+h6,article h6+ol,article h6+p,article h6+section>blockquote:first-child,article h6+section>h6:first-child,article h6+section>ol:first-child,article h6+section>p:first-child,article h6+section>ul:first-child,article h6+ul{margin-top:-1em}article{line-height:1.7;-moz-hyphens:auto;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}article li,article p{text-align:justify;text-justify:inter-ideograph}.poem-like p,p.poem-like{margin-left:2em}@media only screen and (max-width:480px){.poem-like p,article blockquote,p.poem-like{margin-left:1em}blockquote,figure{margin-left:1em;margin-right:1em}}figure blockquote{margin:0}blockquote blockquote{margin-left:1em;margin-right:1em}h-hws,h-hws[hidden]{display:inline;visibility:hidden;font:.89em Arial}code h-hws,code h-hws[hidden],h-hws.quote-inner,h-hws.quote-outer:lang(zh-CN),h-hws.quote-outer:lang(zh-Hans),h-hws[hidden].quote-inner,h-hws[hidden].quote-outer:lang(zh-CN),h-hws[hidden].quote-outer:lang(zh-Hans),kbd h-hws,kbd h-hws[hidden],pre h-hws,pre h-hws[hidden],samp h-hws,samp h-hws[hidden]{display:none}@font-face{src:url(./font/han-space.woff?v3.3.0) format("woff"),url(./font/han-space.otf?v3.3.0) format("opentype");font-family:"Han Space";unicode-range:U+20}h-char.bd-hangable:lang(zh) h-cs,h-char.bd-hangable:lang(zh) h-cs[hidden],h-char.bd-hangable:lang(zh-HK) h-cs,h-char.bd-hangable:lang(zh-HK) h-cs[hidden],h-char.bd-hangable:lang(zh-Hant) h-cs,h-char.bd-hangable:lang(zh-Hant) h-cs[hidden],h-char.bd-hangable:lang(zh-TW) h-cs,h-char.bd-hangable:lang(zh-TW) h-cs[hidden],h-cs,h-cs[hidden]{display:inline;visibility:inherit;font-family:inherit;font-size:inherit}h-cs.hangable-outer,h-cs.hangable-outer[hidden]{display:inline;font:1em "Han Space"}h-cs.hangable-outer:lang(zh-HK),h-cs.hangable-outer:lang(zh-Hant),h-cs.hangable-outer:lang(zh-TW),h-cs.hangable-outer[hidden]:lang(zh-HK),h-cs.hangable-outer[hidden]:lang(zh-Hant),h-cs.hangable-outer[hidden]:lang(zh-TW){display:none}h-char.bd-hangable:lang(ja),h-char.bd-hangable:lang(zh-CN),h-char.bd-hangable:lang(zh-Hans){position:relative}h-char.bd-hangable:lang(ja):after,h-char.bd-hangable:lang(zh-CN):after,h-char.bd-hangable:lang(zh-Hans):after{display:none!important}h-char.bd-hangable:lang(ja):before,h-char.bd-hangable:lang(zh-CN):before,h-char.bd-hangable:lang(zh-Hans):before{display:inline!important;content:" ";font:1em "Han Space",Menlo,Consolas,Courier}h-char.bd-hangable:lang(ja)>h-inner,h-char.bd-hangable:lang(zh-CN)>h-inner,h-char.bd-hangable:lang(zh-Hans)>h-inner{-moz-text-emphasis:none;-webkit-text-emphasis:none;text-emphasis:none;font-style:normal;font-weight:400;text-decoration:none;text-indent:0;position:absolute;left:0;top:0;display:inline-block;line-height:1.1}h-ru h-char.bd-hangable:lang(ja)>h-inner,h-ru h-char.bd-hangable:lang(zh-CN)>h-inner,h-ru h-char.bd-hangable:lang(zh-Hans)>h-inner,ruby h-char.bd-hangable:lang(ja)>h-inner,ruby h-char.bd-hangable:lang(zh-CN)>h-inner,ruby h-char.bd-hangable:lang(zh-Hans)>h-inner{position:relative}h-char.bd-jiya.bd-end:after,h-char.bd-jiya.bd-open:before,h-cs,h-cs[hidden]{display:none;visibility:hidden;content:" ";font:.825em Courier;letter-spacing:0;white-space:normal}h-char.bd-jiya.bd-close:after,h-char.bd-jiya.bd-cop:after,h-char.bd-jiya.bd-open:before,h-char.bd-jiya[unicode=ff0e]:after,h-cs.jinze-outer,h-cs.jinze-outer[hidden]{display:inline}h-char.bd-jiya.bd-open>h-inner{margin-left:-.5em}h-char.bd-jiya.bd-close>h-inner,h-char.bd-jiya.bd-cop>h-inner,h-char.bd-jiya[unicode=ff0e]>h-inner{letter-spacing:-.5em}h-char.bd-consecutive.bd-end:not(.end-portion):after,h-char.bd-consecutive.bd-open[prev=bd-open]:before,h-char.bd-jiya.bd-cop:lang(zh-HK):after,h-char.bd-jiya.bd-cop:lang(zh-Hant):after,h-char.bd-jiya.bd-cop:lang(zh-TW):after,h-cs.jiya-outer.bd-end:not(.end-portion){display:none}h-char.bd-jiya.bd-cop:lang(zh-HK)>h-inner,h-char.bd-jiya.bd-cop:lang(zh-Hant)>h-inner,h-char.bd-jiya.bd-cop:lang(zh-TW)>h-inner{letter-spacing:inherit}h-cs.jiya-outer.bd-end[next=bd-open]{display:inline}h-char.bd-consecutive.bd-open[prev*=bd-cop]:lang(zh-HK):before,h-char.bd-consecutive.bd-open[prev*=bd-cop]:lang(zh-Hant):before,h-char.bd-consecutive.bd-open[prev*=bd-cop]:lang(zh-TW):before,h-cs.jiya-outer.bd-end:lang(zh-HK),h-cs.jiya-outer.bd-end:lang(zh-Hant),h-cs.jiya-outer.bd-end:lang(zh-TW),h-cs.jiya-outer[prev*=bd-cop]:lang(zh-HK),h-cs.jiya-outer[prev*=bd-cop]:lang(zh-Hant),h-cs.jiya-outer[prev*=bd-cop]:lang(zh-TW){display:none}h-char.bd-consecutive[unicode=b7]:not(.end-portion),h-char.bd-consecutive[unicode="30fb"]:not(.end-portion){letter-spacing:-.5em}h-char.bd-consecutive.bd-liga:not(.end-portion){margin-right:-.25em}h-char[display-as]{position:relative;display:inline-block}h-char[display-as] h-inner{color:transparent}h-char[display-as]:after{position:absolute;left:0;display:inline-block;content:attr(display-as)}h-char[display-as].comb-liga:after{font-family:"Romanization Sans","Zhuyin Kaiti"}
--------------------------------------------------------------------------------
/src/han/han.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 |
3 | /*! 漢字標準格式 v3.3.0 | MIT License | css.hanzi.co */
4 | /*! Han.css: the CSS typography framework optimised for Hanzi */
5 |
6 | /* normalize.css v4.0.0 | MIT License | github.com/necolas/normalize.css */
7 | html {
8 | font-family: sans-serif; /* 1 */
9 | -ms-text-size-adjust: 100%; /* 2 */
10 | -webkit-text-size-adjust: 100%; /* 2 */
11 | }
12 | body {
13 | margin: 0;
14 | }
15 | article,
16 | aside,
17 | details,
18 | figcaption,
19 | figure,
20 | footer,
21 | header,
22 | main,
23 | menu,
24 | nav,
25 | section,
26 | summary {
27 | /* 1 */
28 | display: block;
29 | }
30 | audio,
31 | canvas,
32 | progress,
33 | video {
34 | display: inline-block;
35 | }
36 | audio:not([controls]) {
37 | display: none;
38 | height: 0;
39 | }
40 | progress {
41 | vertical-align: baseline;
42 | }
43 | template,
44 | [hidden] {
45 | display: none;
46 | }
47 | a {
48 | background-color: transparent;
49 | }
50 | a:active,
51 | a:hover {
52 | outline-width: 0;
53 | }
54 | abbr[title] {
55 | border-bottom: none; /* 1 */
56 | text-decoration: underline; /* 2 */
57 | text-decoration: underline dotted; /* 2 */
58 | }
59 | b,
60 | strong {
61 | font-weight: inherit;
62 | }
63 | b,
64 | strong {
65 | font-weight: bolder;
66 | }
67 | dfn {
68 | font-style: italic;
69 | }
70 | h1 {
71 | font-size: 2em;
72 | margin: .67em 0;
73 | }
74 | mark {
75 | background-color: #ff0;
76 | color: #000;
77 | }
78 | small {
79 | font-size: 80%;
80 | }
81 | sub,
82 | sup {
83 | font-size: 75%;
84 | line-height: 0;
85 | position: relative;
86 | vertical-align: baseline;
87 | }
88 | sub {
89 | bottom: -.25em;
90 | }
91 | sup {
92 | top: -.5em;
93 | }
94 | img {
95 | border-style: none;
96 | }
97 | svg:not(:root) {
98 | overflow: hidden;
99 | }
100 | code,
101 | kbd,
102 | pre,
103 | samp {
104 | font-family: monospace, monospace; /* 1 */
105 | font-size: 1em; /* 2 */
106 | }
107 | figure {
108 | margin: 1em 40px;
109 | }
110 | hr {
111 | box-sizing: content-box; /* 1 */
112 | height: 0; /* 1 */
113 | overflow: visible; /* 2 */
114 | }
115 | button,
116 | input,
117 | select,
118 | textarea {
119 | font: inherit;
120 | }
121 | optgroup {
122 | font-weight: bold;
123 | }
124 | button,
125 | input,
126 | select {
127 | /* 2 */
128 | overflow: visible;
129 | }
130 | button,
131 | input,
132 | select,
133 | textarea {
134 | /* 1 */
135 | margin: 0;
136 | }
137 | button,
138 | select {
139 | /* 1 */
140 | text-transform: none;
141 | }
142 | button,
143 | [type="button"],
144 | [type="reset"],
145 | [type="submit"] {
146 | cursor: pointer;
147 | }
148 | [disabled] {
149 | cursor: default;
150 | }
151 | button,
152 | html [type="button"],
153 | [type="reset"],
154 | [type="submit"] {
155 | -webkit-appearance: button; /* 2 */
156 | }
157 | button::-moz-focus-inner,
158 | input::-moz-focus-inner {
159 | border: 0;
160 | padding: 0;
161 | }
162 | button:-moz-focusring,
163 | input:-moz-focusring {
164 | outline: 1px dotted ButtonText;
165 | }
166 | fieldset {
167 | border: 1px solid #c0c0c0;
168 | margin: 0 2px;
169 | padding: .35em .625em .75em;
170 | }
171 | legend {
172 | box-sizing: border-box; /* 1 */
173 | color: inherit; /* 2 */
174 | display: table; /* 1 */
175 | max-width: 100%; /* 1 */
176 | padding: 0; /* 3 */
177 | white-space: normal; /* 1 */
178 | }
179 | textarea {
180 | overflow: auto;
181 | }
182 | [type="checkbox"],
183 | [type="radio"] {
184 | box-sizing: border-box; /* 1 */
185 | padding: 0; /* 2 */
186 | }
187 | [type="number"]::-webkit-inner-spin-button,
188 | [type="number"]::-webkit-outer-spin-button {
189 | height: auto;
190 | }
191 | [type="search"] {
192 | -webkit-appearance: textfield;
193 | }
194 | [type="search"]::-webkit-search-cancel-button,
195 | [type="search"]::-webkit-search-decoration {
196 | -webkit-appearance: none;
197 | }
198 | html {
199 | line-height: 1.3;
200 | -webkit-font-smoothing: subpixel-antialiased;
201 | }
202 | ol,
203 | ul {
204 | padding-left: 2em;
205 | }
206 | figure,
207 | blockquote {
208 | margin-left: 2em;
209 | margin-right: 2em;
210 | }
211 | address {
212 | font-style: inherit;
213 | }
214 | pre {
215 | overflow: auto;
216 | white-space: pre;
217 | word-wrap: normal;
218 | }
219 | a {
220 | text-decoration: inherit;
221 | }
222 | em:lang(zh),
223 | em:lang(ja) {
224 | -moz-text-emphasis: filled circle;
225 | -webkit-text-emphasis: filled circle;
226 | text-emphasis: filled circle;
227 | -moz-text-emphasis-position: under;
228 | -webkit-text-emphasis-position: under;
229 | text-emphasis-position: under;
230 | font-style: inherit;
231 | border-bottom: 2px dotted;
232 | padding-bottom: .05em;
233 | border-bottom-width: -webkit-calc(0px);
234 | padding-bottom: -webkit-calc(0px);
235 | }
236 | em:lang(ja) {
237 | -moz-text-emphasis: filled sesame;
238 | -webkit-text-emphasis: filled sesame;
239 | text-emphasis: filled sesame;
240 | -moz-text-emphasis-position: over;
241 | -webkit-text-emphasis-position: over;
242 | text-emphasis-position: over;
243 | }
244 | dfn:lang(zh),
245 | dfn:lang(ja) {
246 | font-weight: inherit;
247 | font-style: inherit;
248 | }
249 | dfn:lang(zh),
250 | dfn:lang(ja) {
251 | font-weight: bolder;
252 | }
253 | cite:lang(zh),
254 | cite:lang(ja) {
255 | font-style: inherit;
256 | }
257 | q {
258 | quotes: "\201c" "\201d" "\2018" "\2019" "\201c" "\201d" "\2018" "\2019" "\201c" "\201d" "\2018" "\2019";
259 | }
260 | q:lang(zh) {
261 | quotes: "\300c" "\300d" "\300e" "\300f" "\300c" "\300d" "\300e" "\300f" "\300c" "\300d" "\300e" "\300f";
262 | }
263 | q:lang(zh-CN),
264 | q:lang(en) {
265 | quotes: "\201c" "\201d" "\2018" "\2019" "\201c" "\201d" "\2018" "\2019" "\201c" "\201d" "\2018" "\2019";
266 | }
267 | q:lang(en-GB) {
268 | quotes: "\2018" "\2019" "\201c" "\201d" "\2018" "\2019" "\201c" "\201d" "\2018" "\2019" "\201c" "\201d";
269 | }
270 | q:before {
271 | content: open-quote;
272 | }
273 | q:after {
274 | content: close-quote;
275 | }
276 | q:lang(ja):before,
277 | q:lang(ja):after {
278 | content: none;
279 | }
280 | code,
281 | kbd,
282 | samp,
283 | pre {
284 | font-family: monospace, monospace, sans-serif;
285 | }
286 | i:lang(zh),
287 | var:lang(zh),
288 | i:lang(ja),
289 | var:lang(ja) {
290 | font-family: cursive, serif;
291 | font-style: inherit;
292 | }
293 | u + u,
294 | ins + u,
295 | u + ins,
296 | ins + ins,
297 | s + s,
298 | del + s,
299 | s + del,
300 | del + del,
301 | .han-js-rendered u.adjacent,
302 | .han-js-rendered ins.adjacent,
303 | .han-js-rendered s + s.adjacent,
304 | .han-js-rendered del + s.adjacent,
305 | .han-js-rendered s + del.adjacent,
306 | .han-js-rendered del + del.adjacent {
307 | margin-left: .125em;
308 | }
309 | u,
310 | ins {
311 | padding-bottom: .05em;
312 | border-bottom: 1px solid;
313 | text-decoration: none;
314 | }
315 | ruby rtc rt {
316 | display: inline;
317 | font-size: inherit;
318 | }
319 | ruby.zhuyin,
320 | ruby.mps {
321 | display: ruby;
322 | -webkit-ruby-position: inter-character;
323 | ruby-position: inter-character;
324 | }
325 | ruby.zhuyin > rt,
326 | ruby.mps > rt {
327 | -moz-transform: scale(.8);
328 | -ms-transform: scale(.8);
329 | -webkit-transform: scale(.8);
330 | transform: scale(.8);
331 | -moz-transform-origin: left center;
332 | -ms-transform-origin: left center;
333 | -webkit-transform-origin: left center;
334 | transform-origin: left center;
335 | font-size: .5em;
336 | }
337 | ruby.zhuyin > rt:empty,
338 | ruby.mps > rt:empty {
339 | display: none;
340 | }
341 | .han-js-rendered u + u,
342 | .han-js-rendered ins + u,
343 | .han-js-rendered u + ins,
344 | .han-js-rendered ins + ins,
345 | .han-js-rendered s + s,
346 | .han-js-rendered del + s,
347 | .han-js-rendered s + del,
348 | .han-js-rendered del + del {
349 | margin-left: auto;
350 | }
351 | .textemphasis $han-text-emphasis-pf h-jinze,
352 | .textemphasis em:lang(zh) h-jinze,
353 | .textemphasis em:lang(ja) h-jinze {
354 | display: inline;
355 | }
356 | .han-js-rendered em:lang(zh),
357 | .han-js-rendered em:lang(ja) {
358 | padding-bottom: auto;
359 | border-bottom-width: 0;
360 | }
361 | .no-textemphasis em:lang(zh),
362 | .no-textemphasis em:lang(ja) {
363 | line-height: 2;
364 | }
365 | .no-textemphasis em:lang(zh) h-char,
366 | .no-textemphasis em:lang(ja) h-char {
367 | position: relative;
368 | font-style: inherit;
369 | }
370 | .no-textemphasis em:lang(zh) h-char:after,
371 | .no-textemphasis em:lang(ja) h-char:after {
372 | -moz-text-emphasis: none;
373 | -webkit-text-emphasis: none;
374 | text-emphasis: none;
375 | font-style: normal;
376 | font-weight: normal;
377 | line-height: normal;
378 | text-decoration: none;
379 | text-indent: 0;
380 | -moz-transform: scale(.5);
381 | -ms-transform: scale(.5);
382 | -webkit-transform: scale(.5);
383 | transform: scale(.5);
384 | position: absolute;
385 | left: 50%;
386 | top: 0;
387 | margin-left: -250%;
388 | overflow: hidden;
389 | display: inline-block;
390 | height: 1em;
391 | width: 500%;
392 | line-height: 1;
393 | text-align: center;
394 | text-indent: 0;
395 | font-family: Georgia, "Times New Roman", Arial, !important;
396 | }
397 | em:lang(zh) h-char.punct,
398 | em:lang(ja) h-char.punct,
399 | em:lang(zh) h-char.biaodian,
400 | em:lang(ja) h-char.biaodian {
401 | -moz-text-emphasis: none;
402 | -webkit-text-emphasis: none;
403 | text-emphasis: none;
404 | }
405 | .no-textemphasis em:lang(zh) h-char.punct:after,
406 | .no-textemphasis em:lang(ja) h-char.punct:after,
407 | .no-textemphasis em:lang(zh) h-char.biaodian:after,
408 | .no-textemphasis em:lang(ja) h-char.biaodian:after {
409 | content: none !important;
410 | }
411 | .no-textemphasis em:lang(zh) h-char:after {
412 | margin-top: 1em;
413 | content: "\25cf";
414 | }
415 | .no-textemphasis em:lang(ja) h-char:after {
416 | margin-top: -.7em;
417 | content: "\fe45";
418 | }
419 | ruby.zhuyin h-zhuyin,
420 | ruby.mps h-zhuyin,
421 | h-ruby.zhuyin h-zhuyin {
422 | position: relative;
423 | letter-spacing: 0;
424 | }
425 | ruby.zhuyin h-diao,
426 | ruby.mps h-diao,
427 | h-ruby.zhuyin h-diao {
428 | position: absolute;
429 | right: -.9em;
430 | bottom: .5em;
431 | display: block;
432 | font-size: 1.5em;
433 | }
434 | ruby.zhuyin h-diao h-char,
435 | ruby.mps h-diao h-char,
436 | h-ruby.zhuyin h-diao h-char {
437 | -webkit-writing-mode: horizontal-tb;
438 | writing-mode: horizontal-tb;
439 | }
440 | ruby.zhuyin [diao="˙"] h-diao,
441 | ruby.mps [diao="˙"] h-diao,
442 | h-ruby.zhuyin [diao="˙"] h-diao {
443 | top: -.3em;
444 | right: auto;
445 | bottom: auto;
446 | left: 0;
447 | font-size: 1em;
448 | }
449 | ruby.zhuyin [diao^="ㆴ"] h-diao,
450 | ruby.mps [diao^="ㆴ"] h-diao,
451 | h-ruby.zhuyin [diao^="ㆴ"] h-diao,
452 | ruby.zhuyin [diao^="ㆵ"] h-diao,
453 | ruby.mps [diao^="ㆵ"] h-diao,
454 | h-ruby.zhuyin [diao^="ㆵ"] h-diao,
455 | ruby.zhuyin [diao^="ㆶ"] h-diao,
456 | ruby.mps [diao^="ㆶ"] h-diao,
457 | h-ruby.zhuyin [diao^="ㆶ"] h-diao,
458 | ruby.zhuyin [diao^="ㆷ"] h-diao,
459 | ruby.mps [diao^="ㆷ"] h-diao,
460 | h-ruby.zhuyin [diao^="ㆷ"] h-diao,
461 | ruby.zhuyin [diao=""] h-diao,
462 | ruby.mps [diao=""] h-diao,
463 | h-ruby.zhuyin [diao=""] h-diao,
464 | ruby.zhuyin [diao=""] h-diao,
465 | ruby.mps [diao=""] h-diao,
466 | h-ruby.zhuyin [diao=""] h-diao,
467 | ruby.zhuyin [diao=""] h-diao,
468 | ruby.mps [diao=""] h-diao,
469 | h-ruby.zhuyin [diao=""] h-diao,
470 | ruby.zhuyin [diao=""] h-diao,
471 | ruby.mps [diao=""] h-diao,
472 | h-ruby.zhuyin [diao=""] h-diao {
473 | right: -1em;
474 | bottom: -.125em;
475 | font-size: 1em;
476 | }
477 | h-ru[annotation] {
478 | position: relative;
479 | display: inline-table;
480 | border-collapse: collapse;
481 | border-spacing: 0;
482 | line-height: 1.1;
483 | text-align: center;
484 | vertical-align: 1em;
485 | }
486 | h-ru[annotation] > h-ru[annotation] {
487 | vertical-align: -.1em;
488 | }
489 | h-ru[annotation] > h-ru,
490 | h-ru[annotation] > rb,
491 | h-ru[annotation] > rt {
492 | line-height: 1;
493 | text-align: center;
494 | }
495 | h-ru[annotation] > rt {
496 | display: table-header-group;
497 | height: 1em;
498 | font-size: .5em;
499 | white-space: nowrap;
500 | word-break: normal;
501 | }
502 | h-ru[annotation] > rt:before,
503 | h-ru[annotation] > rt:after {
504 | content: "\2006";
505 | }
506 | h-ru[order="0"] > rt,
507 | h-ruby[rightangle][doubleline] h-ru[order="0"] > rt {
508 | display: table-header-group;
509 | }
510 | h-ru[order="1"] > rt,
511 | h-ruby[rightangle] h-ru[order="0"] > rt,
512 | h-ruby[rightangle][doubleline] h-ru[order="1"] > rt {
513 | display: table-footer-group;
514 | }
515 | h-ru[order="0"] > h-ru[order="1"] {
516 | vertical-align: .15em;
517 | }
518 | h-ruby[rightangle][doubleline] h-ru[order="0"] rt {
519 | line-height: 1.5;
520 | }
521 | h-ruby[rightangle][doubleline] h-ru[annotation] {
522 | vertical-align: .5em;
523 | }
524 | [zhuyin] h-zhuyin {
525 | -moz-text-emphasis: none;
526 | -webkit-text-emphasis: none;
527 | text-emphasis: none;
528 | font-style: normal;
529 | font-weight: normal;
530 | line-height: normal;
531 | text-decoration: none;
532 | text-indent: 0;
533 | position: relative;
534 | display: inline-block;
535 | height: 1em;
536 | width: .4em;
537 | vertical-align: text-top;
538 | }
539 | [zhuyin] h-zhuyin > * {
540 | -moz-transform: scale(.4);
541 | -ms-transform: scale(.4);
542 | -webkit-transform: scale(.4);
543 | transform: scale(.4);
544 | -moz-transform-origin: left top;
545 | -ms-transform-origin: left top;
546 | -webkit-transform-origin: left top;
547 | transform-origin: left top;
548 | display: inline-block;
549 | }
550 | [zhuyin] h-yin {
551 | position: absolute;
552 | left: 0;
553 | height: 1em;
554 | vertical-align: top;
555 | line-height: 1;
556 | }
557 | [zhuyin] h-diao {
558 | position: absolute;
559 | bottom: 0;
560 | right: -.9em;
561 | line-height: 1;
562 | }
563 | [zhuyin] h-yin:empty,
564 | [zhuyin] h-diao:empty {
565 | display: none;
566 | }
567 | [zhuyin] [length="0"] {
568 | margin-right: 0;
569 | }
570 | [zhuyin] [length="0"] h-zhuyin {
571 | display: none;
572 | }
573 | [zhuyin] [length="1"] h-yin {
574 | top: .3em;
575 | }
576 | [zhuyin] [length="1"] h-diao {
577 | bottom: 0;
578 | }
579 | [zhuyin] [length="2"] h-yin {
580 | top: .05em;
581 | }
582 | [zhuyin] [length="2"] h-diao {
583 | bottom: -.3em;
584 | }
585 | [zhuyin] [length="3"] h-yin {
586 | top: -.05em;
587 | line-height: .85;
588 | }
589 | [zhuyin] [length="3"] h-diao {
590 | bottom: -.35em;
591 | }
592 | [zhuyin] [diao="˙"] h-diao {
593 | top: 0;
594 | right: auto;
595 | bottom: auto;
596 | left: .06em;
597 | }
598 | [zhuyin] [diao="˙"] [length="1"] h-diao {
599 | top: .15em;
600 | }
601 | [zhuyin] [diao="˙"] [length="2"] h-diao {
602 | top: -.05em;
603 | }
604 | [zhuyin] [diao="˙"] [length="3"] h-diao {
605 | top: -.2em;
606 | }
607 | [zhuyin] [diao="˪"] h-diao,
608 | [zhuyin] [diao="˫"] h-diao {
609 | -moz-transform: scale(.6);
610 | -ms-transform: scale(.6);
611 | -webkit-transform: scale(.6);
612 | transform: scale(.6);
613 | -moz-transform-origin: left top;
614 | -ms-transform-origin: left top;
615 | -webkit-transform-origin: left top;
616 | transform-origin: left top;
617 | }
618 | [zhuyin] [diao^="ㆴ"] h-diao,
619 | [zhuyin] [diao^="ㆵ"] h-diao,
620 | [zhuyin] [diao^="ㆶ"] h-diao,
621 | [zhuyin] [diao^="ㆷ"] h-diao,
622 | [zhuyin] [diao=""] h-diao,
623 | [zhuyin] [diao=""] h-diao,
624 | [zhuyin] [diao=""] h-diao,
625 | [zhuyin] [diao=""] h-diao {
626 | bottom: -.6em;
627 | margin-right: .3em;
628 | }
629 | [zhuyin] {
630 | margin-right: .2em;
631 | display: inline-block;
632 | line-height: 1.8;
633 | }
634 | [rightangle] h-ru[annotation] {
635 | vertical-align: 0;
636 | line-height: 1;
637 | }
638 | [rightangle] rt:after {
639 | content: "";
640 | display: inline-block;
641 | width: 1.2em;
642 | }
643 | h-ru h-ru[zhuyin] {
644 | margin-top: -.4em;
645 | margin-bottom: -.2em;
646 | line-height: 1.8;
647 | }
648 | h-jinze,
649 | h-word {
650 | display: inline-block;
651 | text-indent: 0;
652 | }
653 | @font-face {
654 | font-family: "Han Heiti";
655 | src: local("Hiragino Sans GB"), local("Lantinghei TC Extralight"), local("Lantinghei SC Extralight"), local(FZLTXHB--B51-0), local(FZLTZHK--GBK1-0), local(".PingFang SC Light"), local(".PingFang TC Light"), local(".PingFang-SC-Light"), local(".PingFang-TC-Light"), local(".PingFang SC"), local(".PingFang TC"), local("Heiti SC Light"), local(STHeitiSC-Light), local("Heiti SC"), local("Heiti TC Light"), local(STHeitiTC-Light), local("Heiti TC"), local("Microsoft Yahei"), local("Microsoft Jhenghei"), local("Noto Sans CJK KR"), local("Noto Sans CJK JP"), local("Noto Sans CJK SC"), local("Noto Sans CJK TC"), local("Source Han Sans K"), local("Source Han Sans KR"), local("Source Han Sans JP"), local("Source Han Sans CN"), local("Source Han Sans HK"), local("Source Han Sans TW"), local("Source Han Sans TWHK"), local("Droid Sans Fallback");
656 | }
657 | @font-face {
658 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
659 | font-family: "Han Heiti";
660 | src: local(YuGothic), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro");
661 | }
662 | @font-face {
663 | font-family: "Han Heiti CNS";
664 | src: local(".PingFang TC Light"), local(".PingFang-TC-Light"), local(".PingFang TC"), local("Heiti TC Light"), local(STHeitiTC-Light), local("Heiti TC"), local("Lantinghei TC Extralight"), local(FZLTXHB--B51-0), local("Lantinghei TC"), local("Microsoft Jhenghei"), local("Microsoft Yahei"), local("Noto Sans CJK TC"), local("Source Han Sans TC"), local("Source Han Sans TW"), local("Source Han Sans TWHK"), local("Source Han Sans HK"), local("Droid Sans Fallback");
665 | }
666 | @font-face {
667 | font-family: "Han Heiti GB";
668 | src: local("Hiragino Sans GB"), local(".PingFang SC Light"), local(".PingFang-SC-Light"), local(".PingFang SC"), local("Lantinghei SC Extralight"), local(FZLTXHK--GBK1-0), local("Lantinghei SC"), local("Heiti SC Light"), local(STHeitiSC-Light), local("Heiti SC"), local("Microsoft Yahei"), local("Noto Sans CJK SC"), local("Source Han Sans SC"), local("Source Han Sans CN"), local("Droid Sans Fallback");
669 | }
670 | @font-face {
671 | font-family: "Han Heiti";
672 | font-weight: 600;
673 | src: local("Hiragino Sans GB W6"), local(HiraginoSansGB-W6), local("Lantinghei TC Demibold"), local("Lantinghei SC Demibold"), local(FZLTZHB--B51-0), local(FZLTZHK--GBK1-0), local(".PingFang-SC-Semibold"), local(".PingFang-TC-Semibold"), local("Heiti SC Medium"), local("STHeitiSC-Medium"), local("Heiti SC"), local("Heiti TC Medium"), local("STHeitiTC-Medium"), local("Heiti TC"), local("Microsoft YaHei Bold"), local("Microsoft Jhenghei Bold"), local(MicrosoftYaHei-Bold), local(MicrosoftJhengHeiBold), local("Microsoft YaHei"), local("Microsoft Jhenghei"), local("Noto Sans CJK KR Bold"), local("Noto Sans CJK JP Bold"), local("Noto Sans CJK SC Bold"), local("Noto Sans CJK TC Bold"), local(NotoSansCJKkr-Bold), local(NotoSansCJKjp-Bold), local(NotoSansCJKsc-Bold), local(NotoSansCJKtc-Bold), local("Source Han Sans K Bold"), local(SourceHanSansK-Bold), local("Source Han Sans K"), local("Source Han Sans KR Bold"), local("Source Han Sans JP Bold"), local("Source Han Sans CN Bold"), local("Source Han Sans HK Bold"), local("Source Han Sans TW Bold"), local("Source Han Sans TWHK Bold"), local("SourceHanSansKR-Bold"), local("SourceHanSansJP-Bold"), local("SourceHanSansCN-Bold"), local("SourceHanSansHK-Bold"), local("SourceHanSansTW-Bold"), local("SourceHanSansTWHK-Bold"), local("Source Han Sans KR"), local("Source Han Sans CN"), local("Source Han Sans HK"), local("Source Han Sans TW"), local("Source Han Sans TWHK");
674 | }
675 | @font-face {
676 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
677 | font-family: "Han Heiti";
678 | font-weight: 600;
679 | src: local("YuGothic Bold"), local("Hiragino Kaku Gothic ProN W6"), local("Hiragino Kaku Gothic Pro W6"), local(YuGo-Bold), local(HiraKakuProN-W6), local(HiraKakuPro-W6);
680 | }
681 | @font-face {
682 | font-family: "Han Heiti CNS";
683 | font-weight: 600;
684 | src: local(".PingFang TC Semibold"), local(".PingFang-TC-Semibold"), local("Heiti TC Medium"), local("STHeitiTC-Medium"), local("Heiti TC"), local("Lantinghei TC Demibold"), local(FZLTXHB--B51-0), local("Microsoft Jhenghei Bold"), local(MicrosoftJhengHeiBold), local("Microsoft Jhenghei"), local("Microsoft YaHei Bold"), local(MicrosoftYaHei-Bold), local("Noto Sans CJK TC Bold"), local(NotoSansCJKtc-Bold), local("Noto Sans CJK TC"), local("Source Han Sans TC Bold"), local("SourceHanSansTC-Bold"), local("Source Han Sans TC"), local("Source Han Sans TW Bold"), local("SourceHanSans-TW"), local("Source Han Sans TW"), local("Source Han Sans TWHK Bold"), local("SourceHanSans-TWHK"), local("Source Han Sans TWHK"), local("Source Han Sans HK"), local("SourceHanSans-HK"), local("Source Han Sans HK");
685 | }
686 | @font-face {
687 | font-family: "Han Heiti GB";
688 | font-weight: 600;
689 | src: local("Hiragino Sans GB W6"), local(HiraginoSansGB-W6), local(".PingFang SC Semibold"), local(".PingFang-SC-Semibold"), local("Lantinghei SC Demibold"), local(FZLTZHK--GBK1-0), local("Heiti SC Medium"), local("STHeitiSC-Medium"), local("Heiti SC"), local("Microsoft YaHei Bold"), local(MicrosoftYaHei-Bold), local("Microsoft YaHei"), local("Noto Sans CJK SC Bold"), local(NotoSansCJKsc-Bold), local("Noto Sans CJK SC"), local("Source Han Sans SC Bold"), local("SourceHanSansSC-Bold"), local("Source Han Sans CN Bold"), local("SourceHanSansCN-Bold"), local("Source Han Sans SC"), local("Source Han Sans CN");
690 | }
691 | @font-face {
692 | font-family: "Han Heiti";
693 | src: local("Hiragino Sans GB"), local("Lantinghei TC Extralight"), local("Lantinghei SC Extralight"), local(FZLTXHB--B51-0), local(FZLTZHK--GBK1-0), local(".PingFang SC Light"), local(".PingFang TC Light"), local(".PingFang-SC-Light"), local(".PingFang-TC-Light"), local(".PingFang SC"), local(".PingFang TC"), local("Heiti SC Light"), local("STHeitiSC-Light"), local("Heiti SC"), local("Heiti TC Light"), local("STHeitiTC-Light"), local("Heiti TC"), local("Microsoft Yahei"), local("Microsoft Jhenghei"), local("Noto Sans CJK KR"), local("Noto Sans CJK JP"), local("Noto Sans CJK SC"), local("Noto Sans CJK TC"), local("Source Han Sans K"), local("Source Han Sans KR"), local("Source Han Sans JP"), local("Source Han Sans CN"), local("Source Han Sans HK"), local("Source Han Sans TW"), local("Source Han Sans TWHK"), local("Droid Sans Fallback");
694 | unicode-range: U+270C;
695 | }
696 | @font-face {
697 | font-family: "Han Heiti";
698 | font-weight: 600;
699 | src: local("Hiragino Sans GB W6"), local(HiraginoSansGB-W6), local("Lantinghei TC Demibold"), local("Lantinghei SC Demibold"), local(FZLTZHB--B51-0), local(FZLTZHK--GBK1-0), local(".PingFang-SC-Semibold"), local(".PingFang-TC-Semibold"), local("Heiti SC Medium"), local("STHeitiSC-Medium"), local("Heiti SC"), local("Heiti TC Medium"), local("STHeitiTC-Medium"), local("Heiti TC"), local("Microsoft YaHei Bold"), local("Microsoft Jhenghei Bold"), local(MicrosoftYaHei-Bold), local(MicrosoftJhengHeiBold), local("Microsoft YaHei"), local("Microsoft Jhenghei"), local("Noto Sans CJK KR Bold"), local("Noto Sans CJK JP Bold"), local("Noto Sans CJK SC Bold"), local("Noto Sans CJK TC Bold"), local(NotoSansCJKkr-Bold), local(NotoSansCJKjp-Bold), local(NotoSansCJKsc-Bold), local(NotoSansCJKtc-Bold), local("Source Han Sans K Bold"), local(SourceHanSansK-Bold), local("Source Han Sans K"), local("Source Han Sans KR Bold"), local("Source Han Sans JP Bold"), local("Source Han Sans CN Bold"), local("Source Han Sans HK Bold"), local("Source Han Sans TW Bold"), local("Source Han Sans TWHK Bold"), local("SourceHanSansKR-Bold"), local("SourceHanSansJP-Bold"), local("SourceHanSansCN-Bold"), local("SourceHanSansHK-Bold"), local("SourceHanSansTW-Bold"), local("SourceHanSansTWHK-Bold"), local("Source Han Sans KR"), local("Source Han Sans CN"), local("Source Han Sans HK"), local("Source Han Sans TW"), local("Source Han Sans TWHK");
700 | unicode-range: U+270C;
701 | }
702 | @font-face {
703 | font-family: "Han Songti";
704 | src: local("Songti SC Regular"), local(STSongti-SC-Regular), local("Songti SC"), local("Songti TC Regular"), local(STSongti-TC-Regular), local("Songti TC"), local(STSong), local("Lisong Pro"), local(SimSun), local(PMingLiU);
705 | }
706 | @font-face {
707 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
708 | font-family: "Han Songti";
709 | src: local(YuMincho), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("MS Mincho");
710 | }
711 | @font-face {
712 | font-family: "Han Songti CNS";
713 | src: local("Songti TC Regular"), local(STSongti-TC-Regular), local("Songti TC"), local("Lisong Pro"), local("Songti SC Regular"), local(STSongti-SC-Regular), local("Songti SC"), local(STSong), local(PMingLiU), local(SimSun);
714 | }
715 | @font-face {
716 | font-family: "Han Songti GB";
717 | src: local("Songti SC Regular"), local(STSongti-SC-Regular), local("Songti SC"), local(STSong), local(SimSun), local(PMingLiU);
718 | }
719 | @font-face {
720 | font-family: "Han Songti";
721 | font-weight: 600;
722 | src: local("STSongti SC Bold"), local("STSongti TC Bold"), local(STSongti-SC-Bold), local(STSongti-TC-Bold), local("STSongti SC"), local("STSongti TC");
723 | }
724 | @font-face {
725 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
726 | font-family: "Han Songti";
727 | font-weight: 600;
728 | src: local("YuMincho Demibold"), local("Hiragino Mincho ProN W6"), local("Hiragino Mincho Pro W6"), local(YuMin-Demibold), local(HiraMinProN-W6), local(HiraMinPro-W6), local(YuMincho), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro");
729 | }
730 | @font-face {
731 | font-family: "Han Songti CNS";
732 | font-weight: 600;
733 | src: local("STSongti TC Bold"), local("STSongti SC Bold"), local(STSongti-TC-Bold), local(STSongti-SC-Bold), local("STSongti TC"), local("STSongti SC");
734 | }
735 | @font-face {
736 | font-family: "Han Songti GB";
737 | font-weight: 600;
738 | src: local("STSongti SC Bold"), local(STSongti-SC-Bold), local("STSongti SC");
739 | }
740 | @font-face {
741 | font-family: "Han Songti";
742 | src: local("Songti SC Regular"), local(STSongti-SC-Regular), local("Songti SC"), local("Songti TC Regular"), local(STSongti-TC-Regular), local("Songti TC"), local(STSongti), local("Lisong Pro"), local("MS Mincho"), local(SimSun), local(PMingLiU);
743 | unicode-range: U+270C;
744 | }
745 | @font-face {
746 | font-family: "Han Songti";
747 | font-weight: 600;
748 | src: local("Songti TC Bold"), local("Songti SC Bold"), local(STSongti-TC-Bold), local(STSongti-SC-Bold), local("Songti TC"), local("Songti SC");
749 | unicode-range: U+270C;
750 | }
751 | @font-face {
752 | font-family: "Han Songti CNS";
753 | src: local("Songti TC Regular"), local("Lisong Pro"), local("Songti TC"), local("Songti SC Regular"), local(STSong), local("Songti SC"), local("MS Mincho"), local(PMingLiU), local(SimSun);
754 | unicode-range: U+270C;
755 | }
756 | @font-face {
757 | font-family: "Han Songti CNS";
758 | font-weight: 600;
759 | src: local("Songti TC Bold"), local("Songti SC Bold"), local(STSongti-TC-Bold), local(STSongti-SC-Bold), local("Songti TC"), local("Songti SC");
760 | unicode-range: U+270C;
761 | }
762 | @font-face {
763 | font-family: "Han Songti GB";
764 | src: local("Songti SC"), local(STSong), local(SimSun);
765 | unicode-range: U+270C;
766 | }
767 | @font-face {
768 | font-family: "Han Songti GB";
769 | font-weight: 600;
770 | src: local("Songti SC Bold"), local(STSongti-SC-Bold), local("Songti SC");
771 | unicode-range: U+270C;
772 | }
773 | @font-face {
774 | font-family: cursive;
775 | src: local("Kaiti TC Regular"), local(STKaiTi-TC-Regular), local("Kaiti TC"), local("Kaiti SC"), local(STKaiti), local(BiauKai), local("標楷體"), local(DFKaiShu-SB-Estd-BF), local(Kaiti), local(DFKai-SB);
776 | }
777 | @font-face {
778 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
779 | font-family: "Han Kaiti";
780 | src: local("Kaiti TC Regular"), local(STKaiTi-TC-Regular), local("Kaiti TC"), local("Kaiti SC"), local(STKaiti), local(BiauKai), local("標楷體"), local(DFKaiShu-SB-Estd-BF), local(Kaiti), local(DFKai-SB);
781 | }
782 | @font-face {
783 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
784 | font-family: "Han Kaiti CNS";
785 | src: local(BiauKai), local("標楷體"), local(DFKaiShu-SB-Estd-BF), local("Kaiti TC Regular"), local(STKaiTi-TC-Regular), local("Kaiti TC");
786 | }
787 | @font-face {
788 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
789 | font-family: "Han Kaiti GB";
790 | src: local("Kaiti SC Regular"), local(STKaiTi-SC-Regular), local("Kaiti SC"), local(STKaiti), local(Kai), local(Kaiti), local(DFKai-SB);
791 | }
792 | @font-face {
793 | font-family: cursive;
794 | font-weight: 600;
795 | src: local("Kaiti TC Bold"), local(STKaiTi-TC-Bold), local("Kaiti SC Bold"), local(STKaiti-SC-Bold), local("Kaiti TC"), local("Kaiti SC");
796 | }
797 | @font-face {
798 | font-family: "Han Kaiti";
799 | font-weight: 600;
800 | src: local("Kaiti TC Bold"), local(STKaiTi-TC-Bold), local("Kaiti SC Bold"), local(STKaiti-SC-Bold), local("Kaiti TC"), local("Kaiti SC");
801 | }
802 | @font-face {
803 | font-family: "Han Kaiti CNS";
804 | font-weight: 600;
805 | src: local("Kaiti TC Bold"), local(STKaiTi-TC-Bold), local("Kaiti TC");
806 | }
807 | @font-face {
808 | font-family: "Han Kaiti GB";
809 | font-weight: 600;
810 | src: local("Kaiti SC Bold"), local(STKaiti-SC-Bold);
811 | }
812 | @font-face {
813 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
814 | font-family: "Han Fangsong";
815 | src: local(STFangsong), local(FangSong);
816 | }
817 | @font-face {
818 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
819 | font-family: "Han Fangsong CNS";
820 | src: local(STFangsong), local(FangSong);
821 | }
822 | @font-face {
823 | unicode-range: U+4E00-9FFF, U+3400-4DB5, U+20000-2A6D6, U+2A700-2B734, U+2B740-2B81D, U+FA0E-FA0F, U+FA11, U+FA13-FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27-FA29, U+3040-309F, U+30A0-30FF, U+3099-309E, U+FF66-FF9F, U+3007, U+31C0-31E3, U+2F00-2FD5, U+2E80-2EF3;
824 | font-family: "Han Fangsong GB";
825 | src: local(STFangsong), local(FangSong);
826 | }
827 | @font-face {
828 | font-family: "Biaodian Sans";
829 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local("MS Gothic"), local(SimSun);
830 | unicode-range: U+FF0E;
831 | }
832 | @font-face {
833 | font-family: "Biaodian Serif";
834 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSong), local(SimSun);
835 | unicode-range: U+FF0E;
836 | }
837 | @font-face {
838 | font-family: "Biaodian Pro Sans";
839 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local("MS Gothic"), local(SimSun);
840 | unicode-range: U+FF0E;
841 | }
842 | @font-face {
843 | font-family: "Biaodian Pro Serif";
844 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSong), local(SimSun);
845 | unicode-range: U+FF0E;
846 | }
847 | @font-face {
848 | font-family: "Biaodian Pro Sans CNS";
849 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local("MS Gothic"), local(SimSun);
850 | unicode-range: U+FF0E;
851 | }
852 | @font-face {
853 | font-family: "Biaodian Pro Serif CNS";
854 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSong), local(SimSun);
855 | unicode-range: U+FF0E;
856 | }
857 | @font-face {
858 | font-family: "Biaodian Pro Sans GB";
859 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local("MS Gothic"), local(SimSun);
860 | unicode-range: U+FF0E;
861 | }
862 | @font-face {
863 | font-family: "Biaodian Pro Serif GB";
864 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSong), local(SimSun);
865 | unicode-range: U+FF0E;
866 | }
867 | @font-face {
868 | font-family: "Biaodian Sans";
869 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local(SimSun);
870 | unicode-range: U+00B7;
871 | }
872 | @font-face {
873 | font-family: "Biaodian Serif";
874 | src: local("Songti SC"), local(STSong), local("Heiti SC"), local(SimSun);
875 | unicode-range: U+00B7;
876 | }
877 | @font-face {
878 | font-family: "Biaodian Pro Sans";
879 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local(SimSun);
880 | unicode-range: U+00B7;
881 | }
882 | @font-face {
883 | font-family: "Biaodian Pro Serif";
884 | src: local("Songti SC"), local(STSong), local("Heiti SC"), local(SimSun);
885 | unicode-range: U+00B7;
886 | }
887 | @font-face {
888 | font-family: "Biaodian Pro Sans CNS";
889 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local(SimSun);
890 | unicode-range: U+00B7;
891 | }
892 | @font-face {
893 | font-family: "Biaodian Pro Serif CNS";
894 | src: local("Songti SC"), local(STSong), local("Heiti SC"), local(SimSun);
895 | unicode-range: U+00B7;
896 | }
897 | @font-face {
898 | font-family: "Biaodian Pro Sans GB";
899 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local(SimSun);
900 | unicode-range: U+00B7;
901 | }
902 | @font-face {
903 | font-family: "Biaodian Pro Serif GB";
904 | src: local("Songti SC"), local(STSong), local("Heiti SC"), local(SimSun);
905 | unicode-range: U+00B7;
906 | }
907 | @font-face {
908 | font-family: "Biaodian Sans";
909 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Sans GB"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Microsoft Yahei"), local(SimSun);
910 | unicode-range: U+2014;
911 | }
912 | @font-face {
913 | font-family: "Biaodian Serif";
914 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSong), local("Microsoft Yahei"), local(SimSun);
915 | unicode-range: U+2014;
916 | }
917 | @font-face {
918 | font-family: "Yakumono Sans";
919 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Arial Unicode MS"), local("MS Gothic");
920 | unicode-range: U+2014;
921 | }
922 | @font-face {
923 | font-family: "Yakumono Serif";
924 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("MS Mincho"), local("Microsoft Yahei");
925 | unicode-range: U+2014;
926 | }
927 | @font-face {
928 | font-family: "Biaodian Pro Sans";
929 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Sans GB"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Microsoft Yahei"), local(SimSun);
930 | unicode-range: U+2014;
931 | }
932 | @font-face {
933 | font-family: "Biaodian Pro Serif";
934 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSong), local("Microsoft Yahei"), local(SimSun);
935 | unicode-range: U+2014;
936 | }
937 | @font-face {
938 | font-family: "Biaodian Pro Sans CNS";
939 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Sans GB"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Microsoft Yahei"), local(SimSun);
940 | unicode-range: U+2014;
941 | }
942 | @font-face {
943 | font-family: "Biaodian Pro Serif CNS";
944 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSong), local("Microsoft Yahei"), local(SimSun);
945 | unicode-range: U+2014;
946 | }
947 | @font-face {
948 | font-family: "Biaodian Pro Sans GB";
949 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Sans GB"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Microsoft Yahei"), local(SimSun);
950 | unicode-range: U+2014;
951 | }
952 | @font-face {
953 | font-family: "Biaodian Pro Serif GB";
954 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSong), local("Microsoft Yahei"), local(SimSun);
955 | unicode-range: U+2014;
956 | }
957 | @font-face {
958 | font-family: "Biaodian Sans";
959 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Sans GB"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local(Meiryo), local("MS Gothic"), local(SimSun), local(PMingLiU);
960 | unicode-range: U+2026;
961 | }
962 | @font-face {
963 | font-family: "Biaodian Serif";
964 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local("MS Mincho"), local(SimSun), local(PMingLiU);
965 | unicode-range: U+2026;
966 | }
967 | @font-face {
968 | font-family: "Yakumono Sans";
969 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local(Meiryo), local("MS Gothic");
970 | unicode-range: U+2026;
971 | }
972 | @font-face {
973 | font-family: "Yakumono Serif";
974 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("MS Mincho");
975 | unicode-range: U+2026;
976 | }
977 | @font-face {
978 | font-family: "Biaodian Pro Sans";
979 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Sans GB"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local(SimSun), local(PMingLiU);
980 | unicode-range: U+2026;
981 | }
982 | @font-face {
983 | font-family: "Biaodian Pro Serif";
984 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(SimSun), local(PMingLiU);
985 | unicode-range: U+2026;
986 | }
987 | @font-face {
988 | font-family: "Biaodian Pro Sans CNS";
989 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Sans GB"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local(SimSun), local(PMingLiU);
990 | unicode-range: U+2026;
991 | }
992 | @font-face {
993 | font-family: "Biaodian Pro Serif CNS";
994 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSongti), local(SimSun), local(PMingLiU);
995 | unicode-range: U+2026;
996 | }
997 | @font-face {
998 | font-family: "Biaodian Pro Sans GB";
999 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Sans GB"), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local(SimSun), local(PMingLiU);
1000 | unicode-range: U+2026;
1001 | }
1002 | @font-face {
1003 | font-family: "Biaodian Pro Serif GB";
1004 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype"), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Songti SC"), local(STSongti), local(SimSun), local(PMingLiU);
1005 | unicode-range: U+2026;
1006 | }
1007 | @font-face {
1008 | font-family: "Biaodian Pro Sans GB";
1009 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local(SimSun), local(PMingLiU);
1010 | unicode-range: U+201C-201D, U+2018-2019;
1011 | }
1012 | @font-face {
1013 | font-family: "Biaodian Pro Sans GB";
1014 | font-weight: bold;
1015 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local(SimSun), local(PMingLiU);
1016 | unicode-range: U+201C-201D, U+2018-2019;
1017 | }
1018 | @font-face {
1019 | font-family: "Biaodian Pro Serif GB";
1020 | src: local("Lisong Pro"), local("Heiti SC"), local(STHeiti), local(SimSun), local(PMingLiU);
1021 | unicode-range: U+201C-201D, U+2018-2019;
1022 | }
1023 | @font-face {
1024 | font-family: "Biaodian Pro Serif GB";
1025 | font-weight: bold;
1026 | src: local("Lisong Pro"), local("Heiti SC"), local(STHeiti), local(SimSun), local(PMingLiU);
1027 | unicode-range: U+201C-201D, U+2018-2019;
1028 | }
1029 | @font-face {
1030 | font-family: "Biaodian Sans";
1031 | src: local(Georgia), local("Times New Roman"), local(Arial), local("Droid Sans Fallback");
1032 | unicode-range: U+25CF;
1033 | }
1034 | @font-face {
1035 | font-family: "Biaodian Serif";
1036 | src: local(Georgia), local("Times New Roman"), local(Arial), local("Droid Sans Fallback");
1037 | unicode-range: U+25CF;
1038 | }
1039 | @font-face {
1040 | font-family: "Biaodian Pro Sans";
1041 | src: local(Georgia), local("Times New Roman"), local(Arial), local("Droid Sans Fallback");
1042 | unicode-range: U+25CF;
1043 | }
1044 | @font-face {
1045 | font-family: "Biaodian Pro Serif";
1046 | src: local(Georgia), local("Times New Roman"), local(Arial), local("Droid Sans Fallback");
1047 | unicode-range: U+25CF;
1048 | }
1049 | @font-face {
1050 | font-family: "Biaodian Pro Sans CNS";
1051 | src: local(Georgia), local("Times New Roman"), local(Arial), local("Droid Sans Fallback");
1052 | unicode-range: U+25CF;
1053 | }
1054 | @font-face {
1055 | font-family: "Biaodian Pro Serif CNS";
1056 | src: local(Georgia), local("Times New Roman"), local(Arial), local("Droid Sans Fallback");
1057 | unicode-range: U+25CF;
1058 | }
1059 | @font-face {
1060 | font-family: "Biaodian Pro Sans GB";
1061 | src: local(Georgia), local("Times New Roman"), local(Arial), local("Droid Sans Fallback");
1062 | unicode-range: U+25CF;
1063 | }
1064 | @font-face {
1065 | font-family: "Biaodian Pro Serif GB";
1066 | src: local(Georgia), local("Times New Roman"), local(Arial), local("Droid Sans Fallback");
1067 | unicode-range: U+25CF;
1068 | }
1069 | @font-face {
1070 | font-family: "Biaodian Pro Sans";
1071 | src: local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("MS Gothic");
1072 | unicode-range: U+3002, U+FF0C, U+3001, U+FF1B, U+FF1A, U+FF1F, U+FF01, U+FF0D, U+FF0F, U+FF3C;
1073 | }
1074 | @font-face {
1075 | font-family: "Biaodian Pro Serif";
1076 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("MS Mincho");
1077 | unicode-range: U+3002, U+FF0C, U+3001, U+FF1B, U+FF1A, U+FF1F, U+FF01, U+FF0D, U+FF0F, U+FF3C;
1078 | }
1079 | @font-face {
1080 | font-family: "Biaodian Pro Sans CNS";
1081 | src: local("Heiti TC"), local("Lihei Pro"), local("Microsoft Jhenghei"), local(PMingLiU);
1082 | unicode-range: U+3002, U+FF0C, U+3001;
1083 | }
1084 | @font-face {
1085 | font-family: "Biaodian Pro Sans CNS";
1086 | src: local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Heiti TC"), local("Lihei Pro"), local("Microsoft Jhenghei"), local(PMingLiU), local("MS Gothic");
1087 | unicode-range: U+FF1B, U+FF1A, U+FF1F, U+FF01;
1088 | }
1089 | @font-face {
1090 | font-family: "Biaodian Pro Sans CNS";
1091 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("MS Mincho");
1092 | unicode-range: U+FF0D, U+FF0F, U+FF3C;
1093 | }
1094 | @font-face {
1095 | font-family: "Biaodian Pro Serif CNS";
1096 | src: local(STSongti-TC-Regular), local("Lisong Pro"), local("Heiti TC"), local(PMingLiU);
1097 | unicode-range: U+3002, U+FF0C, U+3001;
1098 | }
1099 | @font-face {
1100 | font-family: "Biaodian Pro Serif CNS";
1101 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local(PMingLiU), local("MS Mincho");
1102 | unicode-range: U+FF1B, U+FF1A, U+FF1F, U+FF01, U+FF0D, U+FF0F, U+FF3C;
1103 | }
1104 | @font-face {
1105 | font-family: "Biaodian Pro Sans GB";
1106 | src: local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local(SimSun), local("MS Gothic");
1107 | unicode-range: U+3002, U+FF0C, U+3001, U+FF1B, U+FF1A, U+FF1F, U+FF01, U+FF0D, U+FF0F, U+FF3C;
1108 | }
1109 | @font-face {
1110 | font-family: "Biaodian Pro Serif GB";
1111 | src: local("Songti SC"), local(STSongti), local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Hiragino Sans GB"), local("Heiti SC"), local(STHeiti), local(SimSun), local("MS Mincho");
1112 | unicode-range: U+3002, U+FF0C, U+3001, U+FF1B, U+FF1A, U+FF1F, U+FF01;
1113 | }
1114 | @font-face {
1115 | font-family: "Biaodian Pro Serif GB";
1116 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local(PMingLiU), local("MS Mincho");
1117 | unicode-range: U+FF0D, U+FF0F, U+FF3C;
1118 | }
1119 | @font-face {
1120 | font-family: "Biaodian Pro Sans";
1121 | src: local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Yu Gothic"), local(YuGothic), local(SimSun), local(PMingLiU);
1122 | unicode-range: U+300C-300F, U+300A-300B, U+3008-3009, U+FF08-FF09, U+3014-3015;
1123 | }
1124 | @font-face {
1125 | font-family: "Biaodian Pro Serif";
1126 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Yu Mincho"), local(YuMincho), local(SimSun), local(PMingLiU);
1127 | unicode-range: U+300C-300F, U+300A-300B, U+3008-3009, U+FF08-FF09, U+3014-3015;
1128 | }
1129 | @font-face {
1130 | font-family: "Biaodian Pro Sans CNS";
1131 | src: local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Yu Gothic"), local(YuGothic), local(SimSun), local(PMingLiU);
1132 | unicode-range: U+300C-300F, U+300A-300B, U+3008-3009, U+FF08-FF09, U+3014-3015;
1133 | }
1134 | @font-face {
1135 | font-family: "Biaodian Pro Serif CNS";
1136 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Yu Mincho"), local(YuMincho), local(SimSun), local(PMingLiU);
1137 | unicode-range: U+300C-300F, U+300A-300B, U+3008-3009, U+FF08-FF09, U+3014-3015;
1138 | }
1139 | @font-face {
1140 | font-family: "Biaodian Pro Sans GB";
1141 | src: local("Hiragino Kaku Gothic ProN"), local("Hiragino Kaku Gothic Pro"), local("Yu Gothic"), local(YuGothic), local(SimSun), local(PMingLiU);
1142 | unicode-range: U+300C-300F, U+300A-300B, U+3008-3009, U+FF08-FF09, U+3014-3015;
1143 | }
1144 | @font-face {
1145 | font-family: "Biaodian Pro Serif GB";
1146 | src: local("Hiragino Mincho ProN"), local("Hiragino Mincho Pro"), local("Yu Mincho"), local(YuMincho), local(SimSun), local(PMingLiU);
1147 | unicode-range: U+300C-300F, U+300A-300B, U+3008-3009, U+FF08-FF09, U+3014-3015;
1148 | }
1149 | @font-face {
1150 | font-family: "Biaodian Basic";
1151 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1152 | unicode-range: U+2014, U+2026, U+00B7;
1153 | }
1154 | @font-face {
1155 | font-family: "Biaodian Basic";
1156 | font-weight: bold;
1157 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1158 | unicode-range: U+2014, U+2026, U+00B7;
1159 | }
1160 | @font-face {
1161 | font-family: "Biaodian Sans";
1162 | font-weight: bold;
1163 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1164 | unicode-range: U+2014, U+2026, U+00B7;
1165 | }
1166 | @font-face {
1167 | font-family: "Biaodian Pro Sans";
1168 | font-weight: bold;
1169 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1170 | unicode-range: U+2014, U+2026, U+00B7;
1171 | }
1172 | @font-face {
1173 | font-family: "Biaodian Pro Sans";
1174 | font-weight: bold;
1175 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1176 | unicode-range: U+2014, U+2026, U+00B7;
1177 | }
1178 | @font-face {
1179 | font-family: "Biaodian Pro Sans CNS";
1180 | font-weight: bold;
1181 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1182 | unicode-range: U+2014, U+2026, U+00B7;
1183 | }
1184 | @font-face {
1185 | font-family: "Biaodian Pro Sans GB";
1186 | font-weight: bold;
1187 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1188 | unicode-range: U+2014, U+2026, U+00B7;
1189 | }
1190 | @font-face {
1191 | font-family: "Biaodian Pro Serif";
1192 | font-weight: bold;
1193 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1194 | unicode-range: U+2014, U+2026, U+00B7;
1195 | }
1196 | @font-face {
1197 | font-family: "Biaodian Pro Serif CNS";
1198 | font-weight: bold;
1199 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1200 | unicode-range: U+2014, U+2026, U+00B7;
1201 | }
1202 | @font-face {
1203 | font-family: "Biaodian Pro Serif GB";
1204 | font-weight: bold;
1205 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1206 | unicode-range: U+2014, U+2026, U+00B7;
1207 | }
1208 | @font-face {
1209 | font-family: "Latin Italic Serif";
1210 | src: local("Georgia Italic"), local("Times New Roman Italic"), local(Georgia-Italic), local(TimesNewRomanPS-ItalicMT), local(Times-Italic);
1211 | }
1212 | @font-face {
1213 | font-family: "Latin Italic Serif";
1214 | font-weight: 700;
1215 | src: local("Georgia Bold Italic"), local("Times New Roman Bold Italic"), local(Georgia-BoldItalic), local(TimesNewRomanPS-BoldItalicMT), local(Times-Italic);
1216 | }
1217 | @font-face {
1218 | font-family: "Latin Italic Sans";
1219 | src: local("Helvetica Neue Italic"), local("Helvetica Oblique"), local("Arial Italic"), local(HelveticaNeue-Italic), local(Helvetica-LightOblique), local(Arial-ItalicMT);
1220 | }
1221 | @font-face {
1222 | font-family: "Latin Italic Sans";
1223 | font-weight: 700;
1224 | src: local("Helvetica Neue Bold Italic"), local("Helvetica Bold Oblique"), local("Arial Bold Italic"), local(HelveticaNeue-BoldItalic), local(Helvetica-BoldOblique), local(Arial-BoldItalicMT);
1225 | }
1226 | @font-face {
1227 | unicode-range: U+0030-0039;
1228 | font-family: "Numeral TF Sans";
1229 | src: local(Skia), local("Neutraface 2 Text"), local(Candara), local(Corbel);
1230 | }
1231 | @font-face {
1232 | unicode-range: U+0030-0039;
1233 | font-family: "Numeral TF Serif";
1234 | src: local(Georgia), local("Hoefler Text"), local("Big Caslon");
1235 | }
1236 | @font-face {
1237 | unicode-range: U+0030-0039;
1238 | font-family: "Numeral TF Italic Serif";
1239 | src: local("Georgia Italic"), local("Hoefler Text Italic"), local(Georgia-Italic), local(HoeflerText-Italic);
1240 | }
1241 | @font-face {
1242 | unicode-range: U+0030-0039;
1243 | font-family: "Numeral LF Sans";
1244 | src: local("Helvetica Neue"), local(Helvetica), local(Arial);
1245 | }
1246 | @font-face {
1247 | unicode-range: U+0030-0039;
1248 | font-family: "Numeral LF Italic Sans";
1249 | src: local("Helvetica Neue Italic"), local("Helvetica Oblique"), local("Arial Italic"), local(HelveticaNeue-Italic), local(Helvetica-LightOblique), local(Arial-ItalicMT);
1250 | }
1251 | @font-face {
1252 | unicode-range: U+0030-0039;
1253 | font-family: "Numeral LF Italic Sans";
1254 | font-weight: bold;
1255 | src: local("Helvetica Neue Bold Italic"), local("Helvetica Bold Oblique"), local("Arial Bold Italic"), local(HelveticaNeue-BoldItalic), local(Helvetica-BoldOblique), local(Arial-BoldItalicMT);
1256 | }
1257 | @font-face {
1258 | unicode-range: U+0030-0039;
1259 | font-family: "Numeral LF Serif";
1260 | src: local(Palatino), local("Palatino Linotype"), local("Times New Roman");
1261 | }
1262 | @font-face {
1263 | unicode-range: U+0030-0039;
1264 | font-family: "Numeral LF Italic Serif";
1265 | src: local("Palatino Italic"), local("Palatino Italic Linotype"), local("Times New Roman Italic"), local(Palatino-Italic), local(Palatino-Italic-Linotype), local(TimesNewRomanPS-ItalicMT);
1266 | }
1267 | @font-face {
1268 | unicode-range: U+0030-0039;
1269 | font-family: "Numeral LF Italic Serif";
1270 | font-weight: bold;
1271 | src: local("Palatino Bold Italic"), local("Palatino Bold Italic Linotype"), local("Times New Roman Bold Italic"), local(Palatino-BoldItalic), local(Palatino-BoldItalic-Linotype), local(TimesNewRomanPS-BoldItalicMT);
1272 | }
1273 | @font-face {
1274 | font-family: "Numeral TF Sans";
1275 | src: local(lying-to-firefox);
1276 | unicode-range: U+270C;
1277 | }
1278 | @font-face {
1279 | font-family: "Numeral TF Serif";
1280 | src: local(lying-to-firefox);
1281 | unicode-range: U+270C;
1282 | }
1283 | @font-face {
1284 | font-family: "Numeral TF Italic Serif";
1285 | src: local(lying-to-firefox);
1286 | unicode-range: U+270C;
1287 | }
1288 | @font-face {
1289 | font-family: "Numeral LF Sans";
1290 | src: local(lying-to-firefox);
1291 | unicode-range: U+270C;
1292 | }
1293 | @font-face {
1294 | font-family: "Numeral LF Italic Sans";
1295 | src: local(lying-to-firefox);
1296 | unicode-range: U+270C;
1297 | }
1298 | @font-face {
1299 | font-family: "Numeral LF Italic Sans";
1300 | font-weight: bold;
1301 | src: local(lying-to-firefox);
1302 | unicode-range: U+270C;
1303 | }
1304 | @font-face {
1305 | font-family: "Numeral LF Serif";
1306 | src: local(lying-to-firefox);
1307 | unicode-range: U+270C;
1308 | }
1309 | @font-face {
1310 | font-family: "Numeral LF Italic Serif";
1311 | src: local(lying-to-firefox);
1312 | unicode-range: U+270C;
1313 | }
1314 | @font-face {
1315 | font-family: "Numeral LF Italic Serif";
1316 | font-weight: bold;
1317 | src: local(lying-to-firefox);
1318 | unicode-range: U+270C;
1319 | }
1320 | @font-face {
1321 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1322 | unicode-range: U+3105-312D, U+31A0-31BA, U+02D9, U+02CA, U+02C5, U+02C7, U+02CB, U+02EA-02EB, U+030D, U+0358, U+F31B4-F31B7, U+F0061, U+F0065, U+F0069, U+F006F, U+F0075;
1323 | font-family: "Zhuyin Kaiti";
1324 | }
1325 | @font-face {
1326 | unicode-range: U+3105-312D, U+31A0-31BA, U+02D9, U+02CA, U+02C5, U+02C7, U+02CB, U+02EA-02EB, U+030D, U+0358, U+F31B4-F31B7, U+F0061, U+F0065, U+F0069, U+F006F, U+F0075;
1327 | font-family: "Zhuyin Heiti";
1328 | src: local("Hiragino Sans GB"), local("Heiti TC"), local("Microsoft Jhenghei"), url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1329 | }
1330 | @font-face {
1331 | font-family: "Zhuyin Heiti";
1332 | src: local("Heiti TC"), local("Microsoft Jhenghei"), url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1333 | unicode-range: U+3127;
1334 | }
1335 | @font-face {
1336 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1337 | font-family: "Zhuyin Heiti";
1338 | unicode-range: U+02D9, U+02CA, U+02C5, U+02C7, U+02CB, U+02EA-02EB, U+31B4, U+31B5, U+31B6, U+31B7, U+030D, U+0358, U+F31B4-F31B7, U+F0061, U+F0065, U+F0069, U+F006F, U+F0075;
1339 | }
1340 | @font-face {
1341 | src: url("./font/han.woff?v3.3.0") format("woff"), url("./font/han.otf?v3.3.0") format("opentype");
1342 | font-family: "Romanization Sans";
1343 | unicode-range: U+030D, U+0358, U+F31B4-F31B7, U+F0061, U+F0065, U+F0069, U+F006F, U+F0075;
1344 | }
1345 | html:lang(zh-Latn),
1346 | html:lang(ja-Latn),
1347 | html:not(:lang(zh)):not(:lang(ja)),
1348 | html *:lang(zh-Latn),
1349 | html *:lang(ja-Latn),
1350 | html *:not(:lang(zh)):not(:lang(ja)),
1351 | article strong:lang(zh-Latn),
1352 | article strong:lang(ja-Latn),
1353 | article strong:not(:lang(zh)):not(:lang(ja)),
1354 | article strong *:lang(zh-Latn),
1355 | article strong *:lang(ja-Latn),
1356 | article strong *:not(:lang(zh)):not(:lang(ja)) {
1357 | font-family: "Helvetica Neue", Helvetica, Arial, "Han Heiti", sans-serif;
1358 | }
1359 | html:lang(zh),
1360 | html:lang(zh-Hant),
1361 | [lang^="zh"],
1362 | [lang*="Hant"],
1363 | [lang="zh-TW"],
1364 | [lang="zh-HK"],
1365 | article strong:lang(zh),
1366 | article strong:lang(zh-Hant) {
1367 | font-family: "Biaodian Pro Sans CNS", "Helvetica Neue", Helvetica, Arial, "Zhuyin Heiti", "Han Heiti", sans-serif;
1368 | }
1369 | html:lang(zh).no-unicoderange,
1370 | html:lang(zh-Hant).no-unicoderange,
1371 | .no-unicoderange [lang^="zh"],
1372 | .no-unicoderange [lang*="Hant"],
1373 | .no-unicoderange [lang="zh-TW"],
1374 | .no-unicoderange [lang="zh-HK"],
1375 | .no-unicoderange article strong:lang(zh),
1376 | .no-unicoderange article strong:lang(zh-Hant) {
1377 | font-family: "Helvetica Neue", Helvetica, Arial, "Han Heiti", sans-serif;
1378 | }
1379 | html:lang(zh-Hans),
1380 | html:lang(zh-CN),
1381 | [lang*="Hans"],
1382 | [lang="zh-CN"],
1383 | article strong:lang(zh-Hans),
1384 | article strong:lang(zh-CN) {
1385 | font-family: "Biaodian Pro Sans GB", "Helvetica Neue", Helvetica, Arial, "Han Heiti GB", sans-serif;
1386 | }
1387 | html:lang(zh-Hans).no-unicoderange,
1388 | html:lang(zh-CN).no-unicoderange,
1389 | .no-unicoderange [lang*="Hans"],
1390 | .no-unicoderange [lang="zh-CN"],
1391 | .no-unicoderange article strong:lang(zh-Hans),
1392 | .no-unicoderange article strong:lang(zh-CN) {
1393 | font-family: "Helvetica Neue", Helvetica, Arial, "Han Heiti GB", sans-serif;
1394 | }
1395 | html:lang(ja),
1396 | [lang^="ja"],
1397 | article strong:lang(ja) {
1398 | font-family: "Yakumono Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
1399 | }
1400 | html:lang(ja).no-unicoderange,
1401 | .no-unicoderange [lang^="ja"],
1402 | .no-unicoderange article strong:lang(ja) {
1403 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1404 | }
1405 | article blockquote i:lang(zh-Latn),
1406 | article blockquote var:lang(zh-Latn),
1407 | article blockquote i:lang(ja-Latn),
1408 | article blockquote var:lang(ja-Latn),
1409 | article blockquote i:not(:lang(zh)):not(:lang(ja)),
1410 | article blockquote var:not(:lang(zh)):not(:lang(ja)),
1411 | article blockquote i *:lang(zh-Latn),
1412 | article blockquote var *:lang(zh-Latn),
1413 | article blockquote i *:lang(ja-Latn),
1414 | article blockquote var *:lang(ja-Latn),
1415 | article blockquote i *:not(:lang(zh)):not(:lang(ja)),
1416 | article blockquote var *:not(:lang(zh)):not(:lang(ja)) {
1417 | font-family: "Latin Italic Sans", "Helvetica Neue", Helvetica, Arial, "Han Heiti", sans-serif;
1418 | }
1419 | article blockquote i:lang(zh),
1420 | article blockquote var:lang(zh),
1421 | article blockquote i:lang(zh-Hant),
1422 | article blockquote var:lang(zh-Hant) {
1423 | font-family: "Biaodian Pro Sans CNS", "Latin Italic Sans", "Helvetica Neue", Helvetica, Arial, "Zhuyin Heiti", "Han Heiti", sans-serif;
1424 | }
1425 | .no-unicoderange article blockquote i:lang(zh),
1426 | .no-unicoderange article blockquote var:lang(zh),
1427 | .no-unicoderange article blockquote i:lang(zh-Hant),
1428 | .no-unicoderange article blockquote var:lang(zh-Hant) {
1429 | font-family: "Latin Italic Sans", "Helvetica Neue", Helvetica, Arial, "Han Heiti", sans-serif;
1430 | }
1431 | .no-unicoderange article blockquote i:lang(zh),
1432 | .no-unicoderange article blockquote var:lang(zh),
1433 | .no-unicoderange article blockquote i:lang(zh-Hant),
1434 | .no-unicoderange article blockquote var:lang(zh-Hant) {
1435 | font-family: "Latin Italic Sans", "Helvetica Neue", Helvetica, Arial, "Han Heiti", sans-serif;
1436 | }
1437 | article blockquote i:lang(zh-Hans),
1438 | article blockquote var:lang(zh-Hans),
1439 | article blockquote i:lang(zh-CN),
1440 | article blockquote var:lang(zh-CN) {
1441 | font-family: "Biaodian Pro Sans GB", "Latin Italic Sans", "Helvetica Neue", Helvetica, Arial, "Han Heiti GB", sans-serif;
1442 | }
1443 | .no-unicoderange article blockquote i:lang(zh-Hans),
1444 | .no-unicoderange article blockquote var:lang(zh-Hans),
1445 | .no-unicoderange article blockquote i:lang(zh-CN),
1446 | .no-unicoderange article blockquote var:lang(zh-CN) {
1447 | font-family: "Latin Italic Sans", "Helvetica Neue", Helvetica, Arial, "Han Heiti GB", sans-serif;
1448 | }
1449 | article blockquote i:lang(ja),
1450 | article blockquote var:lang(ja) {
1451 | font-family: "Yakumono Sans", "Latin Italic Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
1452 | }
1453 | .no-unicoderange article blockquote i:lang(ja),
1454 | .no-unicoderange article blockquote var:lang(ja) {
1455 | font-family: "Latin Italic Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
1456 | }
1457 | article figure blockquote:lang(zh-Latn),
1458 | article figure blockquote:lang(ja-Latn),
1459 | article figure blockquote:not(:lang(zh)):not(:lang(ja)),
1460 | article figure blockquote *:lang(zh-Latn),
1461 | article figure blockquote *:lang(ja-Latn),
1462 | article figure blockquote *:not(:lang(zh)):not(:lang(ja)) {
1463 | font-family: Georgia, "Times New Roman", "Han Songti", cursive, serif;
1464 | }
1465 | article figure blockquote:lang(zh),
1466 | article figure blockquote:lang(zh-Hant) {
1467 | font-family: "Biaodian Pro Serif CNS", "Numeral LF Serif", Georgia, "Times New Roman", "Zhuyin Kaiti", "Han Songti", serif;
1468 | }
1469 | .no-unicoderange article figure blockquote:lang(zh),
1470 | .no-unicoderange article figure blockquote:lang(zh-Hant) {
1471 | font-family: "Numeral LF Serif", Georgia, "Times New Roman", "Han Songti", serif;
1472 | }
1473 | article figure blockquote:lang(zh-Hans),
1474 | article figure blockquote:lang(zh-CN) {
1475 | font-family: "Biaodian Pro Serif GB", "Numeral LF Serif", Georgia, "Times New Roman", "Han Songti GB", serif;
1476 | }
1477 | .no-unicoderange article figure blockquote:lang(zh-Hans),
1478 | .no-unicoderange article figure blockquote:lang(zh-CN) {
1479 | font-family: "Numeral LF Serif", Georgia, "Times New Roman", "Han Songti GB", serif;
1480 | }
1481 | article figure blockquote:lang(ja) {
1482 | font-family: "Yakumono Serif", "Numeral LF Serif", Georgia, "Times New Roman", serif;
1483 | }
1484 | .no-unicoderange article figure blockquote:lang(ja) {
1485 | font-family: "Numeral LF Serif", Georgia, "Times New Roman", serif;
1486 | }
1487 | article blockquote:lang(zh-Latn),
1488 | article blockquote:lang(ja-Latn),
1489 | article blockquote:not(:lang(zh)):not(:lang(ja)),
1490 | article blockquote *:lang(zh-Latn),
1491 | article blockquote *:lang(ja-Latn),
1492 | article blockquote *:not(:lang(zh)):not(:lang(ja)) {
1493 | font-family: Georgia, "Times New Roman", "Han Kaiti", cursive, serif;
1494 | }
1495 | article blockquote:lang(zh),
1496 | article blockquote:lang(zh-Hant) {
1497 | font-family: "Biaodian Pro Serif CNS", "Numeral LF Serif", Georgia, "Times New Roman", "Zhuyin Kaiti", "Han Kaiti", cursive, serif;
1498 | }
1499 | .no-unicoderange article blockquote:lang(zh),
1500 | .no-unicoderange article blockquote:lang(zh-Hant) {
1501 | font-family: "Numeral LF Serif", Georgia, "Times New Roman", "Han Kaiti", cursive, serif;
1502 | }
1503 | article blockquote:lang(zh-Hans),
1504 | article blockquote:lang(zh-CN) {
1505 | font-family: "Biaodian Pro Serif GB", "Numeral LF Serif", Georgia, "Times New Roman", "Han Kaiti GB", cursive, serif;
1506 | }
1507 | .no-unicoderange article blockquote:lang(zh-Hans),
1508 | .no-unicoderange article blockquote:lang(zh-CN) {
1509 | font-family: "Numeral LF Serif", Georgia, "Times New Roman", "Han Kaiti GB", cursive, serif;
1510 | }
1511 | article blockquote:lang(ja) {
1512 | font-family: "Yakumono Serif", "Numeral LF Serif", Georgia, "Times New Roman", cursive, serif;
1513 | }
1514 | .no-unicoderange article blockquote:lang(ja) {
1515 | font-family: "Numeral LF Serif", Georgia, "Times New Roman", cursive, serif;
1516 | }
1517 | i:lang(zh-Latn),
1518 | var:lang(zh-Latn),
1519 | i:lang(ja-Latn),
1520 | var:lang(ja-Latn),
1521 | i:not(:lang(zh)):not(:lang(ja)),
1522 | var:not(:lang(zh)):not(:lang(ja)),
1523 | i *:lang(zh-Latn),
1524 | var *:lang(zh-Latn),
1525 | i *:lang(ja-Latn),
1526 | var *:lang(ja-Latn),
1527 | i *:not(:lang(zh)):not(:lang(ja)),
1528 | var *:not(:lang(zh)):not(:lang(ja)) {
1529 | font-family: "Latin Italic Serif", Georgia, "Times New Roman", "Han Kaiti", cursive, serif;
1530 | }
1531 | i:lang(zh),
1532 | var:lang(zh),
1533 | i:lang(zh-Hant),
1534 | var:lang(zh-Hant) {
1535 | font-family: "Biaodian Pro Serif CNS", "Numeral LF Italic Serif", "Latin Italic Serif", Georgia, "Times New Roman", "Zhuyin Kaiti", "Han Kaiti", cursive, serif;
1536 | }
1537 | .no-unicoderange i:lang(zh),
1538 | .no-unicoderange var:lang(zh),
1539 | .no-unicoderange i:lang(zh-Hant),
1540 | .no-unicoderange var:lang(zh-Hant) {
1541 | font-family: "Numeral LF Italic Serif", "Latin Italic Serif", Georgia, "Times New Roman", "Han Kaiti", cursive, serif;
1542 | }
1543 | i:lang(zh-Hans),
1544 | var:lang(zh-Hans),
1545 | i:lang(zh-CN),
1546 | var:lang(zh-CN) {
1547 | font-family: "Biaodian Pro Serif GB", "Numeral LF Italic Serif", "Latin Italic Serif", Georgia, "Times New Roman", "Han Kaiti GB", cursive, serif;
1548 | }
1549 | .no-unicoderange i:lang(zh-Hans),
1550 | .no-unicoderange var:lang(zh-Hans),
1551 | .no-unicoderange i:lang(zh-CN),
1552 | .no-unicoderange var:lang(zh-CN) {
1553 | font-family: "Numeral LF Italic Serif", "Latin Italic Serif", Georgia, "Times New Roman", "Han Kaiti GB", cursive, serif;
1554 | }
1555 | i:lang(ja),
1556 | var:lang(ja) {
1557 | font-family: "Yakumono Serif", "Numeral LF Italic Serif", "Latin Italic Serif", Georgia, "Times New Roman", cursive, serif;
1558 | }
1559 | .no-unicoderange i:lang(ja),
1560 | .no-unicoderange var:lang(ja) {
1561 | font-family: "Numeral LF Italic Serif", "Latin Italic Serif", Georgia, "Times New Roman", cursive, serif;
1562 | }
1563 | code:lang(zh-Latn),
1564 | kbd:lang(zh-Latn),
1565 | samp:lang(zh-Latn),
1566 | pre:lang(zh-Latn),
1567 | code:lang(ja-Latn),
1568 | kbd:lang(ja-Latn),
1569 | samp:lang(ja-Latn),
1570 | pre:lang(ja-Latn),
1571 | code:not(:lang(zh)):not(:lang(ja)),
1572 | kbd:not(:lang(zh)):not(:lang(ja)),
1573 | samp:not(:lang(zh)):not(:lang(ja)),
1574 | pre:not(:lang(zh)):not(:lang(ja)),
1575 | code *:lang(zh-Latn),
1576 | kbd *:lang(zh-Latn),
1577 | samp *:lang(zh-Latn),
1578 | pre *:lang(zh-Latn),
1579 | code *:lang(ja-Latn),
1580 | kbd *:lang(ja-Latn),
1581 | samp *:lang(ja-Latn),
1582 | pre *:lang(ja-Latn),
1583 | code *:not(:lang(zh)):not(:lang(ja)),
1584 | kbd *:not(:lang(zh)):not(:lang(ja)),
1585 | samp *:not(:lang(zh)):not(:lang(ja)),
1586 | pre *:not(:lang(zh)):not(:lang(ja)) {
1587 | font-family: Menlo, Consolas, Courier, "Han Heiti", monospace, monospace, sans-serif;
1588 | }
1589 | code:lang(zh),
1590 | kbd:lang(zh),
1591 | samp:lang(zh),
1592 | pre:lang(zh),
1593 | code:lang(zh-Hant),
1594 | kbd:lang(zh-Hant),
1595 | samp:lang(zh-Hant),
1596 | pre:lang(zh-Hant) {
1597 | font-family: "Biaodian Pro Sans CNS", Menlo, Consolas, Courier, "Zhuyin Heiti", "Han Heiti", monospace, monospace, sans-serif;
1598 | }
1599 | .no-unicoderange code:lang(zh),
1600 | .no-unicoderange kbd:lang(zh),
1601 | .no-unicoderange samp:lang(zh),
1602 | .no-unicoderange pre:lang(zh),
1603 | .no-unicoderange code:lang(zh-Hant),
1604 | .no-unicoderange kbd:lang(zh-Hant),
1605 | .no-unicoderange samp:lang(zh-Hant),
1606 | .no-unicoderange pre:lang(zh-Hant) {
1607 | font-family: Menlo, Consolas, Courier, "Han Heiti", monospace, monospace, sans-serif;
1608 | }
1609 | code:lang(zh-Hans),
1610 | kbd:lang(zh-Hans),
1611 | samp:lang(zh-Hans),
1612 | pre:lang(zh-Hans),
1613 | code:lang(zh-CN),
1614 | kbd:lang(zh-CN),
1615 | samp:lang(zh-CN),
1616 | pre:lang(zh-CN) {
1617 | font-family: "Biaodian Pro Sans GB", Menlo, Consolas, Courier, "Han Heiti GB", monospace, monospace, sans-serif;
1618 | }
1619 | .no-unicoderange code:lang(zh-Hans),
1620 | .no-unicoderange kbd:lang(zh-Hans),
1621 | .no-unicoderange samp:lang(zh-Hans),
1622 | .no-unicoderange pre:lang(zh-Hans),
1623 | .no-unicoderange code:lang(zh-CN),
1624 | .no-unicoderange kbd:lang(zh-CN),
1625 | .no-unicoderange samp:lang(zh-CN),
1626 | .no-unicoderange pre:lang(zh-CN) {
1627 | font-family: Menlo, Consolas, Courier, "Han Heiti GB", monospace, monospace, sans-serif;
1628 | }
1629 | code:lang(ja),
1630 | kbd:lang(ja),
1631 | samp:lang(ja),
1632 | pre:lang(ja) {
1633 | font-family: "Yakumono Sans", Menlo, Consolas, Courier, monospace, monospace, sans-serif;
1634 | }
1635 | .no-unicoderange code:lang(ja),
1636 | .no-unicoderange kbd:lang(ja),
1637 | .no-unicoderange samp:lang(ja),
1638 | .no-unicoderange pre:lang(ja) {
1639 | font-family: Menlo, Consolas, Courier, monospace, monospace, sans-serif;
1640 | }
1641 | html,
1642 | .no-unicoderange h-char.bd-liga,
1643 | .no-unicoderange h-char[unicode="b7"],
1644 | ruby h-zhuyin,
1645 | h-ruby h-zhuyin,
1646 | ruby h-zhuyin h-diao,
1647 | h-ruby h-zhuyin h-diao,
1648 | ruby.romanization rt,
1649 | h-ruby.romanization rt,
1650 | ruby [annotation] rt,
1651 | h-ruby [annotation] rt {
1652 | -moz-font-feature-settings: "liga";
1653 | -ms-font-feature-settings: "liga";
1654 | -webkit-font-feature-settings: "liga";
1655 | font-feature-settings: "liga";
1656 | }
1657 | html,
1658 | [lang^="zh"],
1659 | [lang*="Hant"],
1660 | [lang="zh-TW"],
1661 | [lang="zh-HK"],
1662 | [lang*="Hans"],
1663 | [lang="zh-CN"],
1664 | article strong,
1665 | code,
1666 | kbd,
1667 | samp,
1668 | pre,
1669 | article blockquote i,
1670 | article blockquote var {
1671 | -moz-font-feature-settings: "liga=1, locl=0";
1672 | -ms-font-feature-settings: "liga", "locl" 0;
1673 | -webkit-font-feature-settings: "liga", "locl" 0;
1674 | font-feature-settings: "liga", "locl" 0;
1675 | }
1676 | .no-unicoderange h-char.bd-cop:lang(zh-Hant),
1677 | .no-unicoderange h-char.bd-cop:lang(zh-TW),
1678 | .no-unicoderange h-char.bd-cop:lang(zh-HK) {
1679 | font-family: -apple-system, "Han Heiti CNS";
1680 | }
1681 | .no-unicoderange h-char.bd-liga,
1682 | .no-unicoderange h-char[unicode="b7"] {
1683 | font-family: "Biaodian Basic", "Han Heiti";
1684 | }
1685 | .no-unicoderange h-char[unicode="2018"]:lang(zh-Hans),
1686 | .no-unicoderange h-char[unicode="2019"]:lang(zh-Hans),
1687 | .no-unicoderange h-char[unicode="201c"]:lang(zh-Hans),
1688 | .no-unicoderange h-char[unicode="201d"]:lang(zh-Hans),
1689 | .no-unicoderange h-char[unicode="2018"]:lang(zh-CN),
1690 | .no-unicoderange h-char[unicode="2019"]:lang(zh-CN),
1691 | .no-unicoderange h-char[unicode="201c"]:lang(zh-CN),
1692 | .no-unicoderange h-char[unicode="201d"]:lang(zh-CN) {
1693 | font-family: "Han Heiti GB";
1694 | }
1695 | i,
1696 | var {
1697 | font-style: inherit;
1698 | }
1699 | .no-unicoderange ruby h-zhuyin,
1700 | .no-unicoderange h-ruby h-zhuyin,
1701 | .no-unicoderange ruby h-zhuyin h-diao,
1702 | .no-unicoderange h-ruby h-zhuyin h-diao {
1703 | font-family: "Zhuyin Kaiti", cursive, serif;
1704 | }
1705 | ruby h-diao,
1706 | h-ruby h-diao {
1707 | font-family: "Zhuyin Kaiti", cursive, serif;
1708 | }
1709 | ruby.romanization rt,
1710 | h-ruby.romanization rt,
1711 | ruby [annotation] rt,
1712 | h-ruby [annotation] rt {
1713 | font-family: "Romanization Sans", "Helvetica Neue", Helvetica, Arial, "Han Heiti", sans-serif;
1714 | }
1715 | .no-kaiti i,
1716 | .no-kaiti var {
1717 | padding-bottom: .05em;
1718 | border-bottom: 3px double #d3d3d3;
1719 | }
1720 | article h1 + blockquote,
1721 | article h2 + blockquote,
1722 | article h3 + blockquote,
1723 | article h4 + blockquote,
1724 | article h5 + blockquote,
1725 | article h6 + blockquote,
1726 | article h1 + p,
1727 | article h2 + p,
1728 | article h3 + p,
1729 | article h4 + p,
1730 | article h5 + p,
1731 | article h6 + p,
1732 | article h1 + ol,
1733 | article h2 + ol,
1734 | article h3 + ol,
1735 | article h4 + ol,
1736 | article h5 + ol,
1737 | article h6 + ol,
1738 | article h1 + ul,
1739 | article h2 + ul,
1740 | article h3 + ul,
1741 | article h4 + ul,
1742 | article h5 + ul,
1743 | article h6 + ul,
1744 | article h1 + h6,
1745 | article h2 + h6,
1746 | article h3 + h6,
1747 | article h4 + h6,
1748 | article h5 + h6,
1749 | article h6 + h6,
1750 | article h1 + section > h6:first-child,
1751 | article h2 + section > h6:first-child,
1752 | article h3 + section > h6:first-child,
1753 | article h4 + section > h6:first-child,
1754 | article h5 + section > h6:first-child,
1755 | article h6 + section > h6:first-child,
1756 | article h1 + section > p:first-child,
1757 | article h2 + section > p:first-child,
1758 | article h3 + section > p:first-child,
1759 | article h4 + section > p:first-child,
1760 | article h5 + section > p:first-child,
1761 | article h6 + section > p:first-child,
1762 | article h1 + section > ol:first-child,
1763 | article h2 + section > ol:first-child,
1764 | article h3 + section > ol:first-child,
1765 | article h4 + section > ol:first-child,
1766 | article h5 + section > ol:first-child,
1767 | article h6 + section > ol:first-child,
1768 | article h1 + section > ul:first-child,
1769 | article h2 + section > ul:first-child,
1770 | article h3 + section > ul:first-child,
1771 | article h4 + section > ul:first-child,
1772 | article h5 + section > ul:first-child,
1773 | article h6 + section > ul:first-child,
1774 | article h1 + section > blockquote:first-child,
1775 | article h2 + section > blockquote:first-child,
1776 | article h3 + section > blockquote:first-child,
1777 | article h4 + section > blockquote:first-child,
1778 | article h5 + section > blockquote:first-child,
1779 | article h6 + section > blockquote:first-child,
1780 | article h1 + h5,
1781 | article h2 + h5,
1782 | article h3 + h5,
1783 | article h4 + h5,
1784 | article h5 + h5,
1785 | article h1 + section > h5:first-child,
1786 | article h2 + section > h5:first-child,
1787 | article h3 + section > h5:first-child,
1788 | article h4 + section > h5:first-child,
1789 | article h5 + section > h5:first-child,
1790 | article h1 + h4,
1791 | article h2 + h4,
1792 | article h3 + h4,
1793 | article h4 + h4,
1794 | article h1 + section > h4:first-child,
1795 | article h2 + section > h4:first-child,
1796 | article h3 + section > h4:first-child,
1797 | article h4 + section > h4:first-child,
1798 | article h1 + h3,
1799 | article h2 + h3,
1800 | article h3 + h3,
1801 | article h1 + section > h3:first-child,
1802 | article h2 + section > h3:first-child,
1803 | article h3 + section > h3:first-child,
1804 | article h1 + h2,
1805 | article h2 + h2,
1806 | article h1 + section > h2:first-child,
1807 | article h2 + section > h2:first-child {
1808 | margin-top: -1em;
1809 | }
1810 | article {
1811 | line-height: 1.7;
1812 | }
1813 | article {
1814 | -moz-hyphens: auto;
1815 | -ms-hyphens: auto;
1816 | -webkit-hyphens: auto;
1817 | hyphens: auto;
1818 | }
1819 | article p,
1820 | article li {
1821 | text-align: justify;
1822 | text-justify: inter-ideograph;
1823 | }
1824 | p.poem-like,
1825 | .poem-like p {
1826 | margin-left: 2em;
1827 | }
1828 | @media only screen and (max-width: 480px) {
1829 | p.poem-like,
1830 | .poem-like p {
1831 | margin-left: 1em;
1832 | }
1833 | }
1834 | article blockquote {
1835 | margin-right: 0;
1836 | }
1837 | @media only screen and (max-width: 480px) {
1838 | article blockquote {
1839 | margin-left: 1em;
1840 | }
1841 | }
1842 | figure blockquote {
1843 | margin: 0;
1844 | }
1845 | blockquote blockquote {
1846 | margin-left: 1em;
1847 | margin-right: 1em;
1848 | }
1849 | article blockquote blockquote {
1850 | margin-right: 0;
1851 | }
1852 | @media only screen and (max-width: 480px) {
1853 | blockquote,
1854 | figure {
1855 | margin-left: 1em;
1856 | margin-right: 1em;
1857 | }
1858 | }
1859 | h-hws,
1860 | h-hws[hidden] {
1861 | display: inline;
1862 | visibility: hidden;
1863 | font: .89em Arial;
1864 | }
1865 | code h-hws,
1866 | code h-hws[hidden],
1867 | kbd h-hws,
1868 | kbd h-hws[hidden],
1869 | samp h-hws,
1870 | samp h-hws[hidden],
1871 | pre h-hws,
1872 | pre h-hws[hidden],
1873 | h-hws.quote-inner,
1874 | h-hws[hidden].quote-inner,
1875 | h-hws.quote-outer:lang(zh-Hans),
1876 | h-hws[hidden].quote-outer:lang(zh-Hans),
1877 | h-hws.quote-outer:lang(zh-CN),
1878 | h-hws[hidden].quote-outer:lang(zh-CN) {
1879 | display: none;
1880 | }
1881 | @font-face {
1882 | src: url("./font/han-space.woff?v3.3.0") format("woff"), url("./font/han-space.otf?v3.3.0") format("opentype");
1883 | font-family: "Han Space";
1884 | unicode-range: U+20;
1885 | }
1886 | h-char.bd-hangable:lang(zh) h-cs,
1887 | h-char.bd-hangable:lang(zh-Hant) h-cs,
1888 | h-char.bd-hangable:lang(zh-TW) h-cs,
1889 | h-char.bd-hangable:lang(zh-HK) h-cs,
1890 | h-cs,
1891 | h-char.bd-hangable:lang(zh) h-cs[hidden],
1892 | h-char.bd-hangable:lang(zh-Hant) h-cs[hidden],
1893 | h-char.bd-hangable:lang(zh-TW) h-cs[hidden],
1894 | h-char.bd-hangable:lang(zh-HK) h-cs[hidden],
1895 | h-cs[hidden] {
1896 | display: inline;
1897 | visibility: inherit;
1898 | font-family: inherit;
1899 | font-size: inherit;
1900 | }
1901 | h-cs.hangable-outer,
1902 | h-cs.hangable-outer[hidden] {
1903 | display: inline;
1904 | font: 1em "Han Space";
1905 | }
1906 | h-cs.hangable-outer:lang(zh-Hant),
1907 | h-cs.hangable-outer[hidden]:lang(zh-Hant),
1908 | h-cs.hangable-outer:lang(zh-TW),
1909 | h-cs.hangable-outer[hidden]:lang(zh-TW),
1910 | h-cs.hangable-outer:lang(zh-HK),
1911 | h-cs.hangable-outer[hidden]:lang(zh-HK) {
1912 | display: none;
1913 | }
1914 | h-char.bd-hangable:lang(zh-Hans),
1915 | h-char.bd-hangable:lang(zh-CN),
1916 | h-char.bd-hangable:lang(ja) {
1917 | position: relative;
1918 | }
1919 | h-char.bd-hangable:lang(zh-Hans):after,
1920 | h-char.bd-hangable:lang(zh-CN):after,
1921 | h-char.bd-hangable:lang(ja):after {
1922 | display: none !important;
1923 | }
1924 | h-char.bd-hangable:lang(zh-Hans):before,
1925 | h-char.bd-hangable:lang(zh-CN):before,
1926 | h-char.bd-hangable:lang(ja):before {
1927 | display: inline !important;
1928 | content: " ";
1929 | font: 1em "Han Space", Menlo, Consolas, Courier;
1930 | }
1931 | h-char.bd-hangable:lang(zh-Hans) > h-inner,
1932 | h-char.bd-hangable:lang(zh-CN) > h-inner,
1933 | h-char.bd-hangable:lang(ja) > h-inner {
1934 | -moz-text-emphasis: none;
1935 | -webkit-text-emphasis: none;
1936 | text-emphasis: none;
1937 | font-style: normal;
1938 | font-weight: normal;
1939 | line-height: normal;
1940 | text-decoration: none;
1941 | text-indent: 0;
1942 | position: absolute;
1943 | left: 0;
1944 | top: 0;
1945 | display: inline-block;
1946 | line-height: 1.1;
1947 | }
1948 | ruby h-char.bd-hangable:lang(zh-Hans) > h-inner,
1949 | ruby h-char.bd-hangable:lang(zh-CN) > h-inner,
1950 | ruby h-char.bd-hangable:lang(ja) > h-inner,
1951 | h-ru h-char.bd-hangable:lang(zh-Hans) > h-inner,
1952 | h-ru h-char.bd-hangable:lang(zh-CN) > h-inner,
1953 | h-ru h-char.bd-hangable:lang(ja) > h-inner {
1954 | position: relative;
1955 | }
1956 | h-char.bd-jiya.bd-open:before,
1957 | h-char.bd-jiya.bd-end:after,
1958 | h-cs,
1959 | h-cs[hidden] {
1960 | display: none;
1961 | visibility: hidden;
1962 | content: " ";
1963 | font: .825em Courier;
1964 | letter-spacing: 0;
1965 | white-space: normal;
1966 | }
1967 | h-cs.jinze-outer,
1968 | h-cs.jinze-outer[hidden] {
1969 | display: inline;
1970 | }
1971 | h-char.bd-jiya.bd-open > h-inner {
1972 | margin-left: -.5em;
1973 | }
1974 | h-char.bd-jiya.bd-close > h-inner,
1975 | h-char.bd-jiya.bd-cop > h-inner,
1976 | h-char.bd-jiya[unicode="ff0e"] > h-inner {
1977 | letter-spacing: -.5em;
1978 | }
1979 | h-char.bd-jiya.bd-open:before,
1980 | h-char.bd-jiya.bd-close:after,
1981 | h-char.bd-jiya.bd-cop:after,
1982 | h-char.bd-jiya[unicode="ff0e"]:after {
1983 | display: inline;
1984 | }
1985 | h-char.bd-jiya.bd-cop:lang(zh-Hant):after,
1986 | h-char.bd-jiya.bd-cop:lang(zh-TW):after,
1987 | h-char.bd-jiya.bd-cop:lang(zh-HK):after {
1988 | display: none;
1989 | }
1990 | h-char.bd-jiya.bd-cop:lang(zh-Hant) > h-inner,
1991 | h-char.bd-jiya.bd-cop:lang(zh-TW) > h-inner,
1992 | h-char.bd-jiya.bd-cop:lang(zh-HK) > h-inner {
1993 | letter-spacing: inherit;
1994 | }
1995 | h-char.bd-consecutive.bd-end:not(.end-portion):after,
1996 | h-char.bd-consecutive.bd-open[prev="bd-open"]:before,
1997 | h-cs.jiya-outer.bd-end:not(.end-portion) {
1998 | display: none;
1999 | }
2000 | h-cs.jiya-outer.bd-end[next="bd-open"] {
2001 | display: inline;
2002 | }
2003 | h-char.bd-consecutive.bd-open[prev*="bd-cop"]:lang(zh-Hant):before,
2004 | h-char.bd-consecutive.bd-open[prev*="bd-cop"]:lang(zh-TW):before,
2005 | h-char.bd-consecutive.bd-open[prev*="bd-cop"]:lang(zh-HK):before {
2006 | display: none;
2007 | }
2008 | h-cs.jiya-outer[prev*="bd-cop"]:lang(zh-Hant),
2009 | h-cs.jiya-outer.bd-end:lang(zh-Hant),
2010 | h-cs.jiya-outer[prev*="bd-cop"]:lang(zh-TW),
2011 | h-cs.jiya-outer.bd-end:lang(zh-TW),
2012 | h-cs.jiya-outer[prev*="bd-cop"]:lang(zh-HK),
2013 | h-cs.jiya-outer.bd-end:lang(zh-HK) {
2014 | display: none;
2015 | }
2016 | h-char.bd-consecutive[unicode="b7"]:not(.end-portion),
2017 | h-char.bd-consecutive[unicode="30fb"]:not(.end-portion) {
2018 | letter-spacing: -.5em;
2019 | }
2020 | h-char.bd-consecutive.bd-liga:not(.end-portion) {
2021 | margin-right: -.25em;
2022 | }
2023 | h-char[display-as] {
2024 | position: relative;
2025 | display: inline-block;
2026 | }
2027 | h-char[display-as] h-inner {
2028 | color: transparent;
2029 | }
2030 | h-char[display-as]:after {
2031 | position: absolute;
2032 | left: 0;
2033 | display: inline-block;
2034 | content: attr(display-as);
2035 | }
2036 | h-char[display-as].comb-liga:after {
2037 | font-family: "Romanization Sans", "Zhuyin Kaiti";
2038 | }
2039 |
--------------------------------------------------------------------------------