review 5.5.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/NEWS.ja.md +18 -0
- data/NEWS.md +18 -0
- data/doc/format.ja.md +70 -33
- data/doc/format.md +69 -34
- data/doc/quickstart.ja.md +7 -1
- data/doc/quickstart.md +7 -1
- data/lib/review/builder.rb +2 -2
- data/lib/review/i18n.yml +24 -2
- data/lib/review/idgxmlbuilder.rb +25 -7
- data/lib/review/idgxmlmaker.rb +11 -1
- data/lib/review/init.rb +7 -2
- data/lib/review/latexbuilder.rb +1 -1
- data/lib/review/version.rb +1 -1
- data/review.gemspec +1 -0
- data/templates/latex/config.erb +6 -1
- data/templates/latex/review-jlreq/review-base.sty +11 -8
- data/templates/latex/review-jsbook/review-base.sty +15 -11
- data/test/assets/test_template.tex +12 -2
- data/test/assets/test_template_backmatter.tex +12 -2
- data/test/test_builder.rb +2 -0
- data/test/test_htmlbuilder.rb +3 -0
- data/test/test_idgxmlbuilder.rb +43 -1
- data/test/test_latexbuilder.rb +8 -0
- data/test/test_plaintextbuilder.rb +3 -0
- data/test/test_rstbuilder.rb +3 -0
- data/test/test_topbuilder.rb +3 -0
- metadata +16 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 644d242fdcddb452c2cfd780a13a165ee89f49b11f349b682ad87c47255f8758
|
|
4
|
+
data.tar.gz: 77636486441ca626f068bec8f1cabae980bb4832946d98ef6c5bc329bee30b56
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 96d2d70825a306d384e832312527e956f23b81832a71fe766b102e6705b5b3dfad50c3cde19b767eaa124e79a6d5096a5cf9ee882ef1335cb96864d3dd4de992
|
|
7
|
+
data.tar.gz: 06336e0ca7578002aa195d1a08d4f354da2842fe0eb0812d38825be48c68130d6a78da8df9ae064ba24d138f6f5bb11c9383bf8a3eb9d4ea06f8458c8813be44
|
data/NEWS.ja.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
# Version 5.6.0
|
|
2
|
+
## 新機能
|
|
3
|
+
* IDGXMLBuilder: `//texequation` と `@<m>` で `imgmath` math_formatに対応しました ([#1829])
|
|
4
|
+
* LATEXBuilder: `@<icon>`用のマクロとして`reviewicon`マクロを追加し、 `reviewincludegraphics`マクロの代わりに使うようにしました ([#1838])
|
|
5
|
+
* ルビ文字列の前後のスペースを削除するようにしました ([#1839])
|
|
6
|
+
|
|
7
|
+
## 非互換の変更
|
|
8
|
+
* LATEXBuilder: 囲み記事の見出しとして `■メモ` の代わりに `MEMO`, `NOTICE`, `CAUTION` 等を使うようにしました。以前の見出しを使う場合は`locale.yml`に記載してください ([#1856])
|
|
9
|
+
|
|
10
|
+
## その他
|
|
11
|
+
* ドキュメント `format.md` と `format.ja.md` を更新しました ([#1860])
|
|
12
|
+
|
|
13
|
+
[#1829]: https://github.com/kmuto/review/pull/1829
|
|
14
|
+
[#1838]: https://github.com/kmuto/review/pull/1838
|
|
15
|
+
[#1839]: https://github.com/kmuto/review/pull/1839
|
|
16
|
+
[#1856]: https://github.com/kmuto/review/pull/1856
|
|
17
|
+
[#1860]: https://github.com/kmuto/review/pull/1860
|
|
18
|
+
|
|
1
19
|
# Version 5.5.0
|
|
2
20
|
## 新機能
|
|
3
21
|
* 節や項を参照するインライン命令として、 `@<secref>` , `@<sec>` , `@<sectitle>` を追加しました。`@<secref>` は節や項の番号+タイトルを含むテキスト( `@<hd>` と同じ)、 `@<sec>` は節や項の番号のみ、`@<sectitle>` はタイトルのみに展開されます ([#1809])
|
data/NEWS.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
# Version 5.6.0
|
|
2
|
+
## New Features
|
|
3
|
+
* IDGXMLBuilder: support `imgmath` math_format in `//texequation` and `@<m>` ([#1829])
|
|
4
|
+
* LATEXBuilder: use `reviewicon` macro instead of `reviewincludegraphics` in `@<icon>` ([#1838])
|
|
5
|
+
* trim spaces before/after characters in ruby text ([#1839])
|
|
6
|
+
|
|
7
|
+
## Breaking Changes
|
|
8
|
+
* LATEXBuilder: use `MEMO`, `NOTICE`, `CAUTION` or other headers instead of `■メモ`. If you want to use older headers, add `■メモ` in `locale.yml`. ([#1856])
|
|
9
|
+
|
|
10
|
+
## Others
|
|
11
|
+
* update documents `format.md` and `format.ja.md` ([#1860])
|
|
12
|
+
|
|
13
|
+
[#1829]: https://github.com/kmuto/review/pull/1829
|
|
14
|
+
[#1838]: https://github.com/kmuto/review/pull/1838
|
|
15
|
+
[#1839]: https://github.com/kmuto/review/pull/1839
|
|
16
|
+
[#1856]: https://github.com/kmuto/review/pull/1856
|
|
17
|
+
[#1860]: https://github.com/kmuto/review/pull/1860
|
|
18
|
+
|
|
1
19
|
# Version 5.5.0
|
|
2
20
|
## New Features
|
|
3
21
|
* introduced `@<secref>`, `@<sec>`, and `@<sectitle>` as inline op to refer sections ([#1809])
|
data/doc/format.ja.md
CHANGED
|
@@ -96,7 +96,7 @@ Re:VIEW フォーマットの文法について解説します。Re:VIEW フォ
|
|
|
96
96
|
|
|
97
97
|
## 番号付き箇条書き
|
|
98
98
|
|
|
99
|
-
番号付きの箇条書き(HTML で言う ol)は「` 1. 〜`」「` 2. 〜`」「` 3.
|
|
99
|
+
番号付きの箇条書き(HTML で言う ol)は「` 1. 〜`」「` 2. 〜`」「` 3. 〜`」のように示します。`1-1` のようなネスト出力は標準では提供していません( `//beginchild` 〜 `//endchild` を使った入れ子の表現は可能です)。
|
|
100
100
|
|
|
101
101
|
例:
|
|
102
102
|
|
|
@@ -108,6 +108,23 @@ Re:VIEW フォーマットの文法について解説します。Re:VIEW フォ
|
|
|
108
108
|
|
|
109
109
|
番号付き箇条書きも、ただの箇条書きと同様、行頭に1つ以上の空白が必要です。
|
|
110
110
|
|
|
111
|
+
数字が実際にそのとおり出るかは、出力を行うソフトウェアに依存します。
|
|
112
|
+
|
|
113
|
+
- HTML (EPUB), TeX: 記入の数字にかかわらず1から始まる番号になります。
|
|
114
|
+
- IDGXML, テキスト: 記入したとおりの番号が出力されます。よって、すべて「1.」にするといった形にしてしまうとおかしな結果になります。
|
|
115
|
+
|
|
116
|
+
HTML (EPUB) や TeX ビルダにおいて最初の番号を 1 ではないものにしたいときには、`//olnum[番号]` を指定します。なお、番号箇条書きの途中の番号を変えることはできません。
|
|
117
|
+
|
|
118
|
+
例:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
//olnum[10]
|
|
122
|
+
|
|
123
|
+
1. この箇条書きの番号は出力ソフトウェア上では10になる
|
|
124
|
+
2. これは11になる
|
|
125
|
+
6. 記入上で飛ばしても連続数で12となる
|
|
126
|
+
```
|
|
127
|
+
|
|
111
128
|
## 用語リスト
|
|
112
129
|
|
|
113
130
|
用語リスト(HTML で言う dl)は空白→「:」→空白、で始まる行を使って示します。
|
|
@@ -186,7 +203,7 @@ Re:VIEW フォーマットの文法について解説します。Re:VIEW フォ
|
|
|
186
203
|
|
|
187
204
|
## ソースコードなどのリスト
|
|
188
205
|
|
|
189
|
-
|
|
206
|
+
ソースコードなどのリストには `//list` を使います。連番を付けたくない場合は先頭に `em`(embedded の略)、行番号を付ける場合は末尾に `num` を付加します。まとめると、以下の4種類になります。
|
|
190
207
|
|
|
191
208
|
* `//list[識別子][キャプション][言語指定]{ 〜 //}`
|
|
192
209
|
* 通常のリスト。言語指定は省略できます。
|
|
@@ -471,7 +488,7 @@ complexmatrixという識別子に基づく画像ファイルが貼り込まれ
|
|
|
471
488
|
//}
|
|
472
489
|
```
|
|
473
490
|
|
|
474
|
-
##
|
|
491
|
+
## 引用・中央揃え・右揃え
|
|
475
492
|
|
|
476
493
|
引用は「`//quote{ 〜 //}`」を使って記述します。
|
|
477
494
|
|
|
@@ -485,6 +502,24 @@ complexmatrixという識別子に基づく画像ファイルが貼り込まれ
|
|
|
485
502
|
|
|
486
503
|
複数の段落を入れる場合は、空行で区切ります。
|
|
487
504
|
|
|
505
|
+
中央揃えの段落を表現するには、「`//centering{ 〜 //}`」を使います。同様に右寄せにするには「`//flushright{ 〜 //}`」を使います。複数の段落を入れる場合は、空行で区切ります。
|
|
506
|
+
|
|
507
|
+
例:
|
|
508
|
+
|
|
509
|
+
```
|
|
510
|
+
//centering{
|
|
511
|
+
これは
|
|
512
|
+
|
|
513
|
+
中央合わせ
|
|
514
|
+
//}
|
|
515
|
+
|
|
516
|
+
//flushright{
|
|
517
|
+
これは
|
|
518
|
+
|
|
519
|
+
右寄せ合わせ
|
|
520
|
+
//}
|
|
521
|
+
```
|
|
522
|
+
|
|
488
523
|
## 囲み記事
|
|
489
524
|
|
|
490
525
|
技術書でよくある、コラムにするほどではないけれども本文から独立したちょっとした記事を入れるために、以下の命令があります。
|
|
@@ -634,7 +669,7 @@ LaTeX の式を挿入するには、`//texequation{ 〜 //}` を使います。
|
|
|
634
669
|
|
|
635
670
|
参照するにはインライン命令 `@<eq>` を使います(たとえば `@<eq>{emc}`)。
|
|
636
671
|
|
|
637
|
-
インライン命令では `@<m>{〜}` を使います。インライン命令の式中に「}」を含む場合、`\}` とエスケープする必要があることに注意してください(`{`
|
|
672
|
+
インライン命令では `@<m>{〜}` を使います。インライン命令の式中に「}」を含む場合、`\}` とエスケープする必要があることに注意してください(`{` はエスケープ不要)。長い式を書くときにはフェンス記法(`@<m>$〜$` または `@<m>|〜|`)を使うと、エスケープが不要になり、記述が楽になります。「インライン命令のフェンス記法」を参照してください。
|
|
638
673
|
|
|
639
674
|
LaTeX の数式が正常に整形されるかどうかは処理系に依存します。LaTeX を利用する PDFMaker では問題なく利用できます。
|
|
640
675
|
|
|
@@ -889,32 +924,7 @@ Lesser General Public License, ★"i"nternationalizatio"n"☆
|
|
|
889
924
|
|
|
890
925
|
## 生データ行
|
|
891
926
|
|
|
892
|
-
Re:VIEW のタグ範囲を超えて何か特別な行を挿入したい場合、`//raw`
|
|
893
|
-
|
|
894
|
-
### `//raw`行
|
|
895
|
-
|
|
896
|
-
例:
|
|
897
|
-
|
|
898
|
-
```
|
|
899
|
-
//raw[|html|<div class="special">\nここは特別な行です。\n</div>]
|
|
900
|
-
```
|
|
901
|
-
|
|
902
|
-
ブロック命令は1つだけオプションをとり、「|ビルダ名|そのまま出力させる内容」という書式です。`\n`は改行文字に変換されます。
|
|
903
|
-
|
|
904
|
-
ビルダ名には「`html`」「`latex`」「`idgxml`」「`markdown`」「`top`」のいずれかが入ります。ビルダ名は「,」で区切って複数指定することも可能です。該当のビルダを使用しているときのみ、内容が出力されます。
|
|
905
|
-
|
|
906
|
-
例:
|
|
907
|
-
|
|
908
|
-
```
|
|
909
|
-
(HTMLビルダの場合:)
|
|
910
|
-
<div class="special">
|
|
911
|
-
ここは特別な行です。
|
|
912
|
-
</div>
|
|
913
|
-
|
|
914
|
-
(ほかのビルダの場合は単に無視されて何も出力されない)
|
|
915
|
-
```
|
|
916
|
-
|
|
917
|
-
インライン命令は、`@<raw>{|ビルダ名|〜}` という書式で、記述はブロック命令に同じです。
|
|
927
|
+
Re:VIEW のタグ範囲を超えて何か特別な行を挿入したい場合、`//embed`ブロック命令や `@<embed>` インライン命令を使います。ほかに従来の `//raw` ブロック命令および `@<raw>` インライン命令もありますが、IDGXML ビルダ以外での使用は推奨しません。
|
|
918
928
|
|
|
919
929
|
### `//embed`ブロック
|
|
920
930
|
|
|
@@ -963,13 +973,38 @@ LaTeXビルダを使用している場合:
|
|
|
963
973
|
|
|
964
974
|
```
|
|
965
975
|
|
|
976
|
+
### `//raw`行(IDGXML ビルダ以外では非推奨)
|
|
977
|
+
|
|
978
|
+
例:
|
|
979
|
+
|
|
980
|
+
```
|
|
981
|
+
//raw[|html|<div class="special">\nここは特別な行です。\n</div>]
|
|
982
|
+
```
|
|
983
|
+
|
|
984
|
+
ブロック命令は1つだけオプションをとり、「|ビルダ名|そのまま出力させる内容」という書式です。`\n`は改行文字に変換されます。
|
|
985
|
+
|
|
986
|
+
ビルダ名には「`html`」「`latex`」「`idgxml`」「`markdown`」「`top`」のいずれかが入ります。ビルダ名は「,」で区切って複数指定することも可能です。該当のビルダを使用しているときのみ、内容が出力されます。
|
|
987
|
+
|
|
988
|
+
例:
|
|
989
|
+
|
|
990
|
+
```
|
|
991
|
+
(HTMLビルダの場合:)
|
|
992
|
+
<div class="special">
|
|
993
|
+
ここは特別な行です。
|
|
994
|
+
</div>
|
|
995
|
+
|
|
996
|
+
(ほかのビルダの場合は単に無視されて何も出力されない)
|
|
997
|
+
```
|
|
998
|
+
|
|
999
|
+
インライン命令は、`@<raw>{|ビルダ名|〜}` という書式で、記述はブロック命令に同じです。
|
|
1000
|
+
|
|
966
1001
|
`//raw`、`//embed`、`@<raw>` および `@<embed>` は、HTML、XML や TeX の文書構造を容易に壊す可能性があります。使用には十分に注意してください。
|
|
967
1002
|
|
|
968
1003
|
### 入れ子の箇条書き
|
|
969
1004
|
|
|
970
1005
|
Re:VIEW の箇条書きは `*` 型の箇条書きを除き、基本的に入れ子を表現できません。いずれの箇条書きも、別の箇条書き、あるいは図表・リストを箇条書きの途中に配置することを許容していません。
|
|
971
1006
|
|
|
972
|
-
この対策として、Re:VIEW 4.2
|
|
1007
|
+
この対策として、Re:VIEW 4.2 以降では `//beginchild`、`//endchild` というブロック命令があります。箇条書きの途中に何かを含めたいときには、それを `//beginchild` 〜 `//endchild` で囲んで配置します。多重に入れ子にすることも可能です。
|
|
973
1008
|
|
|
974
1009
|
```
|
|
975
1010
|
* UL1
|
|
@@ -1054,6 +1089,8 @@ UL1-OL1-PARAGRAPH
|
|
|
1054
1089
|
* `@<tcy>{〜}` : 縦書きの文書において文字を縦中横にします。
|
|
1055
1090
|
* `@<ins>{〜}` : 挿入箇所を明示します(デフォルトでは下線が引かれます)。
|
|
1056
1091
|
* `@<del>{〜}` : 削除箇所を明示します(デフォルトでは打ち消し線が引かれます)。
|
|
1092
|
+
* `@<sup>{〜}` : 上付き文字にします。
|
|
1093
|
+
* `@<sub>{〜}` : 下付き文字にします。
|
|
1057
1094
|
|
|
1058
1095
|
### 参照
|
|
1059
1096
|
* `@<chap>{章ファイル名}` : 「第17章」のような、章番号を含むテキストに置換されます。
|
|
@@ -1067,7 +1104,7 @@ UL1-OL1-PARAGRAPH
|
|
|
1067
1104
|
* `@<column>{ラベルまたは見出し}` : コラムを参照します。
|
|
1068
1105
|
|
|
1069
1106
|
### その他
|
|
1070
|
-
* `@<ruby>{
|
|
1107
|
+
* `@<ruby>{親文字,ルビ}` : ルビを振ります。たとえば `@<ruby>{愕然,がくぜん}` のように表記します。
|
|
1071
1108
|
* `@<br>{}` : 段落途中で改行します。濫用は避けたいところですが、表のセル内や箇条書き内などで必要になることもあります。
|
|
1072
1109
|
* `@<uchar>{番号}` : Unicode文字を出力します。引数は16進数で指定します。
|
|
1073
1110
|
* `@<href>{URL}`, `@<href>{URL, 文字表現}` : ハイパーリンクを作成します(後述)。
|
|
@@ -1075,8 +1112,8 @@ UL1-OL1-PARAGRAPH
|
|
|
1075
1112
|
* `@<m>{数式}` : インラインの数式を出力します。
|
|
1076
1113
|
* `@<w>{キー}` : キー文字列に対応する、単語ファイル内の値文字列を展開します。
|
|
1077
1114
|
* `@<wb>{キー}` : キー文字列に対応する、単語ファイル内の値文字列を展開し、太字にします。
|
|
1078
|
-
* `@<raw>{|ビルダ|〜}` : 生の文字列を出力します。`\}`は`}`に、`\\`は`\`に、`\n`は改行に置き換えられます。
|
|
1079
1115
|
* `@<embed>{|ビルダ|〜}` : 生の文字列を埋め込みます。`\}`は`}`に、`\\`は`\`に置き換えられます(`\n`はそのままです)。
|
|
1116
|
+
* `@<raw>{|ビルダ|〜}` : 生の文字列を出力します。`\}`は`}`に、`\\`は`\`に、`\n`は改行に置き換えられます(非推奨)。
|
|
1080
1117
|
* `@<idx>{文字列}` : 文字列を出力するとともに、索引として登録します。索引の使い方については、makeindex.ja.md を参照してください。
|
|
1081
1118
|
* `@<hidx>{文字列}` : 索引として登録します (idx と異なり、紙面内に出力はしません)。`親索引文字列<<>>子索引文字列` のように親子関係にある索引も定義できます。
|
|
1082
1119
|
* `@<balloon>{〜}` : コードブロック (emlist など) 内などでのいわゆる吹き出しを作成します。たとえば「`@<balloon>{ABC}`」とすると、「`←ABC`」となります。デフォルトの挙動および表現は簡素なので、より装飾されたものにするにはスタイルシートを改変するか、`review-ext.rb` を使って挙動を書き換える必要があります。
|
data/doc/format.md
CHANGED
|
@@ -4,7 +4,7 @@ The document is a brief guide for Re:VIEW markup syntax.
|
|
|
4
4
|
|
|
5
5
|
Re:VIEW is based on EWB of ASCII (now KADOKAWA), influenced RD and other Wiki system's syntax.
|
|
6
6
|
|
|
7
|
-
This document explains about the format of Re:VIEW 5.
|
|
7
|
+
This document explains about the format of Re:VIEW 5.5.
|
|
8
8
|
|
|
9
9
|
## Paragraph
|
|
10
10
|
|
|
@@ -112,7 +112,7 @@ You should add emply lines between Paragraphs and Itemize (same as Ordered and N
|
|
|
112
112
|
## Ordered Itemize
|
|
113
113
|
|
|
114
114
|
Ordered itemize (ol in HTML) uses ` 1. ...`, ` 2. ...`, ` 3. ...`.
|
|
115
|
-
|
|
115
|
+
Nesting output like `1-1` is not supported by default (nesting can be expressed using `//beginchild` - `//endchild`).
|
|
116
116
|
|
|
117
117
|
Usage:
|
|
118
118
|
|
|
@@ -122,15 +122,24 @@ Usage:
|
|
|
122
122
|
3. 3rd condition
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
You must write one more space character at line head like itemize.
|
|
126
|
+
|
|
127
|
+
Whether the numbers appear as described depends on the software that produces the output.
|
|
128
|
+
|
|
129
|
+
* HTML (EPUB), TeX: The number will start from 1 regardless of the number entered.
|
|
130
|
+
* IDGXML, text: The numbers will be output as described. Therefore, writing all numbers as "1." will produce strange results.
|
|
131
|
+
|
|
132
|
+
In HTML (EPUB) and TeX builders, use `//olnum[number]` to change the first number. Note that the intermediate numbers cannot be changed.
|
|
133
|
+
|
|
134
|
+
Usage:
|
|
126
135
|
|
|
127
136
|
```
|
|
128
|
-
|
|
129
|
-
1. 2nd condition
|
|
130
|
-
1. 3rd condition
|
|
131
|
-
```
|
|
137
|
+
//olnum[10]
|
|
132
138
|
|
|
133
|
-
|
|
139
|
+
1. This number will be 10
|
|
140
|
+
2. This number will be 11
|
|
141
|
+
6. 12 in continuity, not 6 or 15.
|
|
142
|
+
```
|
|
134
143
|
|
|
135
144
|
## Definition List
|
|
136
145
|
|
|
@@ -512,6 +521,26 @@ Seeing is believing.
|
|
|
512
521
|
|
|
513
522
|
You can use inline markup in quotations.
|
|
514
523
|
|
|
524
|
+
Center-aligned paragraphs are represented by `//centering{ ~ //}` and right-aligned paragraphs by `//flushright{ ~ //}`.
|
|
525
|
+
|
|
526
|
+
To include multiple paragraphs, separate them with a blank line.
|
|
527
|
+
|
|
528
|
+
Usage:
|
|
529
|
+
|
|
530
|
+
```
|
|
531
|
+
//centering{
|
|
532
|
+
This is
|
|
533
|
+
|
|
534
|
+
center aligned.
|
|
535
|
+
//}
|
|
536
|
+
|
|
537
|
+
//flushright{
|
|
538
|
+
This is
|
|
539
|
+
|
|
540
|
+
right aligned.
|
|
541
|
+
//}
|
|
542
|
+
```
|
|
543
|
+
|
|
515
544
|
## Short column
|
|
516
545
|
|
|
517
546
|
Some block commands are used for short column.
|
|
@@ -670,7 +699,7 @@ If you'd like to assign a number like 'Equation 1.1`, specify the identifier and
|
|
|
670
699
|
|
|
671
700
|
To reference this, use the inline command `@<eq>`.
|
|
672
701
|
|
|
673
|
-
There is `@<m>{ ... }` for inline (see "Fence notation for inline commands" section also).
|
|
702
|
+
There is `@<m>{ ... }` for inline. When writing long expressions, it is convenient to use fence notation (`@<m>$~$` or `@<m>|~|`) to avoid escaping. (see "Fence notation for inline commands" section also).
|
|
674
703
|
|
|
675
704
|
Whether LaTeX formula is correctly displayed or not depends on the processing system. PDFMaker uses LaTeX internally, so there is no problem.
|
|
676
705
|
|
|
@@ -943,20 +972,27 @@ Usage:
|
|
|
943
972
|
|
|
944
973
|
## Raw Data Block
|
|
945
974
|
|
|
946
|
-
When you want to write non-Re:VIEW line, use `//
|
|
975
|
+
When you want to write non-Re:VIEW line, use `//embed` or `@<embed>`.
|
|
947
976
|
|
|
948
|
-
### `//
|
|
977
|
+
### `//embed` block
|
|
949
978
|
|
|
950
979
|
Usage:
|
|
951
980
|
|
|
952
981
|
```
|
|
953
|
-
//
|
|
982
|
+
//embed{
|
|
983
|
+
<div class="special">
|
|
984
|
+
this is a special line.
|
|
985
|
+
</div>
|
|
986
|
+
//}
|
|
987
|
+
|
|
988
|
+
//embed[html,markdown]{
|
|
989
|
+
<div class="special">
|
|
990
|
+
this is a special line.
|
|
991
|
+
</div>
|
|
992
|
+
//}
|
|
954
993
|
```
|
|
955
994
|
|
|
956
|
-
In above line, `html` is a builder name that handle raw data.
|
|
957
|
-
You can use `html`, `latex`, `idgxml` and `top` as builder name.
|
|
958
|
-
You can specify multiple builder names with separator `,`.
|
|
959
|
-
`\n` is translated into newline(U+000A).
|
|
995
|
+
In above line, `html` and `markdown` is a builder name that handle raw data.
|
|
960
996
|
|
|
961
997
|
Output:
|
|
962
998
|
|
|
@@ -970,27 +1006,22 @@ this is a special line.
|
|
|
970
1006
|
|
|
971
1007
|
(In other formats, it is just ignored.)
|
|
972
1008
|
|
|
973
|
-
|
|
1009
|
+
For inline, use `@<embed>{|builder|raw string}`.
|
|
974
1010
|
|
|
975
|
-
### `//
|
|
1011
|
+
### `//raw` block
|
|
1012
|
+
|
|
1013
|
+
`//raw` and `@<raw>` is an old notation and should no longer be used (use it only if you want to avoid line breaks in IDGXML builder).
|
|
976
1014
|
|
|
977
1015
|
Usage:
|
|
978
1016
|
|
|
979
1017
|
```
|
|
980
|
-
//
|
|
981
|
-
<div class="special">
|
|
982
|
-
this is a special line.
|
|
983
|
-
</div>
|
|
984
|
-
//}
|
|
985
|
-
|
|
986
|
-
//embed[html,markdown]{
|
|
987
|
-
<div class="special">
|
|
988
|
-
this is a special line.
|
|
989
|
-
</div>
|
|
990
|
-
//}
|
|
1018
|
+
//raw[|html|<div class="special">\nthis is a special line.\n</div>]
|
|
991
1019
|
```
|
|
992
1020
|
|
|
993
|
-
In above line, `html`
|
|
1021
|
+
In above line, `html` is a builder name that handle raw data.
|
|
1022
|
+
You can use `html`, `latex`, `idgxml` and `top` as builder name.
|
|
1023
|
+
You can specify multiple builder names with separator `,`.
|
|
1024
|
+
`\n` is translated into newline(U+000A).
|
|
994
1025
|
|
|
995
1026
|
Output:
|
|
996
1027
|
|
|
@@ -1004,11 +1035,13 @@ this is a special line.
|
|
|
1004
1035
|
|
|
1005
1036
|
(In other formats, it is just ignored.)
|
|
1006
1037
|
|
|
1038
|
+
Note: `//embed`, `@<embed>`, `//raw` and `@<raw>` may break structured document easily.
|
|
1039
|
+
|
|
1007
1040
|
### Nested itemize block
|
|
1008
1041
|
|
|
1009
1042
|
Re:VIEW itemize blocks basically cannot express nested items. Also, none of itemize blocks allow to contain another itemize block or paragraph/image/table/list.
|
|
1010
1043
|
|
|
1011
|
-
As a workaround, Re:VIEW
|
|
1044
|
+
As a workaround, Re:VIEW provides `//beginchild` and `//endchild` since Re:VIEW 4.2. If you want to include something in an itemize block, enclose it with `//beginchild` and `//endchild`. It is also possible to create a multiple nest.
|
|
1012
1045
|
|
|
1013
1046
|
```
|
|
1014
1047
|
* UL1
|
|
@@ -1091,9 +1124,11 @@ Output:
|
|
|
1091
1124
|
@<tti>{FooClass}:: teletype (monospaced font) and italic
|
|
1092
1125
|
@<ttb>{BarClass}:: teletype (monospaced font) and bold
|
|
1093
1126
|
@<code>{a.foo(bar)}:: teletype (monospaced font) for fragments of code
|
|
1094
|
-
@<tcy>{}:: short horizontal text in vertical text
|
|
1127
|
+
@<tcy>{text}:: short horizontal text in vertical text
|
|
1095
1128
|
@<ins>{sentence}:: inserted part (underline)
|
|
1096
1129
|
@<del>{sentence}:: deleted part (strike through)
|
|
1130
|
+
@<sup>{text}:: superscript
|
|
1131
|
+
@<sub>{text}:: subscript
|
|
1097
1132
|
```
|
|
1098
1133
|
|
|
1099
1134
|
### References
|
|
@@ -1113,7 +1148,7 @@ Output:
|
|
|
1113
1148
|
### Other inline commands
|
|
1114
1149
|
|
|
1115
1150
|
```
|
|
1116
|
-
@<ruby>{Matsumoto,
|
|
1151
|
+
@<ruby>{Matsumoto,Matz}:: ruby markups
|
|
1117
1152
|
@<br>{}:: linebreak in paragraph
|
|
1118
1153
|
@<uchar>{2460}:: Unicode code point
|
|
1119
1154
|
@<href>{http://www.google.com/, google}:: hyper link(URL)
|
|
@@ -1121,8 +1156,8 @@ Output:
|
|
|
1121
1156
|
@<m>{a + \alpha}:: TeX inline equation
|
|
1122
1157
|
@<w>{key}:: expand the value corresponding to the key.
|
|
1123
1158
|
@<wb>{key}:: expand the value corresponding to the key with bold style.
|
|
1124
|
-
@<raw>{|html|<span>ABC</span>}:: inline raw data inline. `\}` is `}`, `\\` is `\`, and `\n` is newline.
|
|
1125
1159
|
@<embed>{|html|<span>ABC</span>}:: inline raw data inline. `\}` is `}` and `\\` is `\`.
|
|
1160
|
+
@<raw>{|html|<span>ABC</span>}:: inline raw data inline. `\}` is `}`, `\\` is `\`, and `\n` is newline. (deprecated)
|
|
1126
1161
|
@<idx>{string}:: output a string and register it as an index. See makeindex.md.
|
|
1127
1162
|
@<hidx>{string}:: register a string as an index. A leveled index is expressed like `parent<<>>child`
|
|
1128
1163
|
@<balloon>{abc}:: inline balloon in code block. For example, `@<balloon>{ABC}` produces `←ABC`. This may seem too simple. To decorate it, modify the style sheet file or override a function by `review-ext.rb`
|
data/doc/quickstart.ja.md
CHANGED
|
@@ -67,7 +67,13 @@ review-init コマンドを使って、雛型となるプロジェクトフォ
|
|
|
67
67
|
$ review-init プロジェクト名
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
TeX を利用した PDF 作成を目的としているならば、雛型の作成時に、Web
|
|
70
|
+
TeX を利用した PDF 作成を目的としているならば、雛型の作成時に、Web ブラウザによるウィザードモードで基本版面設計を行うことができます。外部 gem の webrick が必要なので、インストールしておいてください。
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
$ gem install webrick
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
ウィザードモードで起動するため、review-init コマンドに `-w` オプションを付けます。
|
|
71
77
|
|
|
72
78
|
```
|
|
73
79
|
$ review-init -w プロジェクト名
|
data/doc/quickstart.md
CHANGED
|
@@ -72,7 +72,13 @@ $ ls hello
|
|
|
72
72
|
Rakefile catalog.yml config.yml hello.re images/ layouts/ sty/ style.css
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
If your purpose is to create a PDF using TeX, it is a good idea to use the wizard mode for basic layouting in a web browser.
|
|
75
|
+
If your purpose is to create a PDF using TeX, it is a good idea to use the wizard mode for basic layouting in a web browser. Because the wizard mode requires webrick library, please install webrick gem before running.
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
$ gem install webrick
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Run review-init with `-w` option.
|
|
76
82
|
|
|
77
83
|
(notice: currently wizard UI supports only Japanese language)
|
|
78
84
|
|
data/lib/review/builder.rb
CHANGED
|
@@ -401,10 +401,10 @@ module ReVIEW
|
|
|
401
401
|
def inline_ruby(arg)
|
|
402
402
|
base, *ruby = *arg.scan(/(?:(?:(?:\\\\)*\\,)|[^,\\]+)+/)
|
|
403
403
|
if base
|
|
404
|
-
base = base.gsub(/\\,/, ',')
|
|
404
|
+
base = base.gsub(/\\,/, ',').strip
|
|
405
405
|
end
|
|
406
406
|
if ruby
|
|
407
|
-
ruby = ruby.join(',').gsub(/\\,/, ',')
|
|
407
|
+
ruby = ruby.join(',').gsub(/\\,/, ',').strip
|
|
408
408
|
end
|
|
409
409
|
compile_ruby(base, ruby)
|
|
410
410
|
end
|
data/lib/review/i18n.yml
CHANGED
|
@@ -17,7 +17,14 @@ ja:
|
|
|
17
17
|
hd_quote_without_number: "「%s」"
|
|
18
18
|
appendix: 付録%pA
|
|
19
19
|
numberless_image: "図:"
|
|
20
|
-
|
|
20
|
+
note_head: NOTE
|
|
21
|
+
tip_head: TIP
|
|
22
|
+
info_head: INFORMATION
|
|
23
|
+
warning_head: WARNING
|
|
24
|
+
important_head: IMPORTANT
|
|
25
|
+
caution_head: CAUTION
|
|
26
|
+
notice_head: NOTICE
|
|
27
|
+
memo_head: MEMO
|
|
21
28
|
format_number: "%s.%d"
|
|
22
29
|
format_number_header: "%s.%d:"
|
|
23
30
|
format_number_without_chapter: "%d"
|
|
@@ -107,7 +114,14 @@ en:
|
|
|
107
114
|
hd_quote_without_number: '"%s"'
|
|
108
115
|
appendix: Appendix %s
|
|
109
116
|
numberless_image: "Figure:"
|
|
110
|
-
|
|
117
|
+
note_head: NOTE
|
|
118
|
+
tip_head: TIP
|
|
119
|
+
info_head: INFORMATION
|
|
120
|
+
warning_head: WARNING
|
|
121
|
+
important_head: IMPORTANT
|
|
122
|
+
caution_head: CAUTION
|
|
123
|
+
notice_head: NOTICE
|
|
124
|
+
memo_head: MEMO
|
|
111
125
|
format_number: "%s.%d"
|
|
112
126
|
format_number_header: "%s.%d:"
|
|
113
127
|
format_number_without_chapter: "%d"
|
|
@@ -178,6 +192,14 @@ zh-TW:
|
|
|
178
192
|
hd_quote_without_number: "「%s」"
|
|
179
193
|
appendix: 附錄%s
|
|
180
194
|
numberless_image: "圖:"
|
|
195
|
+
note_head: NOTE
|
|
196
|
+
tip_head: TIP
|
|
197
|
+
info_head: INFORMATION
|
|
198
|
+
warning_head: WARNING
|
|
199
|
+
important_head: IMPORTANT
|
|
200
|
+
caution_head: CAUTION
|
|
201
|
+
notice_head: NOTICE
|
|
202
|
+
memo_head: MEMO
|
|
181
203
|
format_number: "%s.%d"
|
|
182
204
|
format_number_header: "%s.%d:"
|
|
183
205
|
format_number_without_chapter: "%d"
|
data/lib/review/idgxmlbuilder.rb
CHANGED
|
@@ -465,11 +465,22 @@ module ReVIEW
|
|
|
465
465
|
puts caption_str if caption_top?('equation')
|
|
466
466
|
end
|
|
467
467
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
468
|
+
if @book.config['math_format'] == 'imgmath'
|
|
469
|
+
fontsize = @book.config['imgmath_options']['fontsize'].to_f
|
|
470
|
+
lineheight = @book.config['imgmath_options']['lineheight'].to_f
|
|
471
|
+
math_str = "\\begin{equation*}\n\\fontsize{#{fontsize}}{#{lineheight}}\\selectfont\n#{lines.join("\n")}\n\\end{equation*}\n"
|
|
472
|
+
key = Digest::SHA256.hexdigest(math_str)
|
|
473
|
+
img_path = @img_math.defer_math_image(math_str, key)
|
|
474
|
+
puts '<equationimage>'
|
|
475
|
+
puts %Q(<Image href="file://#{img_path}" />)
|
|
476
|
+
puts '</equationimage>'
|
|
477
|
+
else
|
|
478
|
+
puts %Q(<replace idref="texblock-#{@texblockequation}">)
|
|
479
|
+
puts '<pre>'
|
|
480
|
+
puts lines.join("\n")
|
|
481
|
+
puts '</pre>'
|
|
482
|
+
puts '</replace>'
|
|
483
|
+
end
|
|
473
484
|
|
|
474
485
|
if id
|
|
475
486
|
puts caption_str unless caption_top?('equation')
|
|
@@ -681,7 +692,7 @@ module ReVIEW
|
|
|
681
692
|
end
|
|
682
693
|
|
|
683
694
|
def compile_ruby(base, ruby)
|
|
684
|
-
%Q(<GroupRuby><aid:ruby xmlns:aid="http://ns.adobe.com/AdobeInDesign/3.0/"><aid:rb>#{escape(base
|
|
695
|
+
%Q(<GroupRuby><aid:ruby xmlns:aid="http://ns.adobe.com/AdobeInDesign/3.0/"><aid:rb>#{escape(base)}</aid:rb><aid:rt>#{escape(ruby)}</aid:rt></aid:ruby></GroupRuby>)
|
|
685
696
|
end
|
|
686
697
|
|
|
687
698
|
def compile_kw(word, alt)
|
|
@@ -835,7 +846,14 @@ module ReVIEW
|
|
|
835
846
|
|
|
836
847
|
def inline_m(str)
|
|
837
848
|
@texinlineequation += 1
|
|
838
|
-
|
|
849
|
+
if @book.config['math_format'] == 'imgmath'
|
|
850
|
+
math_str = '$' + str + '$'
|
|
851
|
+
key = Digest::SHA256.hexdigest(str)
|
|
852
|
+
img_path = @img_math.defer_math_image(math_str, key)
|
|
853
|
+
%Q(<inlineequation><Image href="file://#{img_path}" type="inline" /></inlineequation>)
|
|
854
|
+
else
|
|
855
|
+
%Q(<replace idref="texinline-#{@texinlineequation}"><pre>#{escape(str)}</pre></replace>)
|
|
856
|
+
end
|
|
839
857
|
end
|
|
840
858
|
|
|
841
859
|
def noindent
|
data/lib/review/idgxmlmaker.rb
CHANGED
|
@@ -16,6 +16,7 @@ require 'review/yamlloader'
|
|
|
16
16
|
require 'review/idgxmlbuilder'
|
|
17
17
|
require 'review/version'
|
|
18
18
|
require 'review/makerhelper'
|
|
19
|
+
require 'review/img_math'
|
|
19
20
|
require 'review/loggable'
|
|
20
21
|
|
|
21
22
|
module ReVIEW
|
|
@@ -28,6 +29,7 @@ module ReVIEW
|
|
|
28
29
|
def initialize
|
|
29
30
|
@basedir = nil
|
|
30
31
|
@logger = ReVIEW.logger
|
|
32
|
+
@img_math = nil
|
|
31
33
|
@plaintext = nil
|
|
32
34
|
@compile_errors = nil
|
|
33
35
|
end
|
|
@@ -67,6 +69,7 @@ module ReVIEW
|
|
|
67
69
|
end
|
|
68
70
|
|
|
69
71
|
def remove_old_files(path)
|
|
72
|
+
@img_math.cleanup_mathimg
|
|
70
73
|
FileUtils.rm_rf(path)
|
|
71
74
|
end
|
|
72
75
|
|
|
@@ -81,6 +84,9 @@ module ReVIEW
|
|
|
81
84
|
rescue ReVIEW::ConfigError => e
|
|
82
85
|
error! e.message
|
|
83
86
|
end
|
|
87
|
+
|
|
88
|
+
@img_math = ReVIEW::ImgMath.new(@config)
|
|
89
|
+
|
|
84
90
|
I18n.setup(@config['language'])
|
|
85
91
|
begin
|
|
86
92
|
generate_idgxml_files(yamlfile)
|
|
@@ -90,6 +96,10 @@ module ReVIEW
|
|
|
90
96
|
|
|
91
97
|
error! e.message
|
|
92
98
|
end
|
|
99
|
+
|
|
100
|
+
if @config['math_format'] == 'imgmath'
|
|
101
|
+
@img_math.make_math_images
|
|
102
|
+
end
|
|
93
103
|
end
|
|
94
104
|
|
|
95
105
|
def generate_idgxml_files(yamlfile)
|
|
@@ -130,7 +140,7 @@ module ReVIEW
|
|
|
130
140
|
|
|
131
141
|
def build_body(basetmpdir, _yamlfile)
|
|
132
142
|
base_path = Pathname.new(@basedir)
|
|
133
|
-
@converter = ReVIEW::Converter.new(@book, ReVIEW::IDGXMLBuilder.new)
|
|
143
|
+
@converter = ReVIEW::Converter.new(@book, ReVIEW::IDGXMLBuilder.new(img_math: @img_math))
|
|
134
144
|
@book.parts.each do |part|
|
|
135
145
|
if part.name.present?
|
|
136
146
|
if part.file?
|
data/lib/review/init.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright (c) 2018-
|
|
2
|
+
# Copyright (c) 2018-2022 Masanori Kado, Masayoshi Takahashi, Kenshi Muto
|
|
3
3
|
#
|
|
4
4
|
# This program is free software.
|
|
5
5
|
# You can distribute or modify this program under the terms of
|
|
@@ -308,7 +308,12 @@ EOS
|
|
|
308
308
|
end
|
|
309
309
|
|
|
310
310
|
def start_webui
|
|
311
|
-
|
|
311
|
+
begin
|
|
312
|
+
require 'webrick'
|
|
313
|
+
rescue LoadError
|
|
314
|
+
@logger.error 'not found webrick. Please install webrick gem.'
|
|
315
|
+
exit 1
|
|
316
|
+
end
|
|
312
317
|
web_config = {
|
|
313
318
|
BindAddress: @bind,
|
|
314
319
|
Port: @port,
|
data/lib/review/latexbuilder.rb
CHANGED
data/lib/review/version.rb
CHANGED
data/review.gemspec
CHANGED
data/templates/latex/config.erb
CHANGED
|
@@ -34,7 +34,9 @@
|
|
|
34
34
|
\def\review@intn@table{<%= escape(I18n.t('table')) %>}
|
|
35
35
|
\def\review@intn@equation{<%= escape(I18n.t('equation')) %>}
|
|
36
36
|
\def\review@intn@columnname{<%= escape(I18n.t('columnname')) %>}
|
|
37
|
-
|
|
37
|
+
<%- %w[note tip info warning important caution notice memo].each do |mini| -%>
|
|
38
|
+
\def\review@intn@<%= mini%>head{<%= escape(I18n.t("#{mini}_head")) %>}
|
|
39
|
+
<%- end -%>
|
|
38
40
|
\def\review@intn@edition{<%= escape(I18n.t('edition')) %>}
|
|
39
41
|
\def\review@intn@publishedby{<%= escape(I18n.t('published_by', @config.names_of('pbl').join(I18n.t('names_splitter'))))%>}
|
|
40
42
|
\def\review@intn@captionprefix{<%= escape(I18n.t('caption_prefix')) %>}
|
|
@@ -127,6 +129,9 @@
|
|
|
127
129
|
\ifdefined\reviewtcy\else% for 5.3.0 compatibility
|
|
128
130
|
\DeclareRobustCommand{\reviewtcy}[1]{\rensuji{##1}}
|
|
129
131
|
\fi
|
|
132
|
+
\ifdefined\reviewicon\else% for 5.6.0 compatibility
|
|
133
|
+
\DeclareRobustCommand{\reviewicon}[1]{\reviewincludegraphics{##1}}
|
|
134
|
+
\fi
|
|
130
135
|
}
|
|
131
136
|
|
|
132
137
|
\makeatother
|
|
@@ -146,35 +146,35 @@
|
|
|
146
146
|
|
|
147
147
|
% 囲み記事
|
|
148
148
|
\newenvironment{reviewnote}[1][]{%
|
|
149
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries
|
|
149
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries \review@intn@notehead\hspace{0.75\zw}#1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
|
|
150
150
|
{\end{tcolorbox}}
|
|
151
151
|
|
|
152
152
|
\newenvironment{reviewmemo}[1][]{%
|
|
153
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries
|
|
153
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries \review@intn@memohead\hspace{0.75\zw}#1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
|
|
154
154
|
{\end{tcolorbox}}
|
|
155
155
|
|
|
156
156
|
\newenvironment{reviewtip}[1][]{%
|
|
157
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries
|
|
157
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries \review@intn@tiphead\hspace{0.75\zw}#1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
|
|
158
158
|
{\end{tcolorbox}}
|
|
159
159
|
|
|
160
160
|
\newenvironment{reviewinfo}[1][]{%
|
|
161
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries
|
|
161
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries \review@intn@infohead\hspace{0.75\zw}#1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
|
|
162
162
|
{\end{tcolorbox}}
|
|
163
163
|
|
|
164
164
|
\newenvironment{reviewwarning}[1][]{%
|
|
165
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries
|
|
165
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries \review@intn@warninghead\hspace{0.75\zw}#1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
|
|
166
166
|
{\end{tcolorbox}}
|
|
167
167
|
|
|
168
168
|
\newenvironment{reviewimportant}[1][]{%
|
|
169
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries
|
|
169
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries \review@intn@importanthead\hspace{0.75\zw}#1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
|
|
170
170
|
{\end{tcolorbox}}
|
|
171
171
|
|
|
172
172
|
\newenvironment{reviewcaution}[1][]{%
|
|
173
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries
|
|
173
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries \review@intn@cautionhead\hspace{0.75\zw}#1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
|
|
174
174
|
{\end{tcolorbox}}
|
|
175
175
|
|
|
176
176
|
\newenvironment{reviewnotice}[1][]{%
|
|
177
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries
|
|
177
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,empty,coltitle=black,title={\sffamily\bfseries \review@intn@noticehead\hspace{0.75\zw}#1},borderline horizontal={0.5mm}{0pt}{black!50}, left=1mm, right=1mm, left skip=6mm]}
|
|
178
178
|
{\end{tcolorbox}}
|
|
179
179
|
|
|
180
180
|
% 書体
|
|
@@ -187,6 +187,9 @@
|
|
|
187
187
|
\DeclareRobustCommand{\reviewit}[1]{\textit{#1}}
|
|
188
188
|
\DeclareRobustCommand{\reviewbold}[1]{\textbf{#1}}
|
|
189
189
|
\DeclareRobustCommand{\reviewtcy}[1]{\tatechuyoko{#1}}
|
|
190
|
+
\DeclareRobustCommand{\reviewicon}[1]{\includegraphics[]{#1}}
|
|
191
|
+
% アイコンの高さを文字の高さに合わせたいときには、以下をreview-custom.styに記述してください:
|
|
192
|
+
% \DeclareRobustCommand{\reviewicon}[1]{\includegraphics[height=0.9\zw]{#1}}
|
|
190
193
|
|
|
191
194
|
% allow break line in tt
|
|
192
195
|
% contributed by @zr_tex8r
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
\ProvidesClass{review-base}[
|
|
1
|
+
\ProvidesClass{review-base}[2022/07/25]
|
|
2
2
|
\RequirePackage{ifthen}
|
|
3
3
|
\@ifundefined{Hy@Info}{% for jsbook.cls
|
|
4
4
|
\RequirePackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true]{hyperref}
|
|
@@ -214,9 +214,9 @@
|
|
|
214
214
|
\renewcommand{\thesection}{\thepart.\@arabic\c@section}%
|
|
215
215
|
}{}
|
|
216
216
|
|
|
217
|
-
\newcommand{\reviewminicolumntitle}[
|
|
217
|
+
\newcommand{\reviewminicolumntitle}[2]{%
|
|
218
218
|
\review@ifempty{#1}{}{%
|
|
219
|
-
{\large
|
|
219
|
+
{\large ■#2: #1}\\}}
|
|
220
220
|
|
|
221
221
|
\renewcommand{\contentsname}{\review@toctitle}
|
|
222
222
|
|
|
@@ -226,35 +226,35 @@
|
|
|
226
226
|
|
|
227
227
|
\newenvironment{reviewnote}[1][]{%
|
|
228
228
|
\begin{reviewminicolumn}
|
|
229
|
-
\
|
|
229
|
+
\reviewminicolumntitle{#1}{\review@intn@notehead}
|
|
230
230
|
}{\end{reviewminicolumn}}
|
|
231
231
|
\newenvironment{reviewmemo}[1][]{%
|
|
232
232
|
\begin{reviewminicolumn}
|
|
233
|
-
\reviewminicolumntitle{#1}
|
|
233
|
+
\reviewminicolumntitle{#1}{\review@intn@memohead}
|
|
234
234
|
}{\end{reviewminicolumn}}
|
|
235
235
|
\newenvironment{reviewtip}[1][]{%
|
|
236
236
|
\begin{reviewminicolumn}
|
|
237
|
-
\reviewminicolumntitle{#1}
|
|
237
|
+
\reviewminicolumntitle{#1}{\review@intn@tiphead}
|
|
238
238
|
}{\end{reviewminicolumn}}
|
|
239
239
|
\newenvironment{reviewinfo}[1][]{%
|
|
240
240
|
\begin{reviewminicolumn}
|
|
241
|
-
\reviewminicolumntitle{#1}
|
|
241
|
+
\reviewminicolumntitle{#1}{\review@intn@infohead}
|
|
242
242
|
}{\end{reviewminicolumn}}
|
|
243
243
|
\newenvironment{reviewwarning}[1][]{%
|
|
244
244
|
\begin{reviewminicolumn}
|
|
245
|
-
\reviewminicolumntitle{#1}
|
|
245
|
+
\reviewminicolumntitle{#1}{\review@intn@warninghead}
|
|
246
246
|
}{\end{reviewminicolumn}}
|
|
247
247
|
\newenvironment{reviewimportant}[1][]{%
|
|
248
248
|
\begin{reviewminicolumn}
|
|
249
|
-
\reviewminicolumntitle{#1}
|
|
249
|
+
\reviewminicolumntitle{#1}{\review@intn@importanthead}
|
|
250
250
|
}{\end{reviewminicolumn}}
|
|
251
251
|
\newenvironment{reviewcaution}[1][]{%
|
|
252
252
|
\begin{reviewminicolumn}
|
|
253
|
-
\reviewminicolumntitle{#1}
|
|
253
|
+
\reviewminicolumntitle{#1}{\review@intn@cautionhead}
|
|
254
254
|
}{\end{reviewminicolumn}}
|
|
255
255
|
\newenvironment{reviewnotice}[1][]{%
|
|
256
256
|
\begin{reviewminicolumn}
|
|
257
|
-
\reviewminicolumntitle{#1}
|
|
257
|
+
\reviewminicolumntitle{#1}{\review@intn@noticehead}
|
|
258
258
|
}{\end{reviewminicolumn}}
|
|
259
259
|
|
|
260
260
|
\DeclareRobustCommand{\reviewkw}[1]{\textbf{\textgt{#1}}}
|
|
@@ -331,6 +331,10 @@
|
|
|
331
331
|
|
|
332
332
|
\DeclareRobustCommand{\reviewinsert}[1]{\Underline{#1}}
|
|
333
333
|
\DeclareRobustCommand{\reviewstrike}[1]{\Midline{#1}}
|
|
334
|
+
\DeclareRobustCommand{\reviewicon}[1]{\includegraphics[]{#1}}
|
|
335
|
+
% アイコンの高さを文字の高さに合わせたいときには、以下をreview-custom.styに記述してください:
|
|
336
|
+
% \DeclareRobustCommand{\reviewicon}[1]{\includegraphics[height=0.9zw]{#1}}
|
|
337
|
+
|
|
334
338
|
%%%% for ulem.sty:
|
|
335
339
|
%%\renewcommand{\reviewstrike}[1]{\sout{#1}}
|
|
336
340
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
\documentclass[dvipdfmx]{review-jsbook}
|
|
2
2
|
\makeatletter
|
|
3
|
-
\def\review@reviewversion{5.
|
|
3
|
+
\def\review@reviewversion{5.6.0}
|
|
4
4
|
\def\review@texcompiler{uplatex}
|
|
5
5
|
\def\review@documentclass{review-jsbook}
|
|
6
6
|
|
|
@@ -22,7 +22,14 @@
|
|
|
22
22
|
\def\review@intn@table{表}
|
|
23
23
|
\def\review@intn@equation{式}
|
|
24
24
|
\def\review@intn@columnname{コラム}
|
|
25
|
-
\def\review@intn@
|
|
25
|
+
\def\review@intn@notehead{NOTE}
|
|
26
|
+
\def\review@intn@tiphead{TIP}
|
|
27
|
+
\def\review@intn@infohead{INFORMATION}
|
|
28
|
+
\def\review@intn@warninghead{WARNING}
|
|
29
|
+
\def\review@intn@importanthead{IMPORTANT}
|
|
30
|
+
\def\review@intn@cautionhead{CAUTION}
|
|
31
|
+
\def\review@intn@noticehead{NOTICE}
|
|
32
|
+
\def\review@intn@memohead{MEMO}
|
|
26
33
|
\def\review@intn@edition{版}
|
|
27
34
|
\def\review@intn@publishedby{ 発行}
|
|
28
35
|
\def\review@intn@captionprefix{ }
|
|
@@ -64,6 +71,9 @@
|
|
|
64
71
|
\ifdefined\reviewtcy\else% for 5.3.0 compatibility
|
|
65
72
|
\DeclareRobustCommand{\reviewtcy}[1]{\rensuji{##1}}
|
|
66
73
|
\fi
|
|
74
|
+
\ifdefined\reviewicon\else% for 5.6.0 compatibility
|
|
75
|
+
\DeclareRobustCommand{\reviewicon}[1]{\reviewincludegraphics{##1}}
|
|
76
|
+
\fi
|
|
67
77
|
}
|
|
68
78
|
|
|
69
79
|
\makeatother
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
\documentclass[dvipdfmx]{review-jsbook}
|
|
2
2
|
\makeatletter
|
|
3
|
-
\def\review@reviewversion{5.
|
|
3
|
+
\def\review@reviewversion{5.6.0}
|
|
4
4
|
\def\review@texcompiler{uplatex}
|
|
5
5
|
\def\review@documentclass{review-jsbook}
|
|
6
6
|
|
|
@@ -22,7 +22,14 @@
|
|
|
22
22
|
\def\review@intn@table{表}
|
|
23
23
|
\def\review@intn@equation{式}
|
|
24
24
|
\def\review@intn@columnname{コラム}
|
|
25
|
-
\def\review@intn@
|
|
25
|
+
\def\review@intn@notehead{NOTE}
|
|
26
|
+
\def\review@intn@tiphead{TIP}
|
|
27
|
+
\def\review@intn@infohead{INFORMATION}
|
|
28
|
+
\def\review@intn@warninghead{WARNING}
|
|
29
|
+
\def\review@intn@importanthead{IMPORTANT}
|
|
30
|
+
\def\review@intn@cautionhead{CAUTION}
|
|
31
|
+
\def\review@intn@noticehead{NOTICE}
|
|
32
|
+
\def\review@intn@memohead{MEMO}
|
|
26
33
|
\def\review@intn@edition{版}
|
|
27
34
|
\def\review@intn@publishedby{ 発行}
|
|
28
35
|
\def\review@intn@captionprefix{ }
|
|
@@ -75,6 +82,9 @@ some ad content
|
|
|
75
82
|
\ifdefined\reviewtcy\else% for 5.3.0 compatibility
|
|
76
83
|
\DeclareRobustCommand{\reviewtcy}[1]{\rensuji{##1}}
|
|
77
84
|
\fi
|
|
85
|
+
\ifdefined\reviewicon\else% for 5.6.0 compatibility
|
|
86
|
+
\DeclareRobustCommand{\reviewicon}[1]{\reviewincludegraphics{##1}}
|
|
87
|
+
\fi
|
|
78
88
|
}
|
|
79
89
|
|
|
80
90
|
\makeatother
|
data/test/test_builder.rb
CHANGED
|
@@ -71,6 +71,8 @@ class BuidlerTest < Test::Unit::TestCase
|
|
|
71
71
|
end
|
|
72
72
|
str = @b.inline_ruby('foo,bar')
|
|
73
73
|
assert_equal str, ['foo', 'bar']
|
|
74
|
+
str = @b.inline_ruby(' foo , bar ')
|
|
75
|
+
assert_equal str, ['foo', 'bar']
|
|
74
76
|
str = @b.inline_ruby('foo\\,\\,,\\,bar,buz')
|
|
75
77
|
assert_equal str, ['foo,,', ',bar,buz']
|
|
76
78
|
end
|
data/test/test_htmlbuilder.rb
CHANGED
|
@@ -419,6 +419,9 @@ EOS
|
|
|
419
419
|
def test_inline_ruby
|
|
420
420
|
actual = compile_inline('@<ruby>{粗雑,クルード}と思われているなら@<ruby>{繊細,テクニカル}にやり、繊細と思われているなら粗雑にやる。')
|
|
421
421
|
assert_equal '<ruby>粗雑<rp>(</rp><rt>クルード</rt><rp>)</rp></ruby>と思われているなら<ruby>繊細<rp>(</rp><rt>テクニカル</rt><rp>)</rp></ruby>にやり、繊細と思われているなら粗雑にやる。', actual
|
|
422
|
+
|
|
423
|
+
actual = compile_inline('@<ruby>{ 粗雑 , クルード }と思われているなら@<ruby>{ 繊細 ,テクニカル }にやり、繊細と思われているなら粗雑にやる。')
|
|
424
|
+
assert_equal '<ruby>粗雑<rp>(</rp><rt>クルード</rt><rp>)</rp></ruby>と思われているなら<ruby>繊細<rp>(</rp><rt>テクニカル</rt><rp>)</rp></ruby>にやり、繊細と思われているなら粗雑にやる。', actual
|
|
422
425
|
end
|
|
423
426
|
|
|
424
427
|
def test_inline_ruby_comma
|
data/test/test_idgxmlbuilder.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
|
+
require 'book_test_helper'
|
|
2
3
|
require 'review/compiler'
|
|
3
4
|
require 'review/book'
|
|
4
5
|
require 'review/idgxmlbuilder'
|
|
@@ -6,6 +7,7 @@ require 'review/i18n'
|
|
|
6
7
|
|
|
7
8
|
class IDGXMLBuidlerTest < Test::Unit::TestCase
|
|
8
9
|
include ReVIEW
|
|
10
|
+
include BookTestHelper
|
|
9
11
|
|
|
10
12
|
def setup
|
|
11
13
|
@builder = IDGXMLBuilder.new
|
|
@@ -227,7 +229,10 @@ EOS
|
|
|
227
229
|
end
|
|
228
230
|
|
|
229
231
|
def test_inline_ruby
|
|
230
|
-
actual = compile_inline('@<ruby>{coffin,
|
|
232
|
+
actual = compile_inline('@<ruby>{coffin,bed}')
|
|
233
|
+
assert_equal %Q(<GroupRuby><aid:ruby xmlns:aid="http://ns.adobe.com/AdobeInDesign/3.0/"><aid:rb>coffin</aid:rb><aid:rt>bed</aid:rt></aid:ruby></GroupRuby>), actual
|
|
234
|
+
|
|
235
|
+
actual = compile_inline('@<ruby>{ coffin , bed }')
|
|
231
236
|
assert_equal %Q(<GroupRuby><aid:ruby xmlns:aid="http://ns.adobe.com/AdobeInDesign/3.0/"><aid:rb>coffin</aid:rb><aid:rt>bed</aid:rt></aid:ruby></GroupRuby>), actual
|
|
232
237
|
end
|
|
233
238
|
|
|
@@ -261,6 +266,12 @@ EOS
|
|
|
261
266
|
assert_equal %Q(<replace idref="texinline-1"><pre>\\sin</pre></replace> <replace idref="texinline-2"><pre>\\frac{1}{2}</pre></replace>), actual
|
|
262
267
|
end
|
|
263
268
|
|
|
269
|
+
def test_inline_m_imgmath
|
|
270
|
+
@config['math_format'] = 'imgmath'
|
|
271
|
+
actual = compile_inline('@<m>{\\sin} @<m>{\\frac{1\\}{2\\}}')
|
|
272
|
+
assert_equal %Q(<inlineequation><Image href="file://images/_review_math/_gen_5fded382aa33f0f0652092d41e05c743f7453c26ca1433038a4883234975a9b0.png" type="inline" /></inlineequation> <inlineequation><Image href="file://images/_review_math/_gen_e7e9536310cdba7ff948771f791cefe32f99b73c608778c9660db79e4926e9f9.png" type="inline" /></inlineequation>), actual
|
|
273
|
+
end
|
|
274
|
+
|
|
264
275
|
def test_dlist_beforeulol
|
|
265
276
|
actual = compile_block(" : foo\n foo.\n\npara\n\n : foo\n foo.\n\n 1. bar\n\n : foo\n foo.\n\n * bar\n")
|
|
266
277
|
assert_equal %Q(<dl><dt>foo</dt><dd>foo.</dd></dl><p>para</p><dl><dt>foo</dt><dd>foo.</dd></dl><ol><li aid:pstyle="ol-item" olnum="1" num="1">bar</li></ol><dl><dt>foo</dt><dd>foo.</dd></dl><ul><li aid:pstyle="ul-item">bar</li></ul>), actual
|
|
@@ -1286,6 +1297,37 @@ EOS
|
|
|
1286
1297
|
assert_equal expected, actual
|
|
1287
1298
|
end
|
|
1288
1299
|
|
|
1300
|
+
def test_texequation_imgmath
|
|
1301
|
+
@config['math_format'] = 'imgmath'
|
|
1302
|
+
src = <<-EOS
|
|
1303
|
+
//texequation{
|
|
1304
|
+
p \\land \\bm{P} q
|
|
1305
|
+
//}
|
|
1306
|
+
EOS
|
|
1307
|
+
expected = %Q(<equationimage><Image href="file://images/_review_math/_gen_84291054a12d278ea05694c20fbbc8e974ec66fc13be801c01dca764faeecccb.png" /></equationimage>)
|
|
1308
|
+
actual = compile_block(src)
|
|
1309
|
+
assert_equal expected, actual
|
|
1310
|
+
end
|
|
1311
|
+
|
|
1312
|
+
def test_texequation_with_caption_imgmath
|
|
1313
|
+
@config['math_format'] = 'imgmath'
|
|
1314
|
+
src = <<-EOS
|
|
1315
|
+
@<eq>{emc2}
|
|
1316
|
+
|
|
1317
|
+
//texequation[emc2][The Equivalence of Mass @<i>{and} Energy]{
|
|
1318
|
+
e=mc^2
|
|
1319
|
+
//}
|
|
1320
|
+
EOS
|
|
1321
|
+
expected = %Q(<p><span type='eq'>式1.1</span></p><equationblock><caption>式1.1 The Equivalence of Mass <i>and</i> Energy</caption><equationimage><Image href="file://images/_review_math/_gen_882e99d99b276a2118a3894895b6da815a03261f4150148c99b932bec5355f25.png" /></equationimage></equationblock>)
|
|
1322
|
+
actual = compile_block(src)
|
|
1323
|
+
assert_equal expected, actual
|
|
1324
|
+
|
|
1325
|
+
@config['caption_position']['equation'] = 'bottom'
|
|
1326
|
+
expected = %Q(<p><span type='eq'>式1.1</span></p><equationblock><equationimage><Image href="file://images/_review_math/_gen_882e99d99b276a2118a3894895b6da815a03261f4150148c99b932bec5355f25.png" /></equationimage><caption>式1.1 The Equivalence of Mass <i>and</i> Energy</caption></equationblock>)
|
|
1327
|
+
actual = compile_block(src)
|
|
1328
|
+
assert_equal expected, actual
|
|
1329
|
+
end
|
|
1330
|
+
|
|
1289
1331
|
def test_nest_error_close1
|
|
1290
1332
|
src = <<-EOS
|
|
1291
1333
|
//beginchild
|
data/test/test_latexbuilder.rb
CHANGED
|
@@ -327,9 +327,17 @@ EOS
|
|
|
327
327
|
assert_equal 'test p.\pageref{p1}', actual
|
|
328
328
|
end
|
|
329
329
|
|
|
330
|
+
def test_inline_ruby
|
|
331
|
+
actual = compile_inline('@<ruby>{ foo , bar }')
|
|
332
|
+
assert_equal '\\ruby{foo}{bar}', actual
|
|
333
|
+
end
|
|
334
|
+
|
|
330
335
|
def test_inline_ruby_comma
|
|
331
336
|
actual = compile_inline('@<ruby>{foo\\, bar\\, buz,フー・バー・バズ}')
|
|
332
337
|
assert_equal '\\ruby{foo, bar, buz}{フー・バー・バズ}', actual
|
|
338
|
+
|
|
339
|
+
actual = compile_inline('@<ruby>{foo\\, bar\\, buz , フー・バー・バズ }')
|
|
340
|
+
assert_equal '\\ruby{foo, bar, buz}{フー・バー・バズ}', actual
|
|
333
341
|
end
|
|
334
342
|
|
|
335
343
|
def test_inline_uchar
|
|
@@ -100,6 +100,9 @@ class PLAINTEXTBuidlerTest < Test::Unit::TestCase
|
|
|
100
100
|
def test_inline_ruby
|
|
101
101
|
actual = compile_inline('@<ruby>{coffin,bed}')
|
|
102
102
|
assert_equal 'coffin', actual
|
|
103
|
+
|
|
104
|
+
actual = compile_inline('@<ruby>{ coffin , bed }')
|
|
105
|
+
assert_equal 'coffin', actual
|
|
103
106
|
end
|
|
104
107
|
|
|
105
108
|
def test_inline_kw
|
data/test/test_rstbuilder.rb
CHANGED
|
@@ -110,6 +110,9 @@ EOS
|
|
|
110
110
|
def test_inline_ruby
|
|
111
111
|
actual = compile_inline('@<ruby>{coffin,bed}')
|
|
112
112
|
assert_equal ' :ruby:`coffin`<bed>`_ ', actual
|
|
113
|
+
|
|
114
|
+
actual = compile_inline('@<ruby>{ coffin , bed }')
|
|
115
|
+
assert_equal ' :ruby:`coffin`<bed>`_ ', actual
|
|
113
116
|
end
|
|
114
117
|
|
|
115
118
|
def test_inline_kw
|
data/test/test_topbuilder.rb
CHANGED
|
@@ -69,6 +69,9 @@ class TOPBuidlerTest < Test::Unit::TestCase
|
|
|
69
69
|
def test_inline_ruby
|
|
70
70
|
actual = compile_inline('@<ruby>{coffin,bed}')
|
|
71
71
|
assert_equal 'coffin◆→DTP連絡:「coffin」に「bed」とルビ←◆', actual
|
|
72
|
+
|
|
73
|
+
actual = compile_inline('@<ruby>{ coffin , bed }')
|
|
74
|
+
assert_equal 'coffin◆→DTP連絡:「coffin」に「bed」とルビ←◆', actual
|
|
72
75
|
end
|
|
73
76
|
|
|
74
77
|
def test_inline_kw
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: review
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kmuto
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2022-
|
|
12
|
+
date: 2022-10-29 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: image_size
|
|
@@ -207,6 +207,20 @@ dependencies:
|
|
|
207
207
|
- - ">="
|
|
208
208
|
- !ruby/object:Gem::Version
|
|
209
209
|
version: '0'
|
|
210
|
+
- !ruby/object:Gem::Dependency
|
|
211
|
+
name: webrick
|
|
212
|
+
requirement: !ruby/object:Gem::Requirement
|
|
213
|
+
requirements:
|
|
214
|
+
- - ">="
|
|
215
|
+
- !ruby/object:Gem::Version
|
|
216
|
+
version: '0'
|
|
217
|
+
type: :development
|
|
218
|
+
prerelease: false
|
|
219
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
220
|
+
requirements:
|
|
221
|
+
- - ">="
|
|
222
|
+
- !ruby/object:Gem::Version
|
|
223
|
+
version: '0'
|
|
210
224
|
description: Re:VIEW is a digital publishing system for books and ebooks. It supports
|
|
211
225
|
InDesign, EPUB and LaTeX.
|
|
212
226
|
email: kmuto@kmuto.jp
|