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.
- checksums.yaml +4 -4
- data/.dockerignore +9 -0
- data/.editorconfig +3 -0
- data/.github/workflows/retrovert.yml +20 -5
- data/.gitignore +1 -0
- data/.vscode/launch.json +48 -0
- data/Gemfile.lock +13 -4
- data/Makefile +24 -0
- data/docker/review.Dockerfile +10 -0
- data/lib/review/retrovert/converter.rb +374 -111
- data/lib/review/retrovert/reviewcompat.rb +57 -0
- data/lib/review/retrovert/reviewdef.rb +70 -0
- data/lib/review/retrovert/sty/{ird.sty → ird.sty.erb} +9 -1
- data/lib/review/retrovert/sty/review-retrovert-custom.sty.erb +6 -0
- data/lib/review/retrovert/utils.rb +35 -0
- data/lib/review/retrovert/version.rb +1 -1
- data/lib/review/retrovert/yamlconfig.rb +0 -1
- data/package-lock.json +6 -0
- data/package.json +1 -0
- data/review-retrovert.gemspec +5 -1
- data/testdata/mybook/.gitignore +3 -1
- data/testdata/mybook/.textlintrc +11 -0
- data/testdata/mybook/Rakefile +8 -0
- data/testdata/mybook/catalog.yml +36 -10
- data/testdata/mybook/config-starter.yml +134 -9
- data/testdata/mybook/config.yml +44 -15
- data/testdata/mybook/contents/00-preface.re +48 -2
- data/testdata/mybook/contents/01-install.re +38 -5
- data/testdata/mybook/contents/02-tutorial.re +333 -113
- data/testdata/mybook/contents/03-syntax.re +2370 -373
- data/testdata/mybook/contents/04-customize.re +424 -88
- data/testdata/mybook/contents/05-faq.re +288 -10
- data/testdata/mybook/contents/06-bestpractice.re +431 -59
- data/testdata/mybook/contents/91-compare.re +402 -2
- data/testdata/mybook/contents/92-filelist.re +14 -8
- data/testdata/mybook/contents/93-background.re +10 -10
- data/testdata/mybook/contents/99-postface.re +2 -1
- data/testdata/mybook/contents/r0-root.re +1 -1
- data/testdata/mybook/css/webstyle.css +180 -2
- data/testdata/mybook/data/terms.txt +3 -0
- data/testdata/mybook/data/words.txt +15 -0
- data/testdata/mybook/images/03-syntax/index-page.png +0 -0
- data/testdata/mybook/images/03-syntax/order-detail.png +0 -0
- data/testdata/mybook/images/04-customize/section_decoration_samples.png +0 -0
- data/testdata/mybook/images/05-faq/dummy-image.png +0 -0
- data/testdata/mybook/images/06-bestpractice/section_title_wlines.png +0 -0
- data/testdata/mybook/images/avatar-b.png +0 -0
- data/testdata/mybook/images/avatar-g.png +0 -0
- data/testdata/mybook/images/avatar-r.png +0 -0
- data/testdata/mybook/images/caution-icon.png +0 -0
- data/testdata/mybook/images/info-icon.png +0 -0
- data/testdata/mybook/images/warning-icon.png +0 -0
- data/testdata/mybook/layouts/layout.html5.erb +3 -1
- data/testdata/mybook/layouts/layout.tex.erb +265 -379
- data/testdata/mybook/layouts/layout.tex.erb.orig +386 -0
- data/testdata/mybook/lib/ruby/review-book.rb +64 -0
- data/testdata/mybook/lib/ruby/review-builder.rb +902 -63
- data/testdata/mybook/lib/ruby/review-compiler.rb +675 -22
- data/testdata/mybook/lib/ruby/review-epubbuilder.rb +33 -0
- data/testdata/mybook/lib/ruby/review-epubmaker.rb +10 -7
- data/testdata/mybook/lib/ruby/review-htmlbuilder.rb +354 -66
- data/testdata/mybook/lib/ruby/review-latexbuilder.rb +429 -146
- data/testdata/mybook/lib/ruby/review-maker.rb +117 -6
- data/testdata/mybook/lib/ruby/review-markdownbuilder.rb +945 -0
- data/testdata/mybook/lib/ruby/review-markdownmaker.rb +91 -0
- data/testdata/mybook/lib/ruby/review-monkeypatch.rb +2 -0
- data/testdata/mybook/lib/ruby/review-pdfmaker.rb +160 -82
- data/testdata/mybook/lib/ruby/review-webmaker.rb +20 -5
- data/testdata/mybook/lib/tasks/review.rake +14 -0
- data/testdata/mybook/lib/tasks/starter.rake +148 -4
- data/testdata/mybook/sty/indexstyle.ist +25 -0
- data/testdata/mybook/sty/mytextsize.sty +29 -0
- data/testdata/mybook/sty/mytitlepage.sty +34 -11
- data/testdata/mybook/sty/review-base.sty +276 -0
- data/testdata/mybook/sty/starter-codeblock.sty +237 -106
- data/testdata/mybook/sty/starter-color.sty +72 -17
- data/testdata/mybook/sty/starter-heading.sty +60 -13
- data/testdata/mybook/sty/starter-misc.sty +894 -0
- data/testdata/mybook/sty/starter-note.sty +67 -14
- data/testdata/mybook/sty/starter-talklist.sty +105 -0
- data/testdata/mybook/sty/starter-util.sty +35 -0
- data/testdata/mybook/sty/starter.sty +8 -526
- metadata +80 -4
data/testdata/mybook/config.yml
CHANGED
@@ -36,6 +36,21 @@ aut:
|
|
36
36
|
- name: カウプラン機関極東支部
|
37
37
|
file-as: カウプランキカンキョクトウシブ
|
38
38
|
|
39
|
+
# (Starter拡張) 奥付に載せるデータ。現在はPDFのみ対応。
|
40
|
+
additional:
|
41
|
+
# 技書博では発行責任者とその連絡先が必須になった。
|
42
|
+
# 詳しくはこのページを参照:
|
43
|
+
# https://esa-pages.io/p/sharing/13039/posts/115/7fbe936149a836eac678.html#奥付の記載
|
44
|
+
- key: 発行者 # サークル名ではなく個人名(ペンネーム可)
|
45
|
+
value:
|
46
|
+
- key: 連絡先 # メールアドレス推奨
|
47
|
+
value:
|
48
|
+
### 連絡先の例:
|
49
|
+
#value:
|
50
|
+
# - xxxxx@example.com # メールアドレス
|
51
|
+
# - https://www.example.com/ # WebサイトURL
|
52
|
+
# - "@xxxxx" # Twitterアカウント(先頭に '@' をつけること)
|
53
|
+
|
39
54
|
# 以下はオプション
|
40
55
|
# 以下はオプション(autと同じように配列書式で複数指定可能)。
|
41
56
|
# 読みの指定はaut:の例を参照。
|
@@ -74,16 +89,18 @@ prt: ○○印刷所
|
|
74
89
|
# a-trl, trl: 翻訳者
|
75
90
|
|
76
91
|
# 刊行日(省略した場合は実行時の日付)
|
77
|
-
date:
|
92
|
+
date: 2021-07-10
|
78
93
|
# 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する
|
79
94
|
# 複数指定する場合は次のように記述する
|
80
95
|
# [["初版第1刷の日付", "初版第2刷の日付"], ["第2版第1刷の日付"]]
|
81
96
|
# 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。
|
82
|
-
history:
|
97
|
+
history:
|
98
|
+
- # 初版
|
99
|
+
- 2021-07-10 ver 1.0 (技術書典11)
|
83
100
|
# [experimental] 新刊を頒布したイベント名(例:「技術書典6(2019年春)新刊」)
|
84
|
-
pubevent_name: 技術書典
|
101
|
+
pubevent_name: 技術書典11(2021年夏)新刊
|
85
102
|
# 権利表記(配列で複数指定可)
|
86
|
-
rights: (C)
|
103
|
+
rights: (C) 2021 カウプラン機関極東支部
|
87
104
|
# description: 説明
|
88
105
|
# subject: 短い説明用タグ(配列で複数指定可)
|
89
106
|
# type: 書籍のカテゴリーなど(配列で複数指定可)
|
@@ -198,6 +215,10 @@ titlepage: true
|
|
198
215
|
# contentdir: null
|
199
216
|
contentdir: contents
|
200
217
|
|
218
|
+
# @<w>命令で使用する単語ファイルのパス。文字コードは必ずUTF-8。
|
219
|
+
# CSV形式 (*.csv) とタブ区切りテキスト (*.txt または *.tsv) が利用可能。
|
220
|
+
words_file: data/words.txt # [f1.csv, f2.txt] のように複数指定も可能
|
221
|
+
|
201
222
|
# 1ページの行数文字数と1kbごとのページ数を用紙サイズで指定する(A5 or B5)。
|
202
223
|
# page_metric: A5
|
203
224
|
#
|
@@ -294,7 +315,7 @@ epubmaker:
|
|
294
315
|
# epubmaker:階層を使うものはここまで
|
295
316
|
|
296
317
|
# LaTeX用のスタイルファイル(styディレクトリ以下に置くこと)
|
297
|
-
texstyle: [reviewmacro, starter,
|
318
|
+
texstyle: [reviewmacro, starter, mytitlepage, mycolophon, mystyle]
|
298
319
|
#
|
299
320
|
# LaTeX用のdocumentclassを指定する
|
300
321
|
# texdocumentclass: ["jsbook", "uplatex,oneside"]
|
@@ -317,7 +338,7 @@ texoptions: "-halt-on-error -file-line-error" # エラー時にインタラク
|
|
317
338
|
dvicommand: dvipdfmx
|
318
339
|
#
|
319
340
|
# LaTeX用のdvi変換コマンドのオプションを指定する
|
320
|
-
dvioptions: "-d 5 -z 3" # -z 9 だと画像を最大圧縮する(ただし時間がかかる)
|
341
|
+
dvioptions: "-q -d 5 -z 3" # -z 9 だと画像を最大圧縮する(ただし時間がかかる)
|
321
342
|
|
322
343
|
# 以下のパラメータを有効にするときには、
|
323
344
|
# pdfmaker:
|
@@ -344,20 +365,28 @@ pdfmaker:
|
|
344
365
|
# 画像のscale=X.Xという指定を画像拡大縮小率からページ最大幅の相対倍率に変換します。
|
345
366
|
# image_scale2width: true
|
346
367
|
#
|
368
|
+
# 索引
|
369
|
+
makeindex: # true なら本の巻末に索引をつける
|
370
|
+
# 索引作成コマンドの設定
|
371
|
+
makeindex_command: upmendex # 索引を生成するコマンド(デフォルト値:mendex)
|
372
|
+
makeindex_options: "-q -g" # 索引見出しを「あ か さ た な は …」にする
|
373
|
+
#makeindex_options: "-q" # 索引見出しを「あ い う え お か …」にする
|
374
|
+
#makeindex_options: "-f -r -I utf8" # (参考:Re:VIEWでのデフォルト値)
|
375
|
+
makeindex_sty: sty/indexstyle.ist # スタイルファイル
|
376
|
+
makeindex_dic: data/terms.txt # 用語の読み仮名が書かれたファイル
|
377
|
+
makeindex_mecab: false # 読み仮名を形態素解析で自動取得するか?
|
378
|
+
makeindex_mecab_opts: "-Oyomi" # 形態素解析エンジン「MeCab」のオプション
|
379
|
+
#
|
347
380
|
# 奥付を作成するか。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
|
348
381
|
colophon: true
|
349
382
|
#
|
350
383
|
# 表紙に配置し、書籍の影絵にも利用する画像ファイル。同人誌の印刷では一般的に、表紙は本文と別ファイルにするので、ここはnullにする。
|
351
384
|
#coverimage: null
|
352
|
-
|
353
|
-
###
|
354
|
-
###
|
355
|
-
###
|
356
|
-
###
|
357
|
-
### ・表紙用PDFファイルは images/ フォルダ直下に置いてください。
|
358
|
-
coverpdf_files: [cover_a5.pdf] # PDFファイル名(複数指定可)(PNGやJPGはダメ)
|
359
|
-
backcoverpdf_files: [] # 裏表紙のPDFファイル名(複数指定可)(PNGやJPGはダメ)
|
360
|
-
coverpdf_option: "offset=-2.3mm 2.3mm" # 必要に応じて微調整すること
|
385
|
+
#
|
386
|
+
### 【注意】次の設定項目は config-starter.yml に移動し、項目名も変わりました。
|
387
|
+
### ・coverpdf_files: => frontcover_pdffile:
|
388
|
+
### ・backcoverpdf_files: => backcover_pdffile:
|
389
|
+
### ・coverpdf_option: => includepdf_option:
|
361
390
|
#
|
362
391
|
# pdfmaker:階層を使うものはここまで
|
363
392
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
= まえがき
|
1
|
+
= まえがき / はじめに
|
2
2
|
|
3
3
|
//centering{
|
4
4
|
**************** @<strong>{注意} ****************
|
@@ -58,7 +58,7 @@ $ @<userinput>{vi catalog.yml} @<balloon>{各章のファイル名を
|
|
58
58
|
本書では次のような人を対象としています。
|
59
59
|
|
60
60
|
* XXXについて興味がある人
|
61
|
-
* XXX
|
61
|
+
* XXXの入門書を読んだ初級者の人(まったくの初心者は対象外です)
|
62
62
|
|
63
63
|
|
64
64
|
====[notoc] 前提とする知識
|
@@ -81,3 +81,49 @@ $ @<userinput>{vi catalog.yml} @<balloon>{各章のファイル名を
|
|
81
81
|
|
82
82
|
本書はXXXX氏とXXXX氏にレビューしていただきました。
|
83
83
|
この場を借りて感謝します。ありがとうございました。
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
//clearpage
|
88
|
+
|
89
|
+
==[notoc] 凡例
|
90
|
+
|
91
|
+
本書では、プログラムコードを次のように表示します。太字は強調を表します。
|
92
|
+
|
93
|
+
//list[][]{
|
94
|
+
print("Hello, @<b>|world|!\n"); @<balloon>{太字は強調}
|
95
|
+
//}
|
96
|
+
|
97
|
+
プログラムコードの差分を表示する場合は、追加されたコードを太字で、削除されたコードを取り消し線で表します。
|
98
|
+
|
99
|
+
//list[][]{
|
100
|
+
@<del>|print("Hello, @<b>|world|!\n");| @<balloon>{取り消し線は削除したコード}
|
101
|
+
@<b>|print("Hello, "+name+"!\n");| @<balloon>{太字は追加したコード}
|
102
|
+
//}
|
103
|
+
|
104
|
+
長い行が右端で折り返されると、折り返されたことを表す小さな記号がつきます。
|
105
|
+
|
106
|
+
//list[][]{
|
107
|
+
123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_
|
108
|
+
//}
|
109
|
+
|
110
|
+
ターミナル画面は、次のように表示します。
|
111
|
+
行頭の「@<code>|$ |」はプロンプトを表し、ユーザが入力するコマンドには薄い下線を引いています。
|
112
|
+
|
113
|
+
//terminal{
|
114
|
+
$ @<userinput>|echo Hello| @<balloon>{行頭の「$ 」はプロンプト、それ以降がユーザ入力}
|
115
|
+
//}
|
116
|
+
|
117
|
+
本文に対する補足情報や注意・警告は、次のようなノートや囲み枠で表示します。
|
118
|
+
|
119
|
+
//note[ノートタイトル]{
|
120
|
+
ノートは本文に対する補足情報です。
|
121
|
+
//}
|
122
|
+
|
123
|
+
//info[タイトル]{
|
124
|
+
本文に対する補足情報です。
|
125
|
+
//}
|
126
|
+
|
127
|
+
//caution[タイトル]{
|
128
|
+
本文に対する注意・警告です。
|
129
|
+
//}
|
@@ -39,6 +39,9 @@ e-upTeX 3.14159265-p3.7.1-u1.22-161114-2.6 (utf8.uptex) (TeX Live 2017/Debian)
|
|
39
39
|
...(省略)...
|
40
40
|
//}
|
41
41
|
|
42
|
+
#@#なおmacOSのようにRubyが使える環境なら、「@<code>|docker pull kauplan/review2.5|」のかわりに「@<code>|rake setup:dockerimage|」を実行してもいいです(内部で同じことを行います)。
|
43
|
+
なおmacOSのようにRubyが使える環境なら、「@<code>|rake setup:dockerimage|」を実行すると自動的に「@<code>|docker pull kauplan/review2.5|」が実行されます。
|
44
|
+
|
42
45
|
|
43
46
|
=== macOSを使っている場合
|
44
47
|
|
@@ -61,14 +64,42 @@ ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
|
|
61
64
|
|
62
65
|
実際の出力結果は上と少し違うはずですが、だいたい合っていればOKです。
|
63
66
|
|
64
|
-
|
67
|
+
また必要なライブラリをインストールするために、以下のコマンドも実行してください(各行の先頭にある「@<code>{$ }」は入力せず、それ以降のコマンドを入力してください)。
|
65
68
|
|
66
69
|
//terminal[][必要なライブラリをインストール]{
|
70
|
+
### Rubyに詳しくない初心者向け
|
71
|
+
$ @<userinput>{rake setup:rubygems}
|
72
|
+
|
73
|
+
### Rubyに詳しい人向け
|
67
74
|
$ @<userinput>{gem install review --version=2.5}
|
68
75
|
$ @<userinput>{review version}
|
69
76
|
2.5.0 @<balloon>{必ず「2.5.0」であること(より新しいバージョンは未サポート)}
|
70
77
|
//}
|
71
78
|
|
79
|
+
//note[macOS標準のRubyでは「gem install」がエラーになる]{
|
80
|
+
macOSには標準でRubyがインストールされていますが、それを使って「@<code>|gem install|」を実行するとエラーになります。
|
81
|
+
|
82
|
+
//terminal[][macOS標準のRubyではgemがインストールできない]{
|
83
|
+
$ gem install review --version=2.5
|
84
|
+
ERROR: While executing gem ... (Gem::FilePermissionError)
|
85
|
+
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
|
86
|
+
//}
|
87
|
+
|
88
|
+
このエラーを回避するには、次のような方法があります。
|
89
|
+
|
90
|
+
- (a) Homebrewなどを使って別のRubyをインストールする。
|
91
|
+
- (b) @<file>{~/.gemrc}に「@<code>{install: --user-install}」という行を追加する。
|
92
|
+
- (c) 「@<file>{rubygems/}」のようなフォルダを作り、そのパスを環境変数@<code>|$GEM_HOME|に設定する。
|
93
|
+
|
94
|
+
しかしRubyやコマンドラインに慣れていない初心者にとっては、どの方法も難しいでしょう。
|
95
|
+
|
96
|
+
そこで、(c)に相当する作業を自動的に行えるようにしました。
|
97
|
+
それが、Rubyに詳しくない初心者向けのコマンド「@<code>|rake setup:rubygems|」です。
|
98
|
+
詳しいことは@<file>{lib/tasks/starter.rake}の中の「@<code>|task :rubygems|」の定義を見てください。
|
99
|
+
また環境変数@<code>|$GEM_HOME|を設定するかわりに、@<file>{Rakefile}の冒頭で@<code>|Gem.path|を設定しています。
|
100
|
+
|
101
|
+
//}
|
102
|
+
|
72
103
|
==== MacTeXのインストール
|
73
104
|
|
74
105
|
次に、MacTeXをダウンロードします。MacTeXとは、macOS用のTeXLiveです。
|
@@ -83,7 +114,7 @@ MacTeXはサイズが大きい(約4GB)ので、本家ではなく以下の
|
|
83
114
|
|
84
115
|
ダウンロードができたら、ダブルクリックしてインストールしてください。
|
85
116
|
|
86
|
-
|
117
|
+
インストールしたらTerminal.appで次のコマンドを入力し、動作を確認してください(各行の先頭にある「@<code>{$ }」は入力せず、それ以降のコマンドを入力してください)。
|
87
118
|
|
88
119
|
//terminal[][MacTeXのインストールができたことを確認]{
|
89
120
|
$ @<userinput>{which uplatex} @<balloon>{下線が引かれたコマンドだけを入力すること}
|
@@ -121,7 +152,7 @@ C:\Users\yourname> @<userinput>{ruby --version} @<balloon>{「ruby --version」
|
|
121
152
|
ruby 2.6.6-1 [x64-mingw32]
|
122
153
|
//}
|
123
154
|
|
124
|
-
|
155
|
+
実際の出力結果は上と少し違うでしょうが、だいたい合っていればOKです。
|
125
156
|
|
126
157
|
また以下のコマンドを実行し、必要なライブラリをインストールします。
|
127
158
|
|
@@ -147,7 +178,7 @@ e-upTeX 3.14159265-p3.7.1-u1.22-161114-2.6 (utf8.uptex) (TeX Live 2020/W32TeX)
|
|
147
178
|
...(以下省略)...
|
148
179
|
//}
|
149
180
|
|
150
|
-
|
181
|
+
実際の出力結果は上と少し違うでしょうが、だいたい合っていればOKです。
|
151
182
|
|
152
183
|
|
153
184
|
== プロジェクトを作成
|
@@ -267,6 +298,8 @@ C:\Users\yourname\mybook> @<userinput>{dir *.pdf} @<balloon>{PDFファイルが
|
|
267
298
|
|
268
299
|
* エラーが発生したときの対処法は@<secref>{02-tutorial|subsec-compileerror}で簡単に説明しています。
|
269
300
|
必ず読んでください。
|
270
|
-
*
|
301
|
+
* HTMLファイルを生成するときは「@<code>{rake web}」(または「@<code>{rake docker:web}」)を実行してください。
|
302
|
+
* ePubファイルを生成するときは「@<code>{rake epub}」(または「@<code>{rake docker:epub}」)を実行してください。
|
303
|
+
* Markdownファイルを生成するときは「@<code>{rake markdown}」(または「@<code>{rake docker:markdown}」)を実行してください。
|
271
304
|
* Starterでは「@<code>{review-pdfmaker}」コマンドや「@<code>{review-epubmaker}」コマンドが使えません(実行はできますが望ましい結果にはなりません)。
|
272
305
|
必ず「@<code>{rake pdf}」や「@<code>{rake epub}」を使ってください。
|
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
|
16
|
-
== 用語の説明
|
16
|
+
=={sec-terminology} 用語の説明
|
17
17
|
|
18
18
|
このあとの説明で使用する用語を紹介します。
|
19
19
|
|
@@ -132,28 +132,28 @@
|
|
132
132
|
@<LaTeX>{}で使うスタイルファイルが置かれるフォルダです。
|
133
133
|
#@# : @<file>{sty/jumoline.sty}
|
134
134
|
#@# @<LaTeX>{}で使うスタイルファイルのひとつです。
|
135
|
-
|
136
|
-
|
137
|
-
|
135
|
+
: @<file>{sty/mycolophon.sty}
|
136
|
+
奥付@<fn>{fn-7ypmf}の内容が書かれたスタイルファイルです。
|
137
|
+
奥付を変更したい場合はこのファイルを編集します。
|
138
138
|
: @<file>{sty/mystyle.sty}
|
139
139
|
ユーザが独自に@<LaTeX>{}マクロを定義・上書きするためのファイルです。
|
140
140
|
中身は空であり、ユーザが自由に追加して構いません。
|
141
141
|
: @<file>{sty/mytextsize.sty}
|
142
142
|
PDFにおける本文の高さと幅を定義したファイルです。
|
143
143
|
@<LaTeX>{}では最初に本文の高さと幅を決める必要があるので、他のスタイルファイルから分離されてコンパイルの最初に読み込めるようになっています。
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
: @<file>{sty/starter
|
144
|
+
: @<file>{sty/mytitlepage.sty}
|
145
|
+
大扉@<fn>{fn-cq9ws}の内容が書かれたスタイルファイルです。
|
146
|
+
大扉のデザインを変更したい場合はこのファイルを編集します。
|
147
|
+
: @<file>{sty/starter*.sty}
|
148
148
|
Starter独自のスタイルファイルです。
|
149
149
|
ここに書かれた@<LaTeX>{}マクロを変更したい場合は、このファイルを変更するよりも「@<file>{sty/mystyle.sty}」に書いたほうがバージョンアップがしやすくなります。
|
150
|
-
: @<file>{sty/starter-headline.sty}
|
151
|
-
章(Chapter)や節(Section)や項(Subsection)の@<LaTeX>{}マクロが定義されたファイルです。
|
150
|
+
#@# : @<file>{sty/starter-headline.sty}
|
151
|
+
#@# 章(Chapter)や節(Section)や項(Subsection)の@<LaTeX>{}マクロが定義されたファイルです。
|
152
152
|
|
153
153
|
|
154
154
|
//footnote[fn-zuxns][原稿ファイルを置くフォルダ名は「@<file>{config.yml}」の「@<code>|contentdir: contents|」で変更できます。]
|
155
|
-
|
156
|
-
|
155
|
+
//footnote[fn-7ypmf][@<em>{奥付}とは、本のタイトルや著者や出版社や版や刷などの情報が書かれたページのことです。通常は本のいちばん最後のページに置かれます。]
|
156
|
+
//footnote[fn-cq9ws][@<em>{大扉}とは、タイトルページのことです。表紙のことではありません。]
|
157
157
|
|
158
158
|
|
159
159
|
== 原稿の追加と変更
|
@@ -169,8 +169,11 @@
|
|
169
169
|
まずはこれを変更してみましょう。
|
170
170
|
|
171
171
|
- (1) まず、お好みのテキストエディタを使って「@<file>{mybook/contents/00-preface.re}」を開いてください。
|
172
|
-
- (2) 次に、先頭の「@<code>{= はじめに}
|
173
|
-
- (3)
|
172
|
+
- (2) 次に、先頭の「@<code>{= はじめに}」の下に何か適当なテキストを追加して(例:@<list>{6f3fh})、原稿ファイルを保存してください。
|
173
|
+
- (3) 原稿ファイルを保存したら、コンパイル@<fn>{fn-r19pw}しましょう。
|
174
|
+
MacならTerminal.app@<fn>{f90kk}、Windowsならコマンドプロンプトを開き、「@<code>{rake pdf}」(またはDockerを使っているなら「@<code>{rake docker:pdf}」)を実行してください。
|
175
|
+
|
176
|
+
//footnote[fn-r19pw][「コンパイル」とは、ここでは原稿ファイルからPDFファイル(またはHTMLやePub)を生成することです。このあとも使う用語なので覚えてください。また用語については@<secref>{sec-terminology}も参照してください。]
|
174
177
|
|
175
178
|
//list[6f3fh][原稿ファイルの内容]{
|
176
179
|
= はじめに
|
@@ -187,7 +190,8 @@
|
|
187
190
|
|
188
191
|
//note[プロジェクトのフォルダに原稿ファイルがあるとコンパイルエラー]{
|
189
192
|
|
190
|
-
|
193
|
+
Starterのデフォルトでは、原稿ファイル(@<file>{*.re})を「@<file>{contents/}」フォルダに置くよう設定されています。
|
194
|
+
この場合、もし原稿ファイルがプロジェクトのフォルダ(たとえば「@<file>{mybook/}」の直下)にあると、コンパイル@<fn>{fn-zt1bb}できずエラーになります。
|
191
195
|
|
192
196
|
エラーになるのは、Starterの仕組みに起因します。
|
193
197
|
Starterではコンパイル時に、「@<file>{contents/}」に置かれた原稿ファイル(@<file>{*.re})をプロジェクトフォルダの直下にコピーしてからコンパイルします)@<fn>{fn-g6oit}。
|
@@ -236,7 +240,7 @@ Starterではコンパイル時に、「@<file>{contents/}」に置かれた原
|
|
236
240
|
本文本文本文
|
237
241
|
//}
|
238
242
|
|
239
|
-
//note[
|
243
|
+
//note[原稿ファイルに番号をつけるべきか]{
|
240
244
|
この例では原稿ファイル名を「@<file>{01-test.re}」にしました。
|
241
245
|
しかしファイル名に「@<file>{01-}」のような番号は、必ずしもつける必要はありません(つけてもいいし、つけなくてもいい)。
|
242
246
|
|
@@ -343,7 +347,7 @@ YAMLについてはGoogle検索で調べてください。
|
|
343
347
|
|
344
348
|
==={subsec-compileerror} コンパイルエラーになったら
|
345
349
|
|
346
|
-
PDF
|
350
|
+
PDFファイルの生成がエラーになったら、以下の点を確認してください。
|
347
351
|
|
348
352
|
* インライン命令がきちんと閉じているか
|
349
353
|
* ブロック命令の引数が足りているか、多すぎないか
|
@@ -358,6 +362,28 @@ PDFファイルを生成するときにエラーになったら、以下の点
|
|
358
362
|
|
359
363
|
詳しくは@<secref>{05-faq|sec-compileerror}を見てください。
|
360
364
|
|
365
|
+
それでもエラーになる場合は、中間ファイルを削除してみましょう。
|
366
|
+
たとえばプロジェクト名が「@<file>{mybook}」だったら、「@<file>{mybook-pdf}」というフォルダが作られているはずです。
|
367
|
+
これを削除してから、コンパイルし直してみてください。
|
368
|
+
|
369
|
+
//terminal[][中間ファイルを削除してコンパイルし直す]{
|
370
|
+
$ @<userinput>{rm -rf mybook-pdf} @<balloon>{中間ファイルを削除して、}
|
371
|
+
$ @<userinput>{rake pdf} @<balloon>{コンパイルし直す}
|
372
|
+
//}
|
373
|
+
|
374
|
+
それでもダメなら、「@<hlink>{https://twitter.com/search?q=%23reviewstarter, #reviewstarter}」というタグでツイートしていただければ、相談に乗ります。
|
375
|
+
|
376
|
+
|
377
|
+
=== 文章をチェックする
|
378
|
+
|
379
|
+
Starterでは、「textlint」というツールを使って原稿の文章をチェックできます。
|
380
|
+
|
381
|
+
たとえば「Starterを使うときれいなPDFを作成@<bou>{することが}できます」という文章は、「Starterを使うときれいなPDFを作成@<bou>{できます}」のように簡潔にできます。
|
382
|
+
このような指摘を行ってくれるのがtextlintです。
|
383
|
+
|
384
|
+
textlintをStarterのプロジェクトで使う方法は、@<secref>{06-bestpractice|sec-textlint}で解説しています。
|
385
|
+
今はまだtextlintを使う必要はありませんが、Starterに慣れてきたら使ってみてください。
|
386
|
+
|
361
387
|
|
362
388
|
|
363
389
|
=={sec-basicsyntax} 基本的な記法
|
@@ -379,27 +405,27 @@ PDFファイルを生成するときにエラーになったら、以下の点
|
|
379
405
|
行コメントは「@<code>{#@#}」で、また範囲コメントは「@<code>{#@+++}」と「@<code>{#@---}」で表します。
|
380
406
|
どちらも行の先頭から始まってないと、コメントとして認識されません。
|
381
407
|
|
382
|
-
//list[][サンプル]{
|
383
|
-
本文1
|
384
|
-
@<b>|#@#|本文2
|
385
|
-
本文3
|
408
|
+
//list[][サンプル][]{
|
409
|
+
本文1。
|
410
|
+
@<b>|#@#|本文2。
|
411
|
+
本文3。
|
386
412
|
|
387
413
|
@<b>|#@+++|
|
388
|
-
本文4
|
414
|
+
本文4。
|
389
415
|
@<b>|#@---|
|
390
|
-
本文5
|
416
|
+
本文5。
|
391
417
|
//}
|
392
418
|
|
393
419
|
//sampleoutputbegin[表示結果]
|
394
420
|
|
395
|
-
本文1
|
396
|
-
#@#本文2
|
397
|
-
本文3
|
421
|
+
本文1。
|
422
|
+
#@#本文2。
|
423
|
+
本文3。
|
398
424
|
|
399
425
|
#@+++
|
400
|
-
本文4
|
426
|
+
本文4。
|
401
427
|
#@---
|
402
|
-
本文5
|
428
|
+
本文5。
|
403
429
|
|
404
430
|
//sampleoutputend
|
405
431
|
|
@@ -414,10 +440,11 @@ PDFファイルを生成するときにエラーになったら、以下の点
|
|
414
440
|
改行は無視されるか、または半角空白扱いになります。
|
415
441
|
通常は1文ごとに改行して書きます。
|
416
442
|
|
417
|
-
//list[][サンプル]{
|
418
|
-
|
443
|
+
//list[][サンプル][]{
|
444
|
+
言葉を慎みたまえ。君はラピュタ王の前にいるのだ。
|
419
445
|
|
420
|
-
|
446
|
+
これから王国の復活を祝って、諸君にラピュタの力を見せてやろうと思ってね。
|
447
|
+
見せてあげよう、ラピュタの雷を!
|
421
448
|
|
422
449
|
旧約聖書にあるソドムとゴモラを滅ぼした天の火だよ。
|
423
450
|
ラーマヤーナではインドラの矢とも伝えているがね。
|
@@ -425,9 +452,10 @@ PDFファイルを生成するときにエラーになったら、以下の点
|
|
425
452
|
|
426
453
|
//sampleoutputbegin[表示結果]
|
427
454
|
|
428
|
-
|
455
|
+
言葉を慎みたまえ。君はラピュタ王の前にいるのだ。
|
429
456
|
|
430
|
-
|
457
|
+
これから王国の復活を祝って、諸君にラピュタの力を見せてやろうと思ってね。
|
458
|
+
見せてあげよう、ラピュタの雷を!
|
431
459
|
|
432
460
|
旧約聖書にあるソドムとゴモラを滅ぼした天の火だよ。
|
433
461
|
ラーマヤーナではインドラの矢とも伝えているがね。
|
@@ -444,7 +472,7 @@ PDFファイルを生成するときにエラーになったら、以下の点
|
|
444
472
|
章(Chapter)や節(Section)といった見出しは、「@<code>{= }」や「@<code>{== }」で始めます。
|
445
473
|
また章には概要を書くといいでしょう。
|
446
474
|
|
447
|
-
//list[][サンプル]{
|
475
|
+
//list[][サンプル][]{
|
448
476
|
@<b>|=| 章(Chapter)見出し
|
449
477
|
|
450
478
|
@<b>|//abstract{|
|
@@ -474,7 +502,8 @@ Starterでは、章(Chapter)は1ファイルにつき1つだけにしてくだ
|
|
474
502
|
|
475
503
|
番号なし箇条書きは「@<code>{ * }」で始めます(先頭に半角空白が必要)。
|
476
504
|
|
477
|
-
//
|
505
|
+
//needvspace[latex][6zw]
|
506
|
+
//list[][サンプル][]{
|
478
507
|
@<b>| * |箇条書き1
|
479
508
|
@<b>| * |箇条書き2
|
480
509
|
@<b>| ** |入れ子の箇条書き
|
@@ -495,7 +524,7 @@ Starterでは、章(Chapter)は1ファイルにつき1つだけにしてくだ
|
|
495
524
|
番号つき箇条書きは「@<code>{ 1. }」のように始める方法と、「@<code>{ - A. }」のように始める方法があります(どちらも先頭に半角空白が必要)。
|
496
525
|
後者では番号の自動採番はされず、指定された文字列がそのまま出力されます。
|
497
526
|
|
498
|
-
//list[][サンプル]{
|
527
|
+
//list[][サンプル][]{
|
499
528
|
@<b>|1.| この記法では数字しか指定できず、
|
500
529
|
@<b>|2.| また入れ子にもできない。
|
501
530
|
|
@@ -528,7 +557,7 @@ Starterでは、章(Chapter)は1ファイルにつき1つだけにしてくだ
|
|
528
557
|
//footnote[axm3t][先頭の半角空白は入れるようにしましょう。過去との互換性のため、先頭の半角空白がなくても動作しますが、箇条書きとの整合性のために半角空白を入れることを勧めます。]
|
529
558
|
//footnote[diwmv][説明文のインデントは、半角空白でもタブ文字でもいいです。]
|
530
559
|
|
531
|
-
//list[][サンプル]{
|
560
|
+
//list[][サンプル][]{
|
532
561
|
@<b>| : |用語1
|
533
562
|
説明文。
|
534
563
|
説明文。
|
@@ -558,17 +587,17 @@ Starterでは、章(Chapter)は1ファイルにつき1つだけにしてくだ
|
|
558
587
|
太字は「@<code>|@@<nop>{}<b>{...}|」で囲み、強調は「@<code>|@@<nop>{}<B>{...}|」または「@<code>|@@<nop>{}<strong>{...}|」で囲みます。
|
559
588
|
強調は、太字になるだけでなくフォントがゴシック体になります。
|
560
589
|
|
561
|
-
//list[][サンプル]{
|
562
|
-
テキスト@<b>|@@<nop>$$<b>{|テキスト@<b>|}
|
590
|
+
//list[][サンプル][]{
|
591
|
+
テキスト@<b>|@@<nop>$$<b>{|テキスト@<b>|}|テキスト。
|
563
592
|
|
564
|
-
テキスト@<b>|@@<nop>$$<B>{|テキスト@<b>|}
|
593
|
+
テキスト@<b>|@@<nop>$$<B>{|テキスト@<b>|}|テキスト。
|
565
594
|
//}
|
566
595
|
|
567
596
|
//sampleoutputbegin[表示結果]
|
568
597
|
|
569
|
-
テキスト@<b>{テキスト}
|
598
|
+
テキスト@<b>{テキスト}テキスト。
|
570
599
|
|
571
|
-
テキスト@<B>{テキスト}
|
600
|
+
テキスト@<B>{テキスト}テキスト。
|
572
601
|
|
573
602
|
//sampleoutputend
|
574
603
|
|
@@ -599,6 +628,16 @@ Starterでは、章(Chapter)は1ファイルにつき1つだけにしてくだ
|
|
599
628
|
//}
|
600
629
|
|
601
630
|
|
631
|
+
=== 等幅フォント
|
632
|
+
|
633
|
+
文字列を等幅フォントで表示するには、「@<code>|@@<nop>{}<tt>{...}|」を使います。
|
634
|
+
ただしこれを使うことはお勧めしません。
|
635
|
+
それよりも、それぞれの用途に合ったインライン命令を使いましょう。
|
636
|
+
|
637
|
+
* プログラムコードやコマンド文字列を表すには「@<code>|@@<nop>{}<code>{...}|」を使ってください。
|
638
|
+
* ファイル名を表すには「@<code>|@@<nop>{}<file>{...}|」を使ってください。
|
639
|
+
|
640
|
+
|
602
641
|
=== プログラムリスト
|
603
642
|
|
604
643
|
プログラムリストは「@<code>|//list[ラベル][説明文]{ ... //}|」で囲みます。
|
@@ -607,7 +646,7 @@ Starterでは、章(Chapter)は1ファイルにつき1つだけにしてくだ
|
|
607
646
|
* 「@<code>|@@<nop>{}<list>{ラベル名}|」のようにプログラムリストを参照できます。
|
608
647
|
* 説明文に「@<code>{]}」を含める場合は、「@<code>{\]}」のようにエスケープします。
|
609
648
|
|
610
|
-
//list[][サンプル]{
|
649
|
+
//list[][サンプル][]{
|
611
650
|
サンプルコードを@<b>|@@<nop>$$<list>{fib1}|に示します。
|
612
651
|
|
613
652
|
@<b>|//list[fib1][フィボナッチ数列]|{
|
@@ -629,7 +668,7 @@ def fib(n):
|
|
629
668
|
|
630
669
|
|
631
670
|
|
632
|
-
第1
|
671
|
+
第1引数と第2引数のどちらも、省略できます。
|
633
672
|
たとえば第1引数だけを省略するには「@<code>|//list[][説明]{|」のようにします。
|
634
673
|
両方とも省略するには「@<code>|//list[][]{|」または「@<code>|//list{|」のようにします。
|
635
674
|
|
@@ -637,7 +676,7 @@ def fib(n):
|
|
637
676
|
たとえば次の例では、追加した箇所を「@<code>|@@<nop>{}<b>{...}|」で@<fn>{0hz8w}、削除した箇所を「@<code>|@@<nop>{}<del>{...}|」で表しています。
|
638
677
|
//footnote[0hz8w][プログラムリストの中では、「@<code>|@@<nop>{}<B>{}|」(強調)ではなく「@<code>|@@<nop>{}<b>{}|」(太字)を使ってください。なぜなら、「@<code>|@@<nop>{}<B>{}|」を使うとフォントが等幅フォントからゴシック体に変更されてしまい、表示がずれてしまうからです。]
|
639
678
|
|
640
|
-
//list[][サンプル]{
|
679
|
+
//list[][サンプル][]{
|
641
680
|
/@<nop>$$/list{
|
642
681
|
function fib(n) {
|
643
682
|
@<b>{@@<nop>$$<del>|}if (n <= 1) { return n; }@<b>{|}
|
@@ -661,8 +700,12 @@ function fib(n) {
|
|
661
700
|
|
662
701
|
|
663
702
|
|
703
|
+
その他、行番号をつけたり外部ファイルを読み込んだりできます。
|
664
704
|
プログラムコードについての詳細は@<secref>{03-syntax|sec-program}を参照してください。
|
665
705
|
|
706
|
+
また出力結果を表す「@<code>|//output|」という命令もあります。
|
707
|
+
詳細は@<secref>{03-syntax|subsec-output}を参照してください。
|
708
|
+
|
666
709
|
//note[ブロック命令]{
|
667
710
|
「@<code>|//list{ ... //}|」のような形式の命令を、@<B>{ブロック命令}といいます。
|
668
711
|
ブロック命令は入れ子にできますが(Starterによる拡張)、できないものもあります。
|
@@ -676,7 +719,7 @@ function fib(n) {
|
|
676
719
|
次の例では、引数にラベル名と説明文字列を指定します。
|
677
720
|
また「@<code>|@@<nop>{}<userinput>{...}|」はユーザ入力を表します。
|
678
721
|
|
679
|
-
//list[][サンプル]{
|
722
|
+
//list[][サンプル][]{
|
680
723
|
@<b>|//terminal[term-1][PDFを生成]{|
|
681
724
|
$ @@<nop>$$<userinput>{rake pdf} @@<nop>$$<balloon>{Dockerを使わない場合}
|
682
725
|
$ @@<nop>$$<userinput>{rake docker:pdf} @@<nop>$$<balloon>{Dockerを使う場合}
|
@@ -704,8 +747,9 @@ $ @<userinput>{rake docker:pdf} @<balloon>{Dockerを使う場合}
|
|
704
747
|
=== 脚注
|
705
748
|
|
706
749
|
脚注は、脚注をつけたい箇所に「@<code>|@@<nop>{}<fn>{ラベル}|」をつけ、段落の終わりに「@<code>|//footnote[ラベル][脚注文]|」を書きます。
|
750
|
+
脚注文の中では「@<code>|]|」を「@<code>|\]|」と書いてください。
|
707
751
|
|
708
|
-
//list[][サンプル]{
|
752
|
+
//list[][サンプル][]{
|
709
753
|
本文テキスト@<b>|@@<nop>$$<fn>{fn-12}|。
|
710
754
|
|
711
755
|
@<b>|//footnote[fn-12][このように脚注文を書きます。]|
|
@@ -730,7 +774,7 @@ $ @<userinput>{rake docker:pdf} @<balloon>{Dockerを使う場合}
|
|
730
774
|
* 画像ファイルの拡張子は指定しません。
|
731
775
|
* ラベルを使って「@<code>|@@<nop>{}<img>{ラベル}|」のように参照できます。
|
732
776
|
|
733
|
-
//list[][サンプル]{
|
777
|
+
//list[][サンプル][]{
|
734
778
|
@<b>|//image[tw-icon][サンプル画像][scale=0.3]|
|
735
779
|
//}
|
736
780
|
|
@@ -750,8 +794,8 @@ Starterでは、画像を入れる位置を指定したり、画像の周りに
|
|
750
794
|
|
751
795
|
Starterでは、本文を補足する文章を「ノート」という囲み枠で表します。
|
752
796
|
|
753
|
-
//list[][サンプル]{
|
754
|
-
|
797
|
+
//list[][サンプル][]{
|
798
|
+
@<b>|//note|[ムスカの苦手なもの]{
|
755
799
|
実は、ムスカには「虫が苦手」という公式な設定があります。
|
756
800
|
有名な『読める、読めるぞ!』のシーンでムスカが顔の周りに群がるハエを追い払うのは、邪魔だったからだけでなく、虫が苦手だったからです。
|
757
801
|
/@<nop>$$/}
|
@@ -771,6 +815,47 @@ Starterでは、本文を補足する文章を「ノート」という囲み枠
|
|
771
815
|
ノート本文には箇条書きやプログラムコードを埋め込めます。
|
772
816
|
詳しくは@<secref>{03-syntax|sec-note}を参照してください。
|
773
817
|
|
818
|
+
また、補足情報や注意喚起や警告を表す囲み枠もあります。
|
819
|
+
詳しくは@<secref>{03-syntax|subsec-miniblock}を参照してください。
|
820
|
+
|
821
|
+
//list[][サンプル][]{
|
822
|
+
@<b>|//info|[解決のヒント]{
|
823
|
+
本製品を手に取り、古くから伝わるおまじないを唱えてみましょう。
|
824
|
+
すると天空の城への門が開きます。
|
825
|
+
/@<nop>$$/}
|
826
|
+
|
827
|
+
@<b>|//caution|[使用上の注意]{
|
828
|
+
本製品を石版にかざすと、天空の城から雷が発射されます。
|
829
|
+
周りに人がいないことを確かめてから使用してください。
|
830
|
+
/@<nop>$$/}
|
831
|
+
|
832
|
+
@<b>|//warning|[重大な警告]{
|
833
|
+
本製品を持ったまま滅びの呪文を唱えると、天空の城は自動的に崩壊します。
|
834
|
+
大変危険ですので、決して唱えないでください。
|
835
|
+
/@<nop>$$/}
|
836
|
+
//}
|
837
|
+
|
838
|
+
//sampleoutputbegin[表示結果]
|
839
|
+
|
840
|
+
//info[解決のヒント]{
|
841
|
+
本製品を手に取り、古くから伝わるおまじないを唱えてみましょう。
|
842
|
+
すると天空の城への門が開きます。
|
843
|
+
//}
|
844
|
+
|
845
|
+
//caution[使用上の注意]{
|
846
|
+
本製品を石版にかざすと、天空の城から雷が発射されます。
|
847
|
+
周りに人がいないことを確かめてから使用してください。
|
848
|
+
//}
|
849
|
+
|
850
|
+
//warning[重大な警告]{
|
851
|
+
本製品を持ったまま滅びの呪文を唱えると、天空の城は自動的に崩壊します。
|
852
|
+
大変危険ですので、決して唱えないでください。
|
853
|
+
//}
|
854
|
+
|
855
|
+
//sampleoutputend
|
856
|
+
|
857
|
+
|
858
|
+
|
774
859
|
|
775
860
|
=== 表
|
776
861
|
|
@@ -781,7 +866,7 @@ Starterでは、本文を補足する文章を「ノート」という囲み枠
|
|
781
866
|
* ヘッダの区切りは「@<code>{-}」または「@<code>{=}」を12個以上並べます。
|
782
867
|
* ラベルを使って「@<code>|@@<nop>{}<table>{ラベル}|」のように参照できます。
|
783
868
|
|
784
|
-
//list[][サンプル]{
|
869
|
+
//list[][サンプル][]{
|
785
870
|
@<b>|//table[tbl-31][サンプル表]{|
|
786
871
|
Name Val1 Val2
|
787
872
|
@<b>|--------------------|
|
@@ -804,6 +889,7 @@ BB 56 78
|
|
804
889
|
|
805
890
|
|
806
891
|
PDFではセルの右寄せ・左寄せ・中央揃えができます。
|
892
|
+
またCSVファイルからデータを読み込めます。
|
807
893
|
詳しくは@<secref>{03-syntax|sec-table}を参照してください。
|
808
894
|
|
809
895
|
|
@@ -811,7 +897,7 @@ PDFではセルの右寄せ・左寄せ・中央揃えができます。
|
|
811
897
|
|
812
898
|
@<LaTeX>{}の書き方を使って数式を記述できます。
|
813
899
|
|
814
|
-
//list[][サンプル]{
|
900
|
+
//list[][サンプル][]{
|
815
901
|
@<b>|//texequation[euler][オイラーの公式]{|
|
816
902
|
e^{i\theta} = \sin{\theta} + i\cos{\theta}
|
817
903
|
@<b>|//}|
|
@@ -834,6 +920,129 @@ e^{i\theta} = \sin{\theta} + i\cos{\theta}
|
|
834
920
|
詳しくは@<secref>{03-syntax|sec-mathexpr}を参照してください。
|
835
921
|
|
836
922
|
|
923
|
+
=== 会話形式
|
924
|
+
|
925
|
+
Starterでは、会話形式も書けます。
|
926
|
+
会話形式は、アイコン画像を使う方法と使わない方法があります。
|
927
|
+
|
928
|
+
//list[][サンプル][]{
|
929
|
+
@<b>|//talklist{|
|
930
|
+
@<b>|//talk[avatar-b]|{
|
931
|
+
あの方は何も盗らなかったわ。私のために闘ってくださったんです。
|
932
|
+
/@<nop>$$/}
|
933
|
+
@<b>|//talk[avatar-g]|{
|
934
|
+
いや、ヤツはとんでもないものを盗んでいきました……
|
935
|
+
あなたの心です。
|
936
|
+
/@<nop>$$/}
|
937
|
+
@<b>|//}|
|
938
|
+
//}
|
939
|
+
|
940
|
+
//sampleoutputbegin[表示結果]
|
941
|
+
|
942
|
+
//talklist{
|
943
|
+
//talk[avatar-b]{
|
944
|
+
あの方は何も盗らなかったわ。私のために闘ってくださったんです。
|
945
|
+
//}
|
946
|
+
//talk[avatar-g]{
|
947
|
+
いや、ヤツはとんでもないものを盗んでいきました……
|
948
|
+
あなたの心です。
|
949
|
+
//}
|
950
|
+
//}
|
951
|
+
|
952
|
+
//sampleoutputend
|
953
|
+
|
954
|
+
|
955
|
+
|
956
|
+
//list[][サンプル][]{
|
957
|
+
@<b>|//talklist{|
|
958
|
+
@<b>|//talk[][クラリス]|{
|
959
|
+
あの方は何も盗らなかったわ。私のために闘ってくださったんです。
|
960
|
+
/@<nop>$$/}
|
961
|
+
@<b>|//talk[][銭形警部]|{
|
962
|
+
いや、ヤツはとんでもないものを盗んでいきました……
|
963
|
+
あなたの心です。
|
964
|
+
/@<nop>$$/}
|
965
|
+
@<b>|//}|
|
966
|
+
//}
|
967
|
+
|
968
|
+
//sampleoutputbegin[表示結果]
|
969
|
+
|
970
|
+
//talklist{
|
971
|
+
//talk[][クラリス]{
|
972
|
+
あの方は何も盗らなかったわ。私のために闘ってくださったんです。
|
973
|
+
//}
|
974
|
+
//talk[][銭形警部]{
|
975
|
+
いや、ヤツはとんでもないものを盗んでいきました……
|
976
|
+
あなたの心です。
|
977
|
+
//}
|
978
|
+
//}
|
979
|
+
|
980
|
+
//sampleoutputend
|
981
|
+
|
982
|
+
|
983
|
+
|
984
|
+
詳しくは@<secref>{03-syntax|sec-talk}を参照してください。
|
985
|
+
|
986
|
+
//note[白黒印刷でも判別できる画像を使う]{
|
987
|
+
このサンプルでは、色が違うだけのアイコン画像を使っています。
|
988
|
+
そのせいで、白黒印刷すると誰が誰だか判別できなくなります。
|
989
|
+
もし白黒印刷するなら、色に頼らず判別できるようなアイコン画像を使いましょう。
|
990
|
+
//}
|
991
|
+
|
992
|
+
//needvspace[latex][4zw]
|
993
|
+
//note[会話形式にしても分かりやすくはならない]{
|
994
|
+
@<B>{会話形式を採用しても、説明が分かりやすくなるとは限りません。}
|
995
|
+
会話形式にすると楽しさや親しみやすさを向上できますが、それは説明の分かりやすさとは違います。
|
996
|
+
|
997
|
+
会話形式だけど説明がよく分からない本はたくさんあります。
|
998
|
+
先生役や先輩役のキャラクターが何かの説明をして、それが読者には伝わっていないのに、生徒役や後輩役のキャラクターが「なるほど!」とか「そういうことか!」と言っているような本、見たことありませんか?
|
999
|
+
先生や先輩の説明を苦もなく理解できるほどの優秀な生徒や後輩は、本の中にしかいません。
|
1000
|
+
|
1001
|
+
同様のことはマンガ形式にもいえます。
|
1002
|
+
分かりやすく説明したいなら分かりやすく説明する技術を学ぶべきであり、マンガにしたり会話形式にすることではありません。
|
1003
|
+
|
1004
|
+
たとえば、『@<href>{https://www.c-r.com/book/detail/1108, わかばちゃんと学ぶ Git使い方入門}』が分かりやすいのはマンガだからではなく、分かりやすく説明する技術を作者の湊川先生が身につけているからです@<fn>{fn-pwgc3}。
|
1005
|
+
@<B>{分かりやすく説明できる人がたまたまマンガで説明しているから分かりやすいのであって、マンガや会話形式にすれば何でも分かりやすくなるわけではありません。}
|
1006
|
+
ここを履き違えないようにしましょう。
|
1007
|
+
//}
|
1008
|
+
|
1009
|
+
//footnote[fn-pwgc3][@<href>{https://www.youtube.com/watch?v=t2eiA2ylNW0, 湊川先生による文章改善の発表動画}を見ると、分かりやすく説明する技術を先生自身が持っていることがよく分かります。]
|
1010
|
+
|
1011
|
+
|
1012
|
+
=== 用語、索引
|
1013
|
+
|
1014
|
+
用語は「@<code>|@@<nop>{}<term>{用語名((よみかた))}|」のように書くとゴシック体で表示され、かつ本の巻末の索引に載ります。
|
1015
|
+
ゴシック体にするけど索引に載せないなら「@<code>|@@<nop>{}<termnoidx>{用語名}|」、ゴシック体にせず索引に載せるなら「@<code>|@@<nop>{}<idx>{用語名((よみかた))}|」、索引に載せるけど表示はしないなら「@<code>|@@<nop>{}<hidx>{用語名((よみかた))}|」とします。
|
1016
|
+
|
1017
|
+
索引は、デフォルトではオフになっています。
|
1018
|
+
索引を使うには、@<file>{config.yml}で「@<code>|makeindex: true|」を設定してください(370行目ぐらいにあります)。
|
1019
|
+
索引は@<LaTeX>{}の機能を使うので、今のところPDFでしかサポートされません。
|
1020
|
+
また索引機能をオンにすると@<LaTeX>{}のコンパイル回数が増えるので、コンパイル時間が延びます。
|
1021
|
+
原稿執筆中はオフにし、完成間近になったらオンにするといいでしょう。
|
1022
|
+
|
1023
|
+
なお索引に登録する用語が何もない場合は、索引を使おうとするとコンパイルエラーになります。
|
1024
|
+
本文に1つでも「@<code>|@@<nop>{}<term>{}|」や「@<code>|@@<nop>{}<idx>{}|」を入れてから索引機能を有効化してください。
|
1025
|
+
|
1026
|
+
Starterでは索引語の親子関係を指定したり、ページ番号のかわりに「〜を見よ」と指定できます。
|
1027
|
+
詳しくは@<secref>{03-syntax|sec-term}を参照してください。
|
1028
|
+
|
1029
|
+
|
1030
|
+
=== 単語展開
|
1031
|
+
|
1032
|
+
キーを単語に展開できます。
|
1033
|
+
たとえば辞書ファイル「@<file>{data/words.txt}」の中に、キー「apple」に対応した単語「アップル」が登録されているとします。
|
1034
|
+
すると、本文に「@<code>|@@<nop>{}<w>{apple}|」と書くと「アップル」に展開されます。
|
1035
|
+
「@<code>|@@<nop>{}<wb>{apple}|」なら展開して太字になります。
|
1036
|
+
また「@<code>|@@<nop>{}<W>{apple}|」なら展開して強調表示します。
|
1037
|
+
#@#「@<code>|@@<nop>{}<wb>{apple}|」なら展開して太字になります(「@<code>|@@<nop>{}<b>{@@<nop>{}<w>{apple}}|」と同じです)。
|
1038
|
+
#@#また「@<code>|@@<nop>{}<W>{apple}|」なら展開して強調表示します(「@<code>|@@<nop>{}<B>{@@<nop>{}<w>{apple}}|」と同じです)。
|
1039
|
+
|
1040
|
+
この機能は、表記が定まっていない単語に使うと便利です。
|
1041
|
+
たとえば「Apple」と「アップル」のどちらの表記にするか悩んでるなら、本文には `@<w>{apple}` と書いておけば、あとから辞書の中身を変えるだけでどちらの表記にも対応できます。
|
1042
|
+
|
1043
|
+
詳しくは@<secref>{03-syntax|sec-words}を参照してください。
|
1044
|
+
|
1045
|
+
|
837
1046
|
|
838
1047
|
=={sec-pdftype} 印刷用PDFと電子用PDF
|
839
1048
|
|
@@ -843,24 +1052,29 @@ Starterでは、印刷用と電子用とを切り替えてPDFファイルを生
|
|
843
1052
|
|
844
1053
|
=== 印刷用と電子用を切り替えてPDFを生成する
|
845
1054
|
|
846
|
-
Starter
|
1055
|
+
Starterでは、印刷用と電子用とを切り替えてPDFを生成できます(デフォルトは印刷用)。
|
1056
|
+
具体的には次のどれかを行います@<fn>{fn-0xkt4}。
|
1057
|
+
|
1058
|
+
* 「@<code>|rake pdf @<b>{t=pbook}|」を実行すると印刷用PDFが生成され、「@<code>|rake pdf @<b>{t=ebook}|」@<fn>{fn-3pf5z}を実行すると電子用PDFが生成される。
|
1059
|
+
* 環境変数「@<code>{$STARTER_TARGET}」を「@<code>|pbook|」に設定してから「`rake pdf`」を実行すると印刷用PDFが生成され、「@<code>|ebook|」に設定してから実行すると電子用PDFが生成される。
|
1060
|
+
* 「@<file>{config-starter.yml}」に設定項目「@<code>{target:}」があるので、これを「@<code>{pbook}」(印刷用)または「@<code>{ebook}」(電子用)に設定する。
|
1061
|
+
|
1062
|
+
//footnote[fn-0xkt4][強制力はこの順序であり、設定ファイルより環境変数のほうが、また環境変数より`rake`コマンドのオプションのほうが優先されます。]
|
1063
|
+
//footnote[fn-3pf5z][「@<code>{pbook}」は「printing book」、「@<code>{ebook}」は「electronic book」を表します。]
|
847
1064
|
|
848
1065
|
//terminal[][macOSやLinuxの場合@<fn>{fn-3pf5z}]{
|
1066
|
+
$ @<userinput>{rake pdf @<b>{t=pbook}} @<balloon>{印刷用PDFを生成}
|
1067
|
+
$ @<userinput>{rake pdf @<b>{t=ebook}} @<balloon>{電子用PDFを生成}
|
1068
|
+
## または
|
849
1069
|
$ @<userinput>{@<b>{export STARTER_TARGET=pbook}} @<balloon>{印刷用に設定}
|
850
1070
|
$ @<userinput>{rake pdf} @<balloon>{またはDockerを使うなら rake docker:pdf}
|
851
|
-
|
852
1071
|
$ @<userinput>{@<b>{export STARTER_TARGET=ebook}} @<balloon>{電子用に設定}
|
853
1072
|
$ @<userinput>{rake pdf} @<balloon>{またはDockerを使うなら rake docker:pdf}
|
854
1073
|
//}
|
855
1074
|
|
856
|
-
//footnote[fn-3pf5z][「@<code>{pbook}」は「printing book」、「@<code>{ebook}」は「electronic book」を表します。]
|
857
|
-
|
858
1075
|
Windowsの場合は、「@<code>{set STARTER_TARGET=pbook}」や「@<code>{set STARTER_TARGET=ebook}」を使って環境変数を設定してください。
|
859
1076
|
|
860
|
-
|
861
|
-
|
862
|
-
ただし、この設定よりも環境変数「@<code>{$STARTER_TARGET}」のほうが優先されます。
|
863
|
-
設定ファイルを変更しても切り替わらなくて困った場合は、環境変数を未設定に戻しましょう。
|
1077
|
+
環境変数を未設定に戻すには、次のようにします。
|
864
1078
|
|
865
1079
|
//terminal[][macOSやLinuxの場合]{
|
866
1080
|
$ @<userinput>{@<b>{unset STARTER_TARGET}} @<balloon>{環境変数を未設定に戻す}
|
@@ -879,7 +1093,11 @@ $ @<userinput>{@<b>{unset STARTER_TARGET}} @<balloon>{環境変数を未設
|
|
879
1093
|
具体的には、見開きにおいて内側の余白を約2cm、外側の余白を約1.5cmにしています@<fn>{fn-yuyf5}。
|
880
1094
|
これは見開きでの読みやすさを確保したうえで本文幅をできるだけ広げるための工夫です。@<br>{}
|
881
1095
|
電子用では見開きを考慮する必要がないので、左右の余白幅は同じに設定されます。
|
882
|
-
:
|
1096
|
+
: ノンブル
|
1097
|
+
印刷用には自動的にノンブルがつき、電子用にはつきません。
|
1098
|
+
「ノンブル」とはすべてのページにつけられる通し番号であり、印刷所に入稿するときに必要です。
|
1099
|
+
ノンブルについての詳細は@<secref>{05-faq|sec-nombre}を参照してください。
|
1100
|
+
: 表紙
|
883
1101
|
印刷用では、表紙がつきません。
|
884
1102
|
なぜなら、表紙のPDFファイルは本文とは別にして印刷所に入稿するからです。@<br>{}
|
885
1103
|
電子用では、(設定されていれば)表紙がつきます@<fn>{fn-yybgl}。
|
@@ -888,72 +1106,65 @@ $ @<userinput>{@<b>{unset STARTER_TARGET}} @<balloon>{環境変数を未設
|
|
888
1106
|
//footnote[fn-yuyf5][余白幅は初期設定によって多少の違いがあります。設定の詳細は「@<file>{sty/mytextsize.sty}」を見てください。]
|
889
1107
|
//footnote[fn-yybgl][表紙のつけ方は@<secref>{04-customize|subsec-coverpdf}を見てください。]
|
890
1108
|
|
891
|
-
またこれらの違いに加えて、印刷用PDFファイルにはノンブルをつける必要があります。
|
892
|
-
詳しくは次で説明します。
|
893
1109
|
|
894
1110
|
|
895
|
-
|
1111
|
+
=={sec-preview} 高速プレビュー
|
1112
|
+
|
1113
|
+
ページ数が多くなると、PDFファイルへのコンパイルに時間がかかるようになり、執筆に支障が出ます。
|
896
1114
|
|
897
|
-
|
898
|
-
ページ番号と似ていますが、次のような違いがあります。
|
1115
|
+
ここでは高速にプレビューするための機能を紹介します。
|
899
1116
|
|
900
|
-
* ページ番号は目次と本文で番号が連続してなかったり、空白ページにはついてなかったりするので、通し番号にはなっていません。
|
901
|
-
ノンブルは全ページを通じて連続した番号になっています。
|
902
|
-
* ページ番号は読者のためにあるので、ページ内で目につくところに置かれます。
|
903
|
-
ノンブルは印刷所だけが分かればいいので(ページの順番を確認するため)、ページ内で目立たない場所に小さく置かれます。
|
904
1117
|
|
905
|
-
|
1118
|
+
=== 指定した章だけをコンパイルする
|
906
1119
|
|
907
|
-
|
908
|
-
|
909
|
-
|
1120
|
+
Starterでは、指定した章(Chapter)だけを@<LaTeX>{}でコンパイルできます。
|
1121
|
+
これは章の数が多い場合や、著者が多数いる合同誌の場合にはとても効果的です。
|
1122
|
+
具体的には次のようにします。
|
910
1123
|
|
911
|
-
|
1124
|
+
* 「@<code>|rake pdf @<b>{c=03-syntax}|」のようにすると、「@<file>{03-syntax.re}」だけをコンパイルします。
|
1125
|
+
* または環境変数「@<code>|$STARTER_CHAPTER|」を設定する方法でも、章を指定できます。
|
912
1126
|
|
913
|
-
//terminal[][
|
914
|
-
$ @<userinput>{rake pdf}
|
915
|
-
|
1127
|
+
//terminal[][例:03-syntax-faq.reだけをコンパイルする]{
|
1128
|
+
$ @<userinput>{@<b>{rake pdf c=03-syntax}} @<balloon>{「.re」はつけない}
|
1129
|
+
### または
|
1130
|
+
$ @<userinput>{@<b>{export STARTER_CHAPTER=03-syntax}} @<balloon>{「.re」はつけない}
|
1131
|
+
$ @<userinput>{rake pdf} @<balloon>{Dockerを使っているなら rake docker:pdf}
|
916
1132
|
//}
|
917
1133
|
|
918
|
-
|
919
|
-
また「@<code>{rake pdf:nombre}」はノンブルをつけるだけであり、再コンパイルはしないので注意してください。
|
1134
|
+
コンパイルする章を指定したとき、Starterは次のような動作になります。
|
920
1135
|
|
921
|
-
|
1136
|
+
* 他の章は無視されます。
|
1137
|
+
* 表紙や、目次や、大扉や、奥付も無視されます。
|
1138
|
+
* @<LaTeX>{}のコンパイル回数が1回だけになります(コンパイル時間を短縮するため)。
|
922
1139
|
|
923
|
-
|
924
|
-
残念ながら、「@<code>{rake pdf:nombre}」でノンブルをつけるとそのフォントがPDFファイルに埋め込まれません(これはPDFファイルを操作しているライブラリの限界によるものです)。
|
925
|
-
そのため、印刷所に入稿するまえにフォントを埋め込む必要があります。
|
1140
|
+
なお「@<code>{$STARTER_CHAPTER}」を設定した場合、全体をコンパイルするときにはリセットしてください。
|
926
1141
|
|
927
|
-
|
1142
|
+
//terminal[][全体をコンパイルする]{
|
1143
|
+
$ @<userinput>{@<b>{unset STARTER_CHAPTER}} @<balloon>{「$」はつけないことに注意}
|
928
1144
|
//}
|
929
1145
|
|
930
1146
|
|
931
|
-
|
1147
|
+
=== コンパイル回数を1回だけに制限する
|
932
1148
|
|
933
|
-
|
1149
|
+
Re:VIEWおよびStarterでは、@<LaTeX>{}のコンパイルが最大で3回行われます@<fn>{mb3pa}。
|
934
1150
|
|
935
|
-
|
1151
|
+
//footnote[mb3pa][索引があると、コンパイル回数がもう1回増えます。]
|
936
1152
|
|
1153
|
+
* 1回目のコンパイルで章や節のページ番号が分かる。
|
1154
|
+
* 2回目のコンパイルで目次が作成される。
|
1155
|
+
* もし2回目のコンパイルでページ番号が変わると、3回目のコンパイルが行われる。
|
937
1156
|
|
938
|
-
|
1157
|
+
しかし、ページ番号が合ってなくてもいいからとにかく仕上がりを確認したい場面はよくあり、そんなときは3回もコンパイルされるのは時間の無駄です。
|
939
1158
|
|
940
|
-
Starter
|
941
|
-
これは章の数が多い場合や、著者が多数いる合同誌の場合にはとても効果的です。
|
1159
|
+
そこでStarterでは、@<LaTeX>{}のコンパイル回数を制限する機能を用意しました。
|
942
1160
|
|
943
|
-
|
944
|
-
|
945
|
-
$ @<userinput>{rake pdf} @<balloon>{Dockerを使っているなら rake docker:pdf}
|
1161
|
+
* 「@<code>|rake pdf @<b>{n=1}|」のようにすると、@<LaTeX>{}のコンパイルが1回しか行われません。
|
1162
|
+
* または環境変数「@<code>|$STARTER_COMPILETIMES|」を「@<code>|1|」に設定する方法でも、同じように制限できます。
|
946
1163
|
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
また表紙や目次や大扉や奥付も無視されます。
|
952
|
-
|
953
|
-
全体をコンパイルする場合は、「@<code>{$STARTER_CHAPTER}」をリセットしてください。
|
954
|
-
|
955
|
-
//terminal[][全体をコンパイルする]{
|
956
|
-
$ @<userinput>{@<b>{unset STARTER_CHAPTER}} @<balloon>{「$」はつけないことに注意}
|
1164
|
+
//terminal[][@<LaTeX>{}のコンパイル回数を1回に制限してコンパイル]{
|
1165
|
+
$ @<userinput>{rake pdf @<b>{n=1} }
|
1166
|
+
### または
|
1167
|
+
$ @<userinput>{@<b>{STARTER_COMPILETIMES=1} rake pdf}
|
957
1168
|
//}
|
958
1169
|
|
959
1170
|
|
@@ -963,18 +1174,27 @@ Starterでは、画像の読み込みを省略する「ドラフトモード」
|
|
963
1174
|
ドラフトモードにすると、画像のかわりに枠線が表示されます。
|
964
1175
|
こうすると、(@<LaTeX>{}のコンパイル時間は変わりませんが)DVIファイルからPDFを生成する時間が短縮されます。
|
965
1176
|
|
966
|
-
|
1177
|
+
図やスクリーンショットが多い場合や、印刷用に高解像度の画像を使っている場合は、この機能は特に効果が高いです。
|
967
1178
|
|
968
|
-
|
1179
|
+
ドラフトモードにするには、次のどれを実行します@<fn>{fn-b5nlc}。
|
969
1180
|
|
970
|
-
|
971
|
-
|
972
|
-
|
1181
|
+
* 「@<code>|rake pdf @<b>{d=on}|」でコンパイルする。
|
1182
|
+
* 環境変数「@<em>{$STARTER_DRAFT}」の値を「@<code>|on|」に設定してからコンパイルする。
|
1183
|
+
* @<file>{config-starter.yml}で「@<code>{draft: true}」を設定してからコンパイルする。
|
973
1184
|
|
974
|
-
|
1185
|
+
//footnote[fn-b5nlc][強制力はこの順序であり、設定ファイルより環境変数のほうが、また環境変数より`rake`コマンドのオプションのほうが優先されます。]
|
1186
|
+
|
1187
|
+
//terminal[][画像読み込みを省略するドラフトモードでPDFを生成する]{
|
1188
|
+
$ @<userinput>{rake pdf @<b>{d=on}} @<balloon>{ドラフトモードをonにする}
|
1189
|
+
### または
|
1190
|
+
$ @<userinput>{export STARTER_DRAFT=on} @<balloon>{ドラフトモードをonにする}
|
1191
|
+
$ @<userinput>{rake pdf} @<balloon>{またはDocker環境なら rake docker:pdf}
|
975
1192
|
//}
|
976
1193
|
|
977
|
-
|
1194
|
+
環境変数の設定をクリアするには、「@<code>|unset STARTER_DRAFT|」を実行してください。
|
1195
|
+
|
1196
|
+
また「ドラフトモードにしてPDF生成時間を短縮したい、でもこの画像は表示して確認したい」というときもあるでしょう。
|
1197
|
+
そんなときは「@<code>|//image[...][...][@<b>{draft=off}]|」のように指定すると、その画像はドラフトモードが解除されてPDFに表示されます。
|
978
1198
|
|
979
1199
|
|
980
1200
|
=== 自動リロードつきHTMLプレビュー
|
@@ -998,11 +1218,11 @@ $ @<userinput>{rake docker:web:server} @<balloon>{Dockerを使っている場
|
|
998
1218
|
いくつか注意点があります。
|
999
1219
|
|
1000
1220
|
* 表示はHTMLで行っているため、PDFでの表示とは差異があります。
|
1001
|
-
執筆中はHTMLでプレビューし、区切りのいいところでPDF
|
1221
|
+
執筆中はHTMLでプレビューし、区切りのいいところでPDFによる表示を確認するといいでしょう。
|
1002
1222
|
* 今のところ数式はプレビューできません。
|
1003
1223
|
* 変更が反映されるのは、開いているページと対応した原稿ファイルが変更された場合だけです。
|
1004
1224
|
たとえば「@<file>{foo.html}」を開いているときに「@<file>{foo.re}」を変更するとプレビューに反映されますが、別の「@<file>{bar.re}」を変更しても反映されません。
|
1005
1225
|
* 画面右上の「Rebuild and Reload」リンクをクリックすると、原稿ファイルが変更されていなくても強制的にコンパイルとリロードがされます。
|
1006
1226
|
* 原稿ファイルに入力間違いがあった場合は、画面にエラーが表示されます。
|
1007
|
-
|
1227
|
+
エラー表示はあまり分かりやすくないので、今後改善される予定です。
|
1008
1228
|
* Webサーバを終了するには、Controlキーを押しながら「c」を押してください。
|