review-retrovert 0.9.7 → 0.9.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +9 -0
  3. data/.editorconfig +3 -0
  4. data/.github/workflows/retrovert.yml +20 -5
  5. data/.gitignore +1 -0
  6. data/.vscode/launch.json +48 -0
  7. data/Gemfile.lock +13 -4
  8. data/Makefile +24 -0
  9. data/docker/review.Dockerfile +10 -0
  10. data/lib/review/retrovert/converter.rb +374 -111
  11. data/lib/review/retrovert/reviewcompat.rb +57 -0
  12. data/lib/review/retrovert/reviewdef.rb +70 -0
  13. data/lib/review/retrovert/sty/{ird.sty → ird.sty.erb} +9 -1
  14. data/lib/review/retrovert/sty/review-retrovert-custom.sty.erb +6 -0
  15. data/lib/review/retrovert/utils.rb +35 -0
  16. data/lib/review/retrovert/version.rb +1 -1
  17. data/lib/review/retrovert/yamlconfig.rb +0 -1
  18. data/package-lock.json +6 -0
  19. data/package.json +1 -0
  20. data/review-retrovert.gemspec +5 -1
  21. data/testdata/mybook/.gitignore +3 -1
  22. data/testdata/mybook/.textlintrc +11 -0
  23. data/testdata/mybook/Rakefile +8 -0
  24. data/testdata/mybook/catalog.yml +36 -10
  25. data/testdata/mybook/config-starter.yml +134 -9
  26. data/testdata/mybook/config.yml +44 -15
  27. data/testdata/mybook/contents/00-preface.re +48 -2
  28. data/testdata/mybook/contents/01-install.re +38 -5
  29. data/testdata/mybook/contents/02-tutorial.re +333 -113
  30. data/testdata/mybook/contents/03-syntax.re +2370 -373
  31. data/testdata/mybook/contents/04-customize.re +424 -88
  32. data/testdata/mybook/contents/05-faq.re +288 -10
  33. data/testdata/mybook/contents/06-bestpractice.re +431 -59
  34. data/testdata/mybook/contents/91-compare.re +402 -2
  35. data/testdata/mybook/contents/92-filelist.re +14 -8
  36. data/testdata/mybook/contents/93-background.re +10 -10
  37. data/testdata/mybook/contents/99-postface.re +2 -1
  38. data/testdata/mybook/contents/r0-root.re +1 -1
  39. data/testdata/mybook/css/webstyle.css +180 -2
  40. data/testdata/mybook/data/terms.txt +3 -0
  41. data/testdata/mybook/data/words.txt +15 -0
  42. data/testdata/mybook/images/03-syntax/index-page.png +0 -0
  43. data/testdata/mybook/images/03-syntax/order-detail.png +0 -0
  44. data/testdata/mybook/images/04-customize/section_decoration_samples.png +0 -0
  45. data/testdata/mybook/images/05-faq/dummy-image.png +0 -0
  46. data/testdata/mybook/images/06-bestpractice/section_title_wlines.png +0 -0
  47. data/testdata/mybook/images/avatar-b.png +0 -0
  48. data/testdata/mybook/images/avatar-g.png +0 -0
  49. data/testdata/mybook/images/avatar-r.png +0 -0
  50. data/testdata/mybook/images/caution-icon.png +0 -0
  51. data/testdata/mybook/images/info-icon.png +0 -0
  52. data/testdata/mybook/images/warning-icon.png +0 -0
  53. data/testdata/mybook/layouts/layout.html5.erb +3 -1
  54. data/testdata/mybook/layouts/layout.tex.erb +265 -379
  55. data/testdata/mybook/layouts/layout.tex.erb.orig +386 -0
  56. data/testdata/mybook/lib/ruby/review-book.rb +64 -0
  57. data/testdata/mybook/lib/ruby/review-builder.rb +902 -63
  58. data/testdata/mybook/lib/ruby/review-compiler.rb +675 -22
  59. data/testdata/mybook/lib/ruby/review-epubbuilder.rb +33 -0
  60. data/testdata/mybook/lib/ruby/review-epubmaker.rb +10 -7
  61. data/testdata/mybook/lib/ruby/review-htmlbuilder.rb +354 -66
  62. data/testdata/mybook/lib/ruby/review-latexbuilder.rb +429 -146
  63. data/testdata/mybook/lib/ruby/review-maker.rb +117 -6
  64. data/testdata/mybook/lib/ruby/review-markdownbuilder.rb +945 -0
  65. data/testdata/mybook/lib/ruby/review-markdownmaker.rb +91 -0
  66. data/testdata/mybook/lib/ruby/review-monkeypatch.rb +2 -0
  67. data/testdata/mybook/lib/ruby/review-pdfmaker.rb +160 -82
  68. data/testdata/mybook/lib/ruby/review-webmaker.rb +20 -5
  69. data/testdata/mybook/lib/tasks/review.rake +14 -0
  70. data/testdata/mybook/lib/tasks/starter.rake +148 -4
  71. data/testdata/mybook/sty/indexstyle.ist +25 -0
  72. data/testdata/mybook/sty/mytextsize.sty +29 -0
  73. data/testdata/mybook/sty/mytitlepage.sty +34 -11
  74. data/testdata/mybook/sty/review-base.sty +276 -0
  75. data/testdata/mybook/sty/starter-codeblock.sty +237 -106
  76. data/testdata/mybook/sty/starter-color.sty +72 -17
  77. data/testdata/mybook/sty/starter-heading.sty +60 -13
  78. data/testdata/mybook/sty/starter-misc.sty +894 -0
  79. data/testdata/mybook/sty/starter-note.sty +67 -14
  80. data/testdata/mybook/sty/starter-talklist.sty +105 -0
  81. data/testdata/mybook/sty/starter-util.sty +35 -0
  82. data/testdata/mybook/sty/starter.sty +8 -526
  83. metadata +80 -4
@@ -5,9 +5,10 @@
5
5
  Starterにおける機能追加や修正の一覧です。
6
6
  //}
7
7
 
8
- (TODO)
9
8
 
10
- まだ書かれてないので、かわりにQiiaの記事を参照してください。
9
+ == まとめ記事
10
+
11
+ こちらの記事も参照してください。
11
12
 
12
13
  * 『技術系同人誌を書く人の味方「Re:VIEW Starter」の紹介』(Qitta)@<br>{}
13
14
  @<href>{https://qiita.com/kauplan/items/d01e6e39a05be0b908a1}
@@ -16,3 +17,402 @@ Starterにおける機能追加や修正の一覧です。
16
17
  * 『Re:VIEW Starterの新機能(2019年冬)』(Qitta)@<br>{}
17
18
  @<href>{https://qiita.com/kauplan/items/e36edd7900498e231aaf}
18
19
 
20
+
21
+ == プロジェクト作成
22
+
23
+ * Starterでは、WebサイトにおいてGUIでプロジェクトの作成と初期設定ができます。
24
+ このおかげで、初心者でもつまづかずにプロジェクトを始められます。
25
+ @<par>{i}
26
+ Re:VIEWではプロジェクトの作成はコマンドラインでしか行えず、また初期設定を自分で行う必要があるので、初心者にはかなりハードルが高いです。
27
+ * Starterでは、ダウンロードしたプロジェクトに文章のサンプルが含まれています。
28
+ そのおかげで、どのように原稿を書けばいいのかが分かります。
29
+ @<par>{i}
30
+ Re:VIEWでは、作成したプロジェクトの中身はほとんど空であり、サンプルとしては役に立ちません。
31
+
32
+
33
+ == コメント
34
+
35
+ * Starterでは、範囲コメントが使えます。
36
+ @<par>{i}
37
+ Re:VIEWでは、行コメントしか使えません。
38
+ * Starterでは、行コメントは単に読み飛ばされます。
39
+ @<par>{i}
40
+ Re:VIEWでは、行コメントが空行扱いになるため、行コメントを使うと意図せず段落が区切られます。
41
+ これは明らかにRe:VIEWの仕様バグですが、Re:VIEW開発チームはこのバグを認めていません。
42
+
43
+
44
+ == 箇条書き
45
+
46
+ * Starterでは、順序つきリスト(HTMLでいうところの「@<code>{<ol>}」)の項目に、「1.」や「(a)」や「(A-1)」など任意の文字列が使えます。
47
+ @<par>{i}
48
+ Re:VIEWでは「1.」しか使えません。
49
+ * Starterでは、順序つきリストを入れ子にできます。
50
+ @<par>{i}
51
+ Re:VIEWではできません。
52
+ * Starterでは、順序つきリストと順序なしリストを相互に入れ子にできます。
53
+ @<par>{i}
54
+ Re:VIEWではできません。
55
+ * Re:VIEWでは、箇条書きの項目が複数行のテキストだと、自動的に1行に連結されます。
56
+ そのせいで、本来なら「@<code>|aaa|」と「@<code>|bbb|」と「@<code>|ccc|」の3行に分かれていた単語が、「@<code>|aaabbbccc|」のように勝手に連結されてしまいます。
57
+ @<par>{i}
58
+ Starterではこのようなおかしなバグは起こりません。
59
+
60
+
61
+ == 定義リスト
62
+
63
+ * Re:VIEWでは、定義リストの説明文が複数行だと、自動的に1行に連結されます。
64
+ そのせいで、本来なら「@<code>|aaa|」と「@<code>|bbb|」と「@<code>|ccc|」の3行に分かれていた単語が、「@<code>|aaabbbccc|」のように勝手に連結されてしまいます。
65
+ @<par>{i}
66
+ Starterではこのようなおかしなバグは起こりません。
67
+ * Starterでは、定義リストの説明文に箇条書きが書けます。
68
+ @<par>{i}
69
+ Re:VIEWでは書けません。
70
+ * Starterでは、定義リストとよく似た「説明リスト」が用意されています。
71
+ 説明リストは入れ子のブロック命令で書くので、説明文の中にたとえばプログラムコードを入れられます。
72
+ またブロック命令にオプション引数を指定すると、太字にする・しないや、コンパクトモードにする・しないが選べます。
73
+
74
+
75
+ == 見出し(章、節、項、目)
76
+
77
+ * Starterでは、章や節のタイトルを見栄えのいいデザインにしています。
78
+ また設定ファイルを変更することで、デザインを選択できます。
79
+ @<par>{i}
80
+ Re:VIEWでは@<LaTeX>{}のデフォルトのデザインを使っているだけです。
81
+ * Starterでは、章(Chapter)ごとにタイトルページを作成できます。
82
+ これは商業誌では一般的なスタイルです。
83
+ #@# @<par>{i}
84
+ #@# Re:VIEWではこのような機能は用意されていません。
85
+ * Starterでは、節(Section)ごとに改ページできます。
86
+ これは初心者向け入門書ではよく見かけるレイアウトです。
87
+ #@# @<par>{i}
88
+ #@# Re:VIEWではこのような機能は用意されていません。
89
+ * Starterでは、章や節を参照するとページ番号もつきます。
90
+ これは特に、項(Subsection)に番号をつけない設定において、項を参照するときに有用です。
91
+
92
+
93
+ == インライン命令
94
+
95
+ * Starterでは、たとえば「@<code>|@@<nop>{}<code>{foo@@<nop>{}<b>{bar}}|」のようにインライン命令を入れ子にできます。
96
+ @<par>{i}
97
+ Re:VIEWではできません。
98
+ * Starterでは、「@<code>|@@<nop>{}<strong>{}|」が太字かつゴシック体になります。
99
+ なぜなら日本語の文章では、強調は太字にするだけでなくゴシック体にすることが望ましいからです。
100
+ @<par>{i}
101
+ Re:VIEWでは、「@<code>|@@<nop>{}<strong>{}|」は太字になるだけです。
102
+ * Starterでは、「@<code>|@@<nop>{}<strong>{}|」の省略形として「@<code>|@@<nop>{}<B>{}|」を用意しています。
103
+ これにより、文章の強調が簡単にできます。
104
+ @<par>{i}
105
+ Re:VIEWには、「@<code>|@@<nop>{}<B>{}|」はありません。
106
+ * Starterでは、何もしない命令「@<code>|@@<nop>{}<nop>{}|」があります。
107
+ これを使うと、たとえば「@<code>|@@<nop>{}@@<nop>{}<nop>{}<B>{}|」とすれば「@<code>|@@<nop>{}<B>{}|」と表示されます。
108
+ これはRe:VIEWを使ってRe:VIEWのマニュアルを作るときに重宝します。
109
+ @<par>{i}
110
+ Re:VIEWにはこのようなコマンドはありません。
111
+ * Re:VIEWでは、たとえば「@<code>|@@<nop>{}<code>{a: b? c! d. e}|」と入力すると、「@<code>|{a: b? c! d. e}|」のように半角空白が2つ分出力されます。このような意図しない出力になるのは、@<LaTeX>{}におけるスペーシングの仕様をそのまま引き継いでいるからです。
112
+ @<br>{}
113
+ Starterではこの現象を回避しており、等幅フォントでも半角空白が2つ分出力されないように修正しています。
114
+ * Starterでは、ファイル名を表すインライン命令「@<code>|@@<nop>{}<file>{}|」が用意されています。
115
+ * Starterでは、文字サイズを変更するインライン命令「@<code>|@@<nop>{}<small>{}|」「@<code>|@@<nop>{}<xsmall>{}|」「@<code>|@@<nop>{}<xxsmall>{}|」「@<code>|@@<nop>{}<large>{}|」「@<code>|@@<nop>{}<xlargel>{}|」「@<code>|@@<nop>{}<xxlarge>{}|」が用意されています。
116
+ * Starterでは、「@<LaTeX>{}」を表示する「@<code>|@@<nop>{}<LaTeX>{}|」、「@<TeX>{}」を表示する「@<code>|@@<nop>{}<TeX>{}|」、「@<hearts>{}」を表示する「@<code>|@@<nop>{}<hearts>{}|」が用意されています。
117
+ * Starterでは、リンクのURLを自動的に脚注に表示する機能があります。
118
+ これは、紙の本ではリンクのURLが表示されない問題に対する解決策です。
119
+ #@# @<par>{i}
120
+ #@# Re:VIEWにはこのような機能はありません。
121
+ #@# * Starterでは、長すぎるURLは途中で自動的に改行されます。
122
+
123
+
124
+ == ブロック命令
125
+
126
+ * Starterでは、ブロック命令を入れ子にできます。
127
+ たとえば「@<code>|//note{ ... //}|」の中に「@<code>|//list{ .. //}|」や「@<code>|//quote{ ... //}|」を入れられます。
128
+ #@# @<par>{i}
129
+ #@# Re:VIEWではこれができません。
130
+ * Starterでは、章の概要を表す「@<code>|//abstract|」が用意されています。
131
+ @<par>{i}
132
+ Re:VIEWにはありませんが、かわりにリード文を表す「@<code>|//lead|」が使えます。
133
+ * Starterでは、縦方向の空きを入れる「@<code>|//vspace|」が用意されています。
134
+ マイナスの値を指定すれば、余分な空きを削除できます。
135
+ * Starterでは、縦方向のスペースを確保する「@<code>|//needvspace|」が用意されています。
136
+ @<par>{i}
137
+ たとえばプログラムのキャプションだけが現在のページ、プログラムコードは次のページに表示されてしまったとします。
138
+ このとき「@<code>|//list|」の前に「@<code>|//needvspace[6zw]|」と書くと、全角6文字分の高さのスペースがなければ自動的に改ページされます(つまりプログラムのキャプションの@<bou>{前}で改ページされる)。
139
+ 結果として、プログラムのキャプションとコードが同じページに表示されます。
140
+
141
+
142
+ == プログラムコード
143
+
144
+ * Starterでは、「1」と「l」、「0」と「O」の見分けがつきやすいフォントを選んでいます。
145
+ @<par>{i}
146
+ Re:VIEWでは@<LaTeX>{}のデフォルトを使っているので、これらの見分けがつきにくいです。
147
+ * プログラムコードを表示するとき、Starterでは1つのブロック命令「@<code>|//list|」だけで済みます。
148
+ @<par>{i}
149
+ Re:VIEWでは「@<code>|//list|」「@<code>|//emlist|」「@<code>|//listnum|」「@<code>|//emlistnum|」の4つを使い分ける必要があります。
150
+ * Starterでは、長すぎる行を自動的に右端で折り返します。
151
+ また折り返したことが分かるような記号をつけてくれます。
152
+ @<par>{i}
153
+ Re:VIEWにはこのような気の利いた機能がありません。
154
+ * Starterでは、「@<code>|@@<nop>{}<del>{}|」で取り消し線を引いた行でも右端で折り返しされます。
155
+ Starterではこのような細かいところに配慮が行き届いています。
156
+ * Starterでは、行番号は目立たないようにグレーで表示します。
157
+ @<par>{i}
158
+ Re:VIEWにはこのような気の利いた機能がありません。
159
+ * Starterでは、行番号を欄外に表示できます。
160
+ これにより、行番号の分だけコードの表示範囲が狭まってしまうのを防げます。
161
+ #@# @<par>{i}
162
+ #@# Re:VIEWにはこのような気の利いた機能がありません。
163
+ * Starterでは、飛び飛びの行番号を指定できます。
164
+ @<par>{i}
165
+ Re:VIEWでは連続した行番号しか表示できません。
166
+ * Starterでは、インデントを可視化できます。
167
+ この機能は、Pythonのようなインデントで入れ子を表現するプログラミング言語では重要です。
168
+ #@# @<par>{i}
169
+ #@# Re:VIEWではこれができません。
170
+ * Starterでは、ラベルさえ指定されていればキャプションがなくても番号つきで表示されます。
171
+ @<par>{i}
172
+ Re:VIEWでは、「@<code>|//list[fib1]|」のようにラベルを指定していても、キャプションがなければ番号がつきません。
173
+ ラベルの目的を考えれば、これはRe:VIEWの仕様バグです。
174
+ * Starterでは、「@<code>|//list[?]|」のようにすると簡単に番号付きで表示されます。
175
+ @<par>{i}
176
+ Re:VIEWにはこの機能がないので、番号つきで表示するには重複しないラベルを指定する必要があり、数が多いとかなり面倒です。
177
+ * Starterでは、プログラムコードのフォントサイズを変更できます。
178
+ 「あるプログラムコードだけフォントサイズを小さくする」といったことが簡単にできます。
179
+ #@# @<par>{i}
180
+ #@# Re:VIEWではできません。
181
+ * Starterでは、コード中の注釈を表す「@<code>|@@<nop>{}<balloon>{}|」がグレー表示されます。
182
+ これは注釈がコードより目立たないようにという配慮です。
183
+ @<par>{i}
184
+ Re:VIEWにはこのような配慮はありません。
185
+ * プログラム中にタブ文字がある場合、Re:VIEWでは空白文字に展開されます。
186
+ しかしこれが「@<LaTeX>{}コードに変換してからタブ文字を展開する」という仕様のため、表示が崩れます。
187
+ @<par>{i}
188
+ Starterではタブ文字を展開してから@<LaTeX>{}コードに変換する」ため、表示が崩れません(ただし限界はあります)。
189
+ * Starterでは、全角文字の幅を半角文字2つ分に揃えて表示する機能があります。
190
+ 全角と半角が混在しているせいで表示が揃わない(崩れてしまう)場合に使うと大変便利です。
191
+ * Starterでは、プログラムコードとは別に出力結果を表示するための「@<code>|//output|」があります。
192
+ プログラムコードと出力結果では見た目を変えて表示したい場合に便利です。
193
+ * Re:VIEWでは、プログラムコードをハイライト表示する機能があります。
194
+ @<par>{i}
195
+ Starterではまだ未サポートです。
196
+
197
+
198
+ == ターミナル画面
199
+
200
+ * Starterでは、ターミナル画面を表すコマンド命令「@<code>|//terminal|」を用意しています。
201
+ これは使い方が「@<code>|//list|」と同じなので、覚えやすいです。
202
+ @<par>{i}
203
+ Re:VIEWで用意しているブロック命令「@<code>|//cmd|」は、「@<code>|//list|」と使い方が違っているので覚えにくいです。
204
+ * Starterの「@<code>|//terminal|」はほぼ「@<code>|//list|」と同じなので、折返しや行番号など「@<code>|//list|」と同じ機能が「@<code>|//terminal|」でも使えます。
205
+ @<par>{i}
206
+ Re:VIEWの「@<code>|//cmd|」はそうではないので、機能が貧弱です。
207
+ * Starterでは、ユーザ入力を表すインライン命令「@<code>|@@<nop>{}<userinput>{}|」があります。
208
+ これを使うと、ユーザ入力部分に薄い下線が引かれます。
209
+ ただし@<LaTeX>{}の制限により、長い行が右端で折り返しされません。
210
+ #@# @<par>{i}
211
+ #@# Re:VIEWにはありません。
212
+ * Starterでは、カーソルを表すインライン命令「@<code>|@@<nop>{}<cursor>{}|」が用意されています。
213
+ Vimの操作画面を説明するときに便利です。
214
+
215
+
216
+ == ノート、ミニブロック
217
+
218
+ * Starterでは、ノートを表すブロック命令「@<code>|//note|」を上書きし、見栄えのいい表示にしています。
219
+ @<par>{i}
220
+ Re:VIEWではノートの見栄えは気にされていません。
221
+ * Starterでは、ノートの中に箇条書きや他のブロック命令を入れられます。
222
+ #@# @<par>{i}
223
+ #@# Re:VIEWではできません。
224
+ * Starterでは、ノートの中で脚注が使えます。
225
+ * Starterでは、ノートの中に書いたプログラムコードやターミナル画面が、ページまたぎできます。
226
+ * Starterでは、ノートにラベルをつけてあとから参照できます。
227
+ これはちょうど、図や表を参照するのと同じような機能です。
228
+ #@# @<par>{i}
229
+ #@# Re:VIEWにはこのような機能はありません。
230
+ * Starterでは、補足情報を表す「@<code>|//info|」と注意喚起を表す「@<code>|//caution|」と警告を表す「@<code>|//warning|」にアイコンがつきます。
231
+
232
+
233
+ == 図
234
+
235
+ * Re:VIEWでは、たとえば「@<code>|//image[][][scale=0.5]|」のようなオプションを指定すると、画像が本文幅の半分の大きさで表示されます。
236
+ しかしこれは画像の幅が本文幅より大きい場合だけであり、画像の幅が本文幅より小さい場合は画像幅の半分の大きさで表示されます。
237
+ そのため、画像の幅が本文幅より大きいかどうかを気にする必要があり、面倒です。
238
+ @<par>{i}
239
+ Starterでは「@<code>|//image[][][width=50%]|」のように指定すると、画像の幅が本文幅より大きいかどうかに関係なく、常に本文幅の半分の大きさで画像が表示されます。
240
+ * Starterでは「@<code>|//image[][][width=40mm]|」のように、画像の表示幅を絶対値で指定できます。
241
+ つまり画像の表示幅を本文の幅とは関係なく指定できます。
242
+ * 画像の幅が本文幅より小さい場合、表示幅を指定せずに画像を表示すると、Re:VIEWではPDFならそのままの大きさで表示されるのに、HTMLでは本文幅いっぱいの大きさで表示されてしまいます。
243
+ @<par>{i}
244
+ Starterでは、PDFとHTMLのどちらでもそのままの大きさで画像が表示されます。
245
+ * Starterでは、画像の挿入位置を指定できます(現在位置、ページ上部、ページ下部、別ページ)。
246
+ #@# @<par>{i}
247
+ #@# Re:VIEWではできません。
248
+ * Starterでは、図のまわりをグレーの線で囲む機能があります。
249
+ 画像のふちが白い場合はこの機能を使うと、画像の境界を明示できます。
250
+ #@# @<par>{i}
251
+ #@# Re:VIEWにはこのような機能はありません。
252
+ * 画像が次のページに送られたとき、Starterでは後続のテキストを現在位置に流し込まれます。
253
+ @<par>{i}
254
+ Re:VIEWでは後続のテキストが現在位置に流し込まれないので、現在位置に大きなスペースが空きます。
255
+ * Starterでは、「@<code>|//sideimage|」を使うと画像の横にテキストを表示できます。
256
+ @<par>{i}
257
+ #@# Re:VIEWにはこの機能はありません。
258
+
259
+
260
+ == 表
261
+
262
+ * Starterでは、表の挿入位置を指定できます(現在位置、ページ上部、ページ下部、別ページ)。
263
+ #@# @<par>{i}
264
+ #@# Re:VIEWではできません。
265
+ * Starterでは、表のデータをCSV形式で指定できます。
266
+ #@# @<par>{i}
267
+ #@# Re:VIEWではできません。
268
+ * Starterでは、表のデータを外部ファイルから読み込めます。
269
+ #@# @<par>{i}
270
+ #@# Re:VIEWではできません。
271
+ * Starterでは、行ごとの罫線をオン・オフできます。
272
+ また行ごとの罫線をオフにしたうえで、指定箇所だけ罫線を引くよう指定できます。
273
+ #@# @<par>{i}
274
+ #@# Re:VIEWではできません。
275
+ * Starterでは、「@<code>|//table[label][]|」のようにラベルだけ指定してキャプションがない場合でも、「表1.1」のような番号がつきます。
276
+ @<par>{i}
277
+ Re:VIEWでは、ラベルが指定されてあってもキャプションがなければ番号が表示されません。
278
+ * Starterでは、「@<code>|//table[?][]|」のように指定すると内部でラベルを自動的に割り当ててくれます。
279
+ そのおかげで、表を番号つきで表示するのが簡単です。
280
+ @<par>{i}
281
+ Re:VIEWではこのような機能がないので、番号つきで表示するには重複しないラベルを必ず指定する必要があり、面倒です。
282
+ * 表のカラムの右寄せや左寄せを指定する「@<code>{//tsize}」を、Starterでは「@<code>{//tsize[latex][|lcr|]}」のように指定できます。
283
+ @<par>{i}
284
+ Re:VIEWでは「@<code>{//tsize[|latex||lcr|]}」のように指定するため、読みづらいし分かりにくいです。
285
+ * Re:VIEWには、項目の区切り文字を変更できる機能があります。
286
+ @<par>{i}
287
+ Starterでは未サポートです。
288
+
289
+
290
+ == 会話形式
291
+
292
+ * Starterでは、アイコン画像つきの会話形式を用意しています。
293
+ * Starterでは、アイコン画像なしの会話形式も用意しています。
294
+ * Starterでは、大量の会話形式を入力するときに便利なように、短縮名を登録して短く書ける機能を用意しています。
295
+
296
+
297
+
298
+ == 用語、索引
299
+
300
+ * Starterには、用語を表す「@<code>|@@<nop>{}<term>{}|」インライン命令があります。
301
+ これは「@<code>|@@<nop>{}<idx>{}|」と似ていますが、用語をゴシック体で表示する点が違います。
302
+ 用語が初めて登場したときは「@<code>|@@<nop>{}<term>{}|」、再登場した場合は「@<code>|@@<nop>{}<idx>{}|」を使うことを想定しています。
303
+ * Starterでは、「@<code>|@@<nop>{}<idx>{}|」や「@<code>|@@<nop>{}<term>{}|」の中によみがなを指定できます。
304
+ * Starterでは、親子関係と表示順序が逆転している場合にも「@<code>|~~~|」を使えば対応できます。
305
+ * Starterでは、索引ページにおいて用語の転送先となる別の用語を指定できます。
306
+ * Re:VIEWの索引ページは、@<LaTeX>{}のデフォルトデザインのままです。
307
+ Starterでは、用語とページ番号の間を連続したドットで埋めたり、用語のグループ化を文字単位から行単位に変更しています。
308
+
309
+
310
+ == 表紙、大扉、奥付
311
+
312
+ * Starterでは、表紙と裏表紙はPDFファイルで指定します。
313
+ @<par>{i}
314
+ Re:VIEWでは、表紙は画像ファイル(PNGやJPG)で指定します。
315
+ * 本のタイトルが長い場合、Starterではタイトルを複数行で指定すれば、改行位置を指定できます。
316
+ このおかげで、大扉では長いタイトルがきれいに改行されて表示されます。
317
+ @<par>{i}
318
+ Re:VIEWではこのような機能はありません。
319
+ * Starterでは、大扉の裏に免責事項などが書かれています。
320
+ これは商業誌では一般的ですが、同人誌では入れ忘れることがほとんどなので、あらかじめStarterが用意しています。
321
+ #@# @<par>{i}
322
+ #@# Re:VIEWではこのような配慮はありません。
323
+ * Starterでは、奥付が必ず偶数ページ(見開きで左側のページ)になるよう調整します。
324
+ @<par>{i}
325
+ Re:VIEWではこのような機能はありません@<fn>{9h11e}。
326
+
327
+ //footnote[9h11e][TechBoosterのテンプレートでは、Starterと同じように奥付が偶数ページになります。]
328
+
329
+
330
+ == PDFファイル
331
+
332
+ * Starterでは、印刷用PDFでは白黒に、電子用PDFではカラーにしてくれます。
333
+ @<par>{i}
334
+ Re:VIEWではこのような機能はありません。
335
+ * Starterでは、印刷用PDFでは左右の余白幅を切り替えています。
336
+ これは本文幅を広げるための工夫であり、商業誌でも一般的です。
337
+ @<par>{i}
338
+ Re:VIEWではこのような工夫はされていません。
339
+ * Re:VIEWでは、印刷用PDFにはハイパーリンクがつかないようになっています。
340
+ これは入稿時のトラブルをできるだけ減らすための仕様です。
341
+ @<par>{i}
342
+ しかし@<LaTeX>{}ではハイパーリンクのある・なしで組版結果が変わることがあります(hyperref.styの仕様)。
343
+ また最近の印刷所では、ハイパーリンクがついたPDFでも入稿でトラブルになることはなさそうです。
344
+ そこでStarterでは、印刷用PDFでもハイパーリンクを残したままにしています。
345
+ * Re:VIEWでは、デフォルトでPDFにトンボがつきます。
346
+ しかしこれは入稿に慣れてないとトラブルのもとです。
347
+ 入稿先が同人誌向けの印刷会社なら、トンボなしのほうが入稿トラブルは少ないです。
348
+ @<par>{i}
349
+ そのため、Starterではトンボはつけません。
350
+ * Re:VIEWとStarterのどちらとも、印刷用PDFには隠しノンブル(通し番号)がつきます。
351
+ ただし実装方法はRe:VIEWとStarterとで全く別です。
352
+ またStarterでは、ノンブルの位置や大きさや色や開始番号を設定ファイルで変更できます。
353
+ * 印刷用PDFに自動でノンブルがつくのは、PDFの作成がRe:VIEWだけで完結している場合は便利ですが、たとえば大扉を別ソフトで作るような場合は逆に不便です。
354
+ @<par>{i}
355
+ そこでStarterでは、PDFを生成したあとに隠しノンブルをつけるRakeタスク「@<code>|rake pdf:nombre|」も用意しています。
356
+ これだと、大扉だけを別ソフトで作るような場合にも対応できます。
357
+ * Starterでは、PDFファイルにノンブルをつける@<href>{https://kauplan.org/pdfoperation/, 別のサービス}も用意しています。
358
+ * Starterでは、PDFのテキストをマウスで選択したときに、行番号や折り返し記号やインデント記号を選択対象にしない機能が用意されています。
359
+ ただしこの機能はコンパイル時間を大きく増やしてしまうので、デフォルトではオフです。
360
+
361
+
362
+ == @<LaTeX>{}関連
363
+
364
+ * Re:VIEWでは、LuaLaTeXとjlreq.clsを積極的に利用しており、採用実績も多いです。
365
+ @<par>{i}
366
+ Starterでは、今のところLuaLaTeXとjlreqには対応していません。今後の課題です。
367
+ * Re:VIEWそのものではありませんが、TechboosterのRe:VIEWテンプレートではtcolorboxを全面的に採用しており、そのおかげでたとえば角丸のブロックを実現できています。
368
+ @<par>{i}
369
+ ただしtcolorboxを使うとコンパイル時間がかかるようになるので、Starterでは使わないようにしています。
370
+ tcolorboxを使うと見栄えのいいデザインができることは確かなので、今後どうするかは検討中です。
371
+ * Starterでは、環境変数「@<code>|$STARTER_CHAPTER|」を設定することで、特定の章だけをコンパイルできます。
372
+ こうすると全部の章をコンパイルするよりずっと短い時間でコンパイルできるので、表示の確認が迅速にできます。
373
+ @<par>{i}
374
+ Re:VIEWにはこのような機能はありません。
375
+ * Starterでは、@<LaTeX>{}のコンパイル回数を減らす工夫をしています。
376
+ 文章を少しだけ変更して再度コンパイルすると、Starterではコンパイル回数がたいてい1回だけで済みます。
377
+ @<par>{i}
378
+ Re:VIEWではいつも3回コンパイルされるので、PDF生成に時間がかかります。
379
+ * Re:VIEWでは、PDFファイルを生成する「@<code>{review-pdfmaker}」コマンドや、ePubファイルを生成する「@<code>{review-epubmaker}」コマンドが用意されています。
380
+ @<par>{i}
381
+ Re:VIEWではこれらは使えません。必ず「@<code>{rake pdf}」や「@<code>{rake epub}」を使ってください。
382
+ * 「@<code>|rake pdf|」や「@<code>|rake web|」を実行すると、Starterではコンパイルが必ず実行されます。
383
+ @<par>{i}
384
+ Re:VIEWではファイルが更新されていなければコンパイルされません。これは一見便利そうですが、@<LaTeX>{}のスタイルファイルを変更しただけではコンパイルされないため、トラブルのもとになります。
385
+ * Starterでは、設定ファイル「@<file>{config-starter.yml}」の内容を@<LaTeX>{}のスタイルファイルから参照できます。
386
+ 設定によって挙動を変えたい場合に便利です。
387
+ * Starterでは、名前が「@<code>{STARTER_}」で始まる環境変数の値を@<LaTeX>{}のスタイルファイルから参照できます。
388
+ 環境変数によって挙動を変えたい場合に便利です。
389
+ * Starterでは表示を簡潔にするため、@<LaTeX>{}コンパイル時の出力を捨てています。
390
+ コンパイルエラーがあった場合は、出力を捨てないようにコマンドオプションを変更してからもう一度コンパイルすることで、エラーメッセージを表示しています。
391
+ @<par>{i}
392
+ Re:VIEWでも出力は捨てていますが、コンパイルエラーがあった場合はコンパイル時のログファイルを表示しています。
393
+ しかしこの方法だとエラメッセージが少し上のほうに流れてしまうので、@<LaTeX>{}に慣れていない人だとエラーメッセージを見逃してしまいます。
394
+ * PDFファイルを生成するとき、StarterではもとのPDFファイルを削除せずに上書きする(つまりinodeが変わらない)ようにしています。
395
+ このおかげで、macOSの@<code>{open}コマンドでPDFファイルを開くと、同じウィンドウのまま表示されます。
396
+ @<par>{i}
397
+ これに対し、Re:VIEWではもとのPDFファイルを消してから新しいファイルを作成します(つまりinodeが変わる)。
398
+ そのせいで、macOSの@<code>{open}コマンドでPDFファイルを開くと毎回新しいウィンドウで表示されてしまい、いちいち前のウィンドウを閉じる必要があるので面倒です。
399
+ * Starterでは、@<LaTeX>{}のコンパイル時間を表示します。
400
+ 以前は「@<file>{/usr/bin/time}」コマンドが必要でしたが、現在は必要としません。
401
+
402
+
403
+ == エラメッセージ
404
+
405
+ * Starterでは、原稿ファイル(@<file>{*.re})コンパイル時のエラーメッセージを赤い字で表示します。
406
+ 初心者はエラーメッセージが出ても気づかないことが多いので、赤く表示することで気づきやすいようにしました。
407
+ * Starterでは、原稿ファイル(@<file>{*.re})のコンパイル時にエラーがあると、すぐにコンパイルをすぐに終了するようにしました。
408
+ 初心者にとっては、このほうがエラーに気づきやすいはずです。
409
+ @<br>{}
410
+ Re:VIEWではコンパイルエラーがあっても残りのコンパイルを続けるので、エラーメッセージが流れてしまい、初心者はエラーに気づかない可能性が高いです。
411
+
412
+
413
+ == その他
414
+
415
+ * Re:VIEWでは、プロジェクトが使っているRe:VIEWのバージョンをアップデートする機能が用意されています。たとえばRe:VIEW 4を使っているプロジェクトをRe:VIEW 5へアップデートしたいときは、ターミナルで「@<code>|review-update|」コマンドを実行します。
416
+ @<br>{}
417
+ Starterにはプロジェクトをアップデートする機能はありません。
418
+ * Starterでは関連プロジェクトとして、PDFに隠しノンブルをつけるサービス「@<href>{https://kauplan.org/pdfoperation/, PDF Operation}」を提供しています。
@@ -96,21 +96,27 @@
96
96
  : @<file>{sty/starter.sty}
97
97
  Starter独自のスタイルファイルです。
98
98
  ここに書かれた@<LaTeX>{}マクロを変更したい場合は、このファイルを変更するよりも「@<file>{sty/mystyle.sty}」に書いたほうがバージョンアップがしやすくなります。
99
- : @<file>{sty/starter-codeblock.sty.eruby}
100
- プログラムコードやターミナルのカスタマイズ用です。
101
- : @<file>{sty/starter-color.sty.eruby}
99
+ : @<file>{sty/starter-codeblock.sty}
100
+ プログラムコードやターミナルの@<LaTeX>{}マクロが定義されています。
101
+ : @<file>{sty/starter-color.sty}
102
102
  色のカスタマイズ用です。
103
- : @<file>{sty/starter-font.sty.eruby}
103
+ : @<file>{sty/starter-font.sty}
104
104
  フォントのカスタマイズ用です。
105
105
  : @<file>{sty/starter-headline.sty}
106
106
  章(Chapter)や節(Section)や項(Subsection)の@<LaTeX>{}マクロが定義されたファイルです。
107
- : @<file>{sty/starter-note.sty.eruby}
108
- ノートブロックのカスタマイズ用です。
109
- : @<file>{sty/starter-section.sty.eruby}
107
+ : @<file>{sty/starter-note.sty}
108
+ ノートブロックの@<LaTeX>{}マクロが定義されています。
109
+ : @<file>{sty/starter-section.sty}
110
110
  以前の、章や節の@<LaTeX>{}マクロ定義です。
111
111
  もはや使ってませんが、starter.styを書き換えれば使えます。
112
- : @<file>{sty/starter-toc.sty.eruby}
112
+ : @<file>{sty/starter-talklist.sty}
113
+ 会話形式の@<LaTeX>{}マクロが定義されています。
114
+ : @<file>{sty/starter-toc.sty}
113
115
  目次のカスタマイズ用です。
116
+ : @<file>{sty/starter-misc.sty}
117
+ その他、各種のマクロ定義です。
118
+ : @<file>{sty/starter-util.sty}
119
+ Starterのスタイルファイルで使われるマクロが定義されています。
114
120
  : @<file>{style.css}
115
121
  ePubで使われるCSSスタイルファイルです。
116
122
 
@@ -39,7 +39,7 @@ Re:VIEWはver 2.4の頃、「A5サイズのPDFファイルが生成できない
39
39
  //image[slide2][フォントやページサイズを変更できなかった人の証言][scale=1.0]
40
40
 
41
41
  この問題は、「@<em>{geometry.sty}」というスタイルファイルをオプションなしで読み込んでいることが原因です@<fn>{fn-ly58b}。
42
- 具体的は修正方法は@<href>{https://qiita.com/kauplan/items/01dee0249802711d30a6, Qiitaの記事}に書いています。
42
+ 具体的な修正方法は@<href>{https://qiita.com/kauplan/items/01dee0249802711d30a6, Qiitaの記事}に書いています。
43
43
  読めば分かりますが、かなり面倒です。
44
44
 
45
45
  //footnote[fn-ly58b][簡単に書いてますけど、原因が@<em>{geometry.sty}であることを突き止めるのには多くの時間がかかり、正月休みが潰れました。今でも恨んでます。この苦労を知らずに「Re:VIEWでは昔からA5のPDFが簡単に生成できた」と言い張る歴史修正者にはケツバットの刑を与えてやりたいくらいです。]
@@ -102,15 +102,15 @@ Starterを開発するうえで大きな障害になったのが、@<LaTeX>{}と
102
102
  Re:VIEWやMarkdownのようなドキュメント作成ツールでは、一般的に次のような設計にします。
103
103
 
104
104
  1. パーサが入力テキストを解析して、構文木を作る。
105
- 2. 構文木をたどって必要な改変を行う。
105
+ 2. 構文木をたどって必要な改変をする。
106
106
  3. Visitorパターンを使って、構文木をHTMLや@<LaTeX>{}のコードに変換する。
107
107
 
108
108
  このような設計であれば、機能追加は容易です。
109
- 特に、HTMLや@<LaTeX>{}のコードを生成するより@<bou>{前}にすべての入力テキストがパース済みなので、たとえ入力テキストの@<bou>{最後}に書かれたコマンドであろうと、それを認識して@<bou>{先頭}のコードを柔軟に変更できます。
109
+ 特にHTMLや@<LaTeX>{}のコードを生成するより@<bou>{前}にすべての入力テキストがパース済みなので、たとえ入力テキストの@<bou>{最後}に書かれたコマンドであろうと、それを認識して@<bou>{先頭}のコードを柔軟に変更できます。
110
110
 
111
111
  しかしRe:VIEWは構文木を作らず、パースしながらHTMLや@<LaTeX>{}のコードに変換するため、しなくてもいいはずのハックが必要となることがあります。
112
112
 
113
- Starterは将来的にRe:VIEWのパーサをすべて上書きして、構文木を生成するタイプのパーサに置き換えることになるでしょう。
113
+ Starterは将来的にRe:VIEWのパーサをすべて上書きして、構文木を生成するタイプのパーサへ置き換えることになるでしょう。
114
114
 
115
115
 
116
116
  ==[notoc] 開発方針の違い
@@ -131,7 +131,7 @@ Starterは主に、技術書典をはじめとした同人イベントに合わ
131
131
  ===[notoc] 機能選定
132
132
 
133
133
  Re:VIEWは商業誌での利用実績が多いこともあって、「@<href>{https://www.w3.org/TR/jlreq/ja/, 日本語組版処理の要件}」への対応が重視されます。
134
- そのため@<href>{jlreqクラスファイル, https://github.com/abenori/jlreq}が標準でサポートされており、少なくない開発リソースがその対応に割かれています。
134
+ そのため@<href>{https://github.com/abenori/jlreq, jlreqクラスファイル}が標準でサポートされており、少なくない開発リソースがその対応に割かれています。
135
135
  そのせいか、「範囲コメントを実装する」「インライン命令やブロック命令を入れ子に対応させる」「順序つき箇条書きで数字以外を使えるようにする」などの基本機能が、未だに実装されていません。
136
136
 
137
137
  しかし「日本語組版処理の要件」は、読んでみると分かりますが、重箱の隅をつつくような内容がほとんどです。
@@ -145,7 +145,7 @@ Starterでは日本語組版の細かい要件は気にせず、ユーザが必
145
145
 
146
146
  ===[notoc] バグ対応
147
147
 
148
- 今まで、Re:VIEWには約20個ぐらいのバグ報告やPull Requestを出しました。
148
+ 今まで、Re:VIEWには約20個ほどのバグ報告やPull Requestを出しました。
149
149
  取り入れられたものも多いですが、理不尽な理由で拒絶されたものも多いです
150
150
 
151
151
 
@@ -153,7 +153,7 @@ Starterでは日本語組版の細かい要件は気にせず、ユーザが必
153
153
 
154
154
  たとえば、Re:VIEWでは箇条書きの項目が複数行だと勝手に結合されるというバグがあります。
155
155
 
156
- //list[][サンプル]{
156
+ //list[][サンプル][]{
157
157
  * AA AA
158
158
  BB BB
159
159
  CC CC
@@ -200,7 +200,7 @@ Starterでいうと「@<file>{sty/mystyle.sty}」のことですね。
200
200
  昔のRe:VIEWでは、「@<code>|//list|」においてキャプション(説明文)を指定しなくても言語指定をすると、本文とプログラムリストの間が大きく空いてしまうというバグがありました。
201
201
  たとえばこのように書くと:
202
202
 
203
- //list[][サンプル]{
203
+ //list[][サンプル][]{
204
204
  @<b>|//list[][][ruby]|{
205
205
  def fib(n)
206
206
  return n <= 1 ? n : fib(n-1) : fib(n-2)
@@ -250,8 +250,8 @@ Re:VIEWのコードは品質が良くないので、ソースコードを読ん
250
250
  * 設定は、今は設定ファイルを手作業で変更していますが、これはGUIによる設定に置き換わるでしょう。
251
251
  そのため設定ファイルの互換性はなくなる可能性が高いです。
252
252
 
253
- * PDF生成のための組版ツールとして、@<LaTeX>{}以外にBibliostyleをサポートしたいと考えています。
254
- ただしBibliostyleプロジェクトが独自のドキュメント作成ツールを開発中なので、Bibliostyleを必要とする人はそちらを使うだろうから、Starterでの優先順位は高くなくてもいいかなと思っています。
253
+ * PDF生成のための組版ツールとして、@<LaTeX>{}以外にVivliostyleをサポートしたいと考えています。
254
+ ただしVivliostyleプロジェクトが独自のドキュメント作成ツールを開発中なので、Vivliostyleを必要とする人はそちらを使うだろうから、Starterでの優先順位は高くなくてもいいかなと思っています。
255
255
 
256
256
  * 同人イベントがオンラインに移行することから、PDFよりePubの需要が高くなるでしょう。
257
257
  今のStarterはePub対応が弱いので、強化する必要があります。