review 3.0.0.preview3 → 3.0.0.preview4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS.ja.md +26 -0
- data/NEWS.md +26 -0
- data/bin/review +2 -0
- data/bin/review-update +19 -0
- data/doc/format.ja.md +11 -0
- data/doc/format.md +11 -1
- data/doc/format_idg.ja.md +2 -4
- data/lib/review/book/chapter.rb +1 -0
- data/lib/review/book/compilable.rb +9 -0
- data/lib/review/book/index.rb +7 -1
- data/lib/review/builder.rb +29 -3
- data/lib/review/compiler.rb +2 -1
- data/lib/review/htmlbuilder.rb +40 -28
- data/lib/review/i18n.rb +8 -0
- data/lib/review/i18n.yml +22 -1
- data/lib/review/idgxmlbuilder.rb +42 -36
- data/lib/review/init.rb +2 -2
- data/lib/review/latexbuilder.rb +27 -1
- data/lib/review/makerhelper.rb +2 -1
- data/lib/review/plaintextbuilder.rb +27 -41
- data/lib/review/rstbuilder.rb +9 -1
- data/lib/review/topbuilder.rb +9 -1
- data/lib/review/update.rb +527 -0
- data/lib/review/version.rb +1 -1
- data/review.gemspec +1 -1
- data/samples/sample-book/README.md +1 -1
- data/samples/sample-book/src/Rakefile +2 -112
- data/samples/sample-book/src/config.yml +3 -1
- data/samples/sample-book/src/lib/tasks/review.rake +113 -0
- data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +17 -0
- data/samples/sample-book/src/sty/reviewmacro.sty +15 -1
- data/samples/syntax-book/Rakefile +2 -87
- data/samples/syntax-book/ch02.re +6 -1
- data/samples/syntax-book/config.yml +7 -4
- data/samples/syntax-book/images/cover-b5.ai +5735 -15
- data/samples/syntax-book/lib/tasks/review.rake +113 -0
- data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +17 -0
- data/samples/syntax-book/sty/reviewmacro.sty +11 -35
- data/templates/latex/config.erb +1 -0
- data/templates/latex/review-jlreq/review-base.sty +4 -0
- data/templates/latex/review-jlreq/review-jlreq.cls +56 -2
- data/templates/latex/review-jlreq/review-style.sty +0 -6
- data/templates/latex/review-jsbook/review-base.sty +5 -0
- data/test/assets/test_template.tex +2 -1
- data/test/assets/test_template_backmatter.tex +2 -1
- data/test/test_htmlbuilder.rb +39 -1
- data/test/test_idgxmlbuilder.rb +24 -0
- data/test/test_latexbuilder.rb +39 -0
- data/test/test_pdfmaker_cmd.rb +1 -1
- data/test/test_plaintextbuilder.rb +19 -0
- data/test/test_topbuilder.rb +21 -0
- data/test/test_update.rb +450 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a903b095f340bf40a4e98b60b691541b9ce7ba19a178db25b88463d9125144ca
|
4
|
+
data.tar.gz: 18f15f4b01e4deb47acbc22538e7d894d84338215f207da3efc22f21621d4ca8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71f9400d75229765b867201152a2bcb7a48d9ce208da28f83adcac2f5f322a37ee0f3efa338b0a012e377c84d75d5c2afc6e9d25ad04306b0a27da7cbea0d75d
|
7
|
+
data.tar.gz: e3e8e3ef0d54aadff4c02206791e2f1c2477c05ec857a7b8ef5cac53d5922a9da99786fa5daf1a00ab7afbdb1a0c5d62ccec0622ffab92201655ad8ffd51c650
|
data/NEWS.ja.md
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
# Version 3.0.0 preview 4
|
2
|
+
## 新機能
|
3
|
+
* 旧バージョンのプロジェクトを新しいバージョンに合わせたものに更新する `review-update` コマンドを導入しました ([#1144])
|
4
|
+
* 式を表す `//texequation` に ID の指定による採番およびキャプションを付けられるようにし、`@<eq>` 命令でその参照もできるようにしました ([#1167])
|
5
|
+
|
6
|
+
## 非互換の変更
|
7
|
+
* IDGXMLBuilder、PlaintextBuilder、TextBuilder において `@<chapref>` の展開結果を独自に作成していたのを止め、ほかのビルダと同様に `chapter_quote` のロケール文字列を使うようにしました ([#1160])
|
8
|
+
|
9
|
+
## バグ修正
|
10
|
+
* samples フォルダ内のサンプル集は preview3 でそのままでは PDF を生成できませんでしたが、`rake pdf` だけで動作するように修正しました ([#1156])
|
11
|
+
|
12
|
+
## 機能強化
|
13
|
+
* PDFMaker: review-jlreq.cls クラスファイルでも hiddenfolio パラメータを利用できるようにしました ([#1147])
|
14
|
+
* EPUBMaker/WEBMaker: imgmath 機能を有効にしたときに、各 `//texequation` に対してフォントサイズを明示して渡すようにしました ([#1146])
|
15
|
+
|
16
|
+
## ドキュメント
|
17
|
+
|
18
|
+
## コントリビューターのみなさん
|
19
|
+
|
20
|
+
[#1144]: https://github.com/kmuto/review/issues/1144
|
21
|
+
[#1146]: https://github.com/kmuto/review/issues/1146
|
22
|
+
[#1147]: https://github.com/kmuto/review/issues/1147
|
23
|
+
[#1156]: https://github.com/kmuto/review/issues/1156
|
24
|
+
[#1160]: https://github.com/kmuto/review/issues/1160
|
25
|
+
[#1167]: https://github.com/kmuto/review/issues/1167
|
26
|
+
|
1
27
|
# Version 3.0.0 preview 3
|
2
28
|
## 新機能
|
3
29
|
* PDFMaker: これまでの jsbook.cls クラスファイルをそのまま使用する方法に代わり、紙・電子双方の書籍制作に適するよう拡張した review-jsbook.cls (jsbook.cls 基盤、デフォルト)、および review-jlreq.cls (jlreq.cls 基盤) を導入しました ([#1032],[#1117])
|
data/NEWS.md
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
# Version 3.0.0 preview 4
|
2
|
+
## New Features
|
3
|
+
* new command `review-update` is added, which updates the setting of the project files to the new version ([#1144])
|
4
|
+
* `texequation` representing an expression can now be numbered and captioned. To reference this you can use the `@<eq>` operator ([#1167])
|
5
|
+
|
6
|
+
## Breaking Changes
|
7
|
+
* In IDGXMLBuilder, PlaintextBuilder, and TextBuilder, the expansion result of `@<chapref>` is no longer created in a unique way. Like other builders, it uses the `chapter_quote` locale string ([#1160])
|
8
|
+
|
9
|
+
## Bug Fixes
|
10
|
+
* samples collection could not generate PDF in preview 3. Now it works with `rake pdf` ([#1156])
|
11
|
+
|
12
|
+
## Enhancements
|
13
|
+
* PDFMaker: support hiddenfolio parameter with review-jlreq.cls ([#1147])
|
14
|
+
* EPUBMaker/WEBMaker: when imgmath function is enabled, font size is passed to each `//texequation` ([#1146])
|
15
|
+
|
16
|
+
## Docs
|
17
|
+
|
18
|
+
## Contributors
|
19
|
+
|
20
|
+
[#1144]: https://github.com/kmuto/review/issues/1144
|
21
|
+
[#1146]: https://github.com/kmuto/review/issues/1146
|
22
|
+
[#1147]: https://github.com/kmuto/review/issues/1147
|
23
|
+
[#1156]: https://github.com/kmuto/review/issues/1156
|
24
|
+
[#1160]: https://github.com/kmuto/review/issues/1160
|
25
|
+
[#1167]: https://github.com/kmuto/review/issues/1167
|
26
|
+
|
1
27
|
# Version 3.0.0 preview 3
|
2
28
|
## New Features
|
3
29
|
* PDFMaker: instead of using jsbook.cls as it is, review-jsbook.cls (based on jsbook.cls, default) and review-jlreq.cls (based on jlreq.cls) are introduced. These supports the creation both paper and electronic PDF books. ([#1032],[#1117])
|
data/bin/review
CHANGED
@@ -25,10 +25,12 @@ usage: review <command> [<args>]
|
|
25
25
|
|
26
26
|
Re:VIEW commands are:
|
27
27
|
init : generate Re:VIEW project directory.
|
28
|
+
update : update Re:VIEW project to newest environment.
|
28
29
|
preproc : preprocess Re:VIEW document file.
|
29
30
|
compile : convert Re:VIEW document file.
|
30
31
|
epubmaker : build EPUB.
|
31
32
|
webmaker : build web pages.
|
33
|
+
epub2html : convert EPUB to single HTML.
|
32
34
|
pdfmaker : build PDF with LaTeX.
|
33
35
|
textmaker : build text files.
|
34
36
|
vol : show volume of Re:VIEW document.
|
data/bin/review-update
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Copyright (c) 2018 Kenshi Muto
|
4
|
+
#
|
5
|
+
# This program is free software.
|
6
|
+
# You can distribute or modify this program under the terms of
|
7
|
+
# the GNU LGPL, Lesser General Public License version 2.1.
|
8
|
+
# For details of the GNU LGPL, see the file "COPYING".
|
9
|
+
|
10
|
+
require 'pathname'
|
11
|
+
|
12
|
+
bindir = Pathname.new(__FILE__).realpath.dirname
|
13
|
+
$LOAD_PATH.unshift((bindir + '../lib').realpath)
|
14
|
+
|
15
|
+
require 'review/update'
|
16
|
+
|
17
|
+
if File.basename($PROGRAM_NAME) == File.basename(__FILE__)
|
18
|
+
ReVIEW::Update.execute(*ARGV)
|
19
|
+
end
|
data/doc/format.ja.md
CHANGED
@@ -573,6 +573,16 @@ LaTeX の式を挿入するには、`//texequation{ 〜 //}` を使います。
|
|
573
573
|
//}
|
574
574
|
```
|
575
575
|
|
576
|
+
「式1.1」のように連番を付けたいときには、識別子とキャプションを指定します。
|
577
|
+
|
578
|
+
```
|
579
|
+
//texequationl[emc][質量とエネルギーの等価性]{
|
580
|
+
\sum_{i=1}^nf_n(x)
|
581
|
+
//}
|
582
|
+
```
|
583
|
+
|
584
|
+
参照するにはインライン命令 `@<eq>` を使います(たとえば `@<eq>{emc}`)。
|
585
|
+
|
576
586
|
インライン命令では `@<m>{〜}` を使います。インライン命令の式中に「}」を含む場合、`\}` とエスケープする必要があることに注意してください(`{` はエスケープ不要)。「インライン命令のフェンス記法」も参照してください。
|
577
587
|
|
578
588
|
LaTeX の数式が正常に整形されるかどうかは処理系に依存します。LaTeX を利用する PDFMaker では問題なく利用できます。
|
@@ -908,6 +918,7 @@ LaTeXビルダを使用している場合:
|
|
908
918
|
* `@<list>{識別子}` : リストを参照します。
|
909
919
|
* `@<img>{識別子}` : 図を参照します。
|
910
920
|
* `@<table>{識別子}` : 表を参照します。
|
921
|
+
* `@<eq>{識別子}` : 式を参照します。
|
911
922
|
* `@<hd>{ラベルまたは見出し}` : 節や項を参照します。
|
912
923
|
* `@<column>{ラベルまたは見出し}` : コラムを参照します。
|
913
924
|
|
data/doc/format.md
CHANGED
@@ -617,6 +617,16 @@ Usage:
|
|
617
617
|
//}
|
618
618
|
```
|
619
619
|
|
620
|
+
If you'd like to assign a number like 'Equation 1.1`, specify the identifier and caption.
|
621
|
+
|
622
|
+
```
|
623
|
+
//texequationl[emc][The Equivalence of Mass and Energy]{
|
624
|
+
\sum_{i=1}^nf_n(x)
|
625
|
+
//}
|
626
|
+
```
|
627
|
+
|
628
|
+
To reference this, use the inline command `@<eq>`.
|
629
|
+
|
620
630
|
There is `@<m>{ ... }` for inline (see "Fence notation for inline commands" section also).
|
621
631
|
|
622
632
|
Whether LaTeX formula is correctly displayed or not depends on the processing system. PDFMaker uses LaTeX internally, so there is no problem.
|
@@ -961,6 +971,7 @@ this is a special line.
|
|
961
971
|
@<list>{program}:: `List 1.5`
|
962
972
|
@<img>{unixhistory}:: `Figure 1.3`
|
963
973
|
@<table>{ascii}:: `Table 1.2`
|
974
|
+
@<eq>{emc2}:: `Equation 1.1`
|
964
975
|
@<hd>{advanced|Other Topics}:: `7-3. Other Topics`
|
965
976
|
@<column>{another-column}:: reference of column.
|
966
977
|
```
|
@@ -1100,4 +1111,3 @@ Sample layout file(layout.html.erb):
|
|
1100
1111
|
</body>
|
1101
1112
|
</html>
|
1102
1113
|
```
|
1103
|
-
|
data/doc/format_idg.ja.md
CHANGED
@@ -4,7 +4,7 @@ Re:VIEW フォーマットから、Adobe 社の DTP ソフトウェア「InDesig
|
|
4
4
|
|
5
5
|
基本のフォーマットのほかにいくつかの拡張命令を追加しています。
|
6
6
|
|
7
|
-
このドキュメントは、Re:VIEW
|
7
|
+
このドキュメントは、Re:VIEW 3.0 に基づいています。
|
8
8
|
|
9
9
|
## 追加したブロック
|
10
10
|
これらのブロックは基本的に特定の書籍向けのものであり、将来廃棄する可能性があります。
|
@@ -27,8 +27,6 @@ Re:VIEW フォーマットから、Adobe 社の DTP ソフトウェア「InDesig
|
|
27
27
|
|
28
28
|
実際にどのような相互参照関係にするかは、処理プログラムに依存します。想定の用途では、章や節の番号およびタイトルを記憶し、labelref の出現箇所に `「節(あるいは章)番号 タイトル」` という文字列を配置します。
|
29
29
|
|
30
|
-
`@<chapref>` の展開形式を、`--chapref="前装飾文字列,中間装飾文字列,後装飾文字列"` でコンパイル実行時に指定できます。デフォルトは`",「,」"`です。たとえば "`第2章「コンパイラ」`" のように普通は展開されます。`"「, ,」"`と指定すると、"`「第2章 コンパイラ」`" に展開されます。
|
31
|
-
|
32
30
|
## 丸数字
|
33
31
|
|
34
32
|
`@<maru>{数値}` で丸数字を出力します。UTF-8 の丸数字を直接使うほうが適切です。
|
@@ -93,7 +91,7 @@ Re:VIEW フォーマットから、Adobe 社の DTP ソフトウェア「InDesig
|
|
93
91
|
|
94
92
|
## 表セル幅の指定
|
95
93
|
|
96
|
-
`//tsize[1列目の幅,2列目の幅,...]` で、続く `//table` の表の列幅を指定します(単位mm)。これを利用するときには、`review compile --target=idgxml` を実行する際、オプション`--table=表幅` を付ける必要があります(表幅の単位は mm)。列幅指定の個数が実際の列数に満たない場合、残りの列は均等分割したものとなります。列幅の合計が表幅を超えると警告が表示されます。
|
94
|
+
`//tsize[|latex|1列目の幅,2列目の幅,...]` で、続く `//table` の表の列幅を指定します(単位mm)。これを利用するときには、`review compile --target=idgxml` を実行する際、オプション`--table=表幅` を付ける必要があります(表幅の単位は mm)。列幅指定の個数が実際の列数に満たない場合、残りの列は均等分割したものとなります。列幅の合計が表幅を超えると警告が表示されます。
|
97
95
|
|
98
96
|
## 表セルの結合やスタイル指定
|
99
97
|
`@<dtp>{table 表オプション}` を各セルに入れることで、そのセルの挙動を制御します。
|
data/lib/review/book/chapter.rb
CHANGED
data/lib/review/book/index.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2008-
|
1
|
+
# Copyright (c) 2008-2018 Minero Aoki, Kenshi Muto
|
2
2
|
# 2002-2007 Minero Aoki
|
3
3
|
#
|
4
4
|
# This program is free software.
|
@@ -128,6 +128,12 @@ module ReVIEW
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
+
class EquationIndex < Index
|
132
|
+
def self.item_type
|
133
|
+
'(texequation)'
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
131
137
|
class FootnoteIndex < Index
|
132
138
|
Item = Struct.new(:id, :number, :content)
|
133
139
|
|
data/lib/review/builder.rb
CHANGED
@@ -248,13 +248,23 @@ module ReVIEW
|
|
248
248
|
end
|
249
249
|
|
250
250
|
def inline_list(id)
|
251
|
-
|
251
|
+
chapter, id = extract_chapter_id(id)
|
252
|
+
if get_chap(chapter)
|
253
|
+
%Q(#{I18n.t('list')}#{I18n.t('format_number', [get_chap(chapter), chapter.list(id).number])})
|
254
|
+
else
|
255
|
+
%Q(#{I18n.t('list')}#{I18n.t('format_number_without_chapter', [chapter.list(id).number])})
|
256
|
+
end
|
252
257
|
rescue KeyError
|
253
258
|
error "unknown list: #{id}"
|
254
259
|
end
|
255
260
|
|
256
261
|
def inline_img(id)
|
257
|
-
|
262
|
+
chapter, id = extract_chapter_id(id)
|
263
|
+
if get_chap(chapter)
|
264
|
+
%Q(#{I18n.t('image')}#{I18n.t('format_number', [get_chap(chapter), chapter.image(id).number])})
|
265
|
+
else
|
266
|
+
%Q(#{I18n.t('image')}#{I18n.t('format_number_without_chapter', [chapter.image(id).number])})
|
267
|
+
end
|
258
268
|
rescue KeyError
|
259
269
|
error "unknown image: #{id}"
|
260
270
|
end
|
@@ -270,11 +280,27 @@ module ReVIEW
|
|
270
280
|
end
|
271
281
|
|
272
282
|
def inline_table(id)
|
273
|
-
|
283
|
+
chapter, id = extract_chapter_id(id)
|
284
|
+
if get_chap(chapter)
|
285
|
+
%Q(#{I18n.t('table')}#{I18n.t('format_number', [get_chap(chapter), chapter.table(id).number])})
|
286
|
+
else
|
287
|
+
%Q(#{I18n.t('table')}#{I18n.t('format_number_without_chapter', [chapter.table(id).number])})
|
288
|
+
end
|
274
289
|
rescue KeyError
|
275
290
|
error "unknown table: #{id}"
|
276
291
|
end
|
277
292
|
|
293
|
+
def inline_eq(id)
|
294
|
+
chapter, id = extract_chapter_id(id)
|
295
|
+
if get_chap(chapter)
|
296
|
+
%Q(#{I18n.t('equation')}#{I18n.t('format_number', [get_chap(chapter), chapter.equation(id).number])})
|
297
|
+
else
|
298
|
+
%Q(#{I18n.t('equation')}#{I18n.t('format_number_without_chapter', [chapter.equation(id).number])})
|
299
|
+
end
|
300
|
+
rescue KeyError
|
301
|
+
error "unknown equation: #{id}"
|
302
|
+
end
|
303
|
+
|
278
304
|
def inline_fn(id)
|
279
305
|
@chapter.footnote(id).content
|
280
306
|
rescue KeyError
|
data/lib/review/compiler.rb
CHANGED
@@ -141,7 +141,7 @@ module ReVIEW
|
|
141
141
|
defblock :bibpaper, 2..3, true
|
142
142
|
defblock :doorquote, 1
|
143
143
|
defblock :talk, 0
|
144
|
-
defblock :texequation, 0
|
144
|
+
defblock :texequation, 0..2
|
145
145
|
defblock :graph, 1..3
|
146
146
|
defblock :indepimage, 1..3, true
|
147
147
|
defblock :numberlessimage, 1..3, true
|
@@ -184,6 +184,7 @@ module ReVIEW
|
|
184
184
|
definline :icon
|
185
185
|
definline :list
|
186
186
|
definline :table
|
187
|
+
definline :eq
|
187
188
|
definline :fn
|
188
189
|
definline :kw
|
189
190
|
definline :ruby
|
data/lib/review/htmlbuilder.rb
CHANGED
@@ -539,7 +539,28 @@ module ReVIEW
|
|
539
539
|
puts '</div>'
|
540
540
|
end
|
541
541
|
|
542
|
-
def texequation(lines)
|
542
|
+
def texequation(lines, id = nil, caption = '')
|
543
|
+
if id
|
544
|
+
texequation_header id, caption
|
545
|
+
end
|
546
|
+
|
547
|
+
texequation_body(lines)
|
548
|
+
|
549
|
+
if id
|
550
|
+
puts '</div>'
|
551
|
+
end
|
552
|
+
end
|
553
|
+
|
554
|
+
def texequation_header(id, caption)
|
555
|
+
puts %Q(<div id="#{normalize_id(id)}" class="caption-equation">)
|
556
|
+
if get_chap
|
557
|
+
puts %Q(<p class="caption">#{I18n.t('equation')}#{I18n.t('format_number_header', [get_chap, @chapter.equation(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}</p>)
|
558
|
+
else
|
559
|
+
puts %Q(<p class="caption">#{I18n.t('equation')}#{I18n.t('format_number_header_without_chapter', [@chapter.equation(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}</p>)
|
560
|
+
end
|
561
|
+
end
|
562
|
+
|
563
|
+
def texequation_body(lines)
|
543
564
|
puts %Q(<div class="equation">)
|
544
565
|
if @book.config['mathml']
|
545
566
|
require 'math_ml'
|
@@ -547,7 +568,9 @@ module ReVIEW
|
|
547
568
|
p = MathML::LaTeX::Parser.new(symbol: MathML::Symbol::CharacterReference)
|
548
569
|
puts p.parse(unescape(lines.join("\n")), true)
|
549
570
|
elsif @book.config['imgmath']
|
550
|
-
|
571
|
+
fontsize = @book.config['imgmath_options']['fontsize'].to_f
|
572
|
+
lineheight = @book.config['imgmath_options']['lineheight'].to_f
|
573
|
+
math_str = "\\begin{equation*}\n\\fontsize{#{fontsize}}{#{lineheight}}\\selectfont\n#{unescape(lines.join("\n"))}\n\\end{equation*}\n"
|
551
574
|
key = Digest::SHA256.hexdigest(math_str)
|
552
575
|
math_dir = File.join(@book.config['imagedir'], '_review_math')
|
553
576
|
Dir.mkdir(math_dir) unless Dir.exist?(math_dir)
|
@@ -1006,54 +1029,43 @@ module ReVIEW
|
|
1006
1029
|
end
|
1007
1030
|
|
1008
1031
|
def inline_list(id)
|
1032
|
+
str = super(id)
|
1009
1033
|
chapter, id = extract_chapter_id(id)
|
1010
|
-
str =
|
1011
|
-
if get_chap(chapter)
|
1012
|
-
"#{I18n.t('list')}#{I18n.t('format_number', [get_chap(chapter), chapter.list(id).number])}"
|
1013
|
-
else
|
1014
|
-
"#{I18n.t('list')}#{I18n.t('format_number_without_chapter', [chapter.list(id).number])}"
|
1015
|
-
end
|
1016
1034
|
if @book.config['chapterlink']
|
1017
|
-
%Q(<span class="listref"><a href="./#{chapter.id}#{extname}##{id}">#{str}</a></span>)
|
1035
|
+
%Q(<span class="listref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
|
1018
1036
|
else
|
1019
1037
|
%Q(<span class="listref">#{str}</span>)
|
1020
1038
|
end
|
1021
|
-
rescue KeyError
|
1022
|
-
error "unknown list: #{id}"
|
1023
1039
|
end
|
1024
1040
|
|
1025
1041
|
def inline_table(id)
|
1042
|
+
str = super(id)
|
1026
1043
|
chapter, id = extract_chapter_id(id)
|
1027
|
-
str =
|
1028
|
-
if get_chap(chapter)
|
1029
|
-
"#{I18n.t('table')}#{I18n.t('format_number', [get_chap(chapter), chapter.table(id).number])}"
|
1030
|
-
else
|
1031
|
-
"#{I18n.t('table')}#{I18n.t('format_number_without_chapter', [chapter.table(id).number])}"
|
1032
|
-
end
|
1033
1044
|
if @book.config['chapterlink']
|
1034
|
-
%Q(<span class="tableref"><a href="./#{chapter.id}#{extname}##{id}">#{str}</a></span>)
|
1045
|
+
%Q(<span class="tableref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
|
1035
1046
|
else
|
1036
1047
|
%Q(<span class="tableref">#{str}</span>)
|
1037
1048
|
end
|
1038
|
-
rescue KeyError
|
1039
|
-
error "unknown table: #{id}"
|
1040
1049
|
end
|
1041
1050
|
|
1042
1051
|
def inline_img(id)
|
1052
|
+
str = super(id)
|
1043
1053
|
chapter, id = extract_chapter_id(id)
|
1044
|
-
str =
|
1045
|
-
if get_chap(chapter)
|
1046
|
-
"#{I18n.t('image')}#{I18n.t('format_number', [get_chap(chapter), chapter.image(id).number])}"
|
1047
|
-
else
|
1048
|
-
"#{I18n.t('image')}#{I18n.t('format_number_without_chapter', [chapter.image(id).number])}"
|
1049
|
-
end
|
1050
1054
|
if @book.config['chapterlink']
|
1051
1055
|
%Q(<span class="imgref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
|
1052
1056
|
else
|
1053
1057
|
%Q(<span class="imgref">#{str}</span>)
|
1054
1058
|
end
|
1055
|
-
|
1056
|
-
|
1059
|
+
end
|
1060
|
+
|
1061
|
+
def inline_eq(id)
|
1062
|
+
str = super(id)
|
1063
|
+
chapter, id = extract_chapter_id(id)
|
1064
|
+
if @book.config['chapterlink']
|
1065
|
+
%Q(<span class="eqref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
|
1066
|
+
else
|
1067
|
+
%Q(<span class="eqref">#{str}</span>)
|
1068
|
+
end
|
1057
1069
|
end
|
1058
1070
|
|
1059
1071
|
def inline_asis(str, tag)
|
data/lib/review/i18n.rb
CHANGED
@@ -59,6 +59,10 @@ module ReVIEW
|
|
59
59
|
@i18n.get(word, locale)
|
60
60
|
end
|
61
61
|
|
62
|
+
def self.set(word, str)
|
63
|
+
@i18n.set(word, str)
|
64
|
+
end
|
65
|
+
|
62
66
|
attr_accessor :locale
|
63
67
|
|
64
68
|
def initialize(locale = nil)
|
@@ -112,6 +116,10 @@ module ReVIEW
|
|
112
116
|
@store[locale][word]
|
113
117
|
end
|
114
118
|
|
119
|
+
def set(word, str)
|
120
|
+
@store[@locale][word] = str
|
121
|
+
end
|
122
|
+
|
115
123
|
def t(str, args = nil)
|
116
124
|
frmt = @store[@locale][str].dup
|
117
125
|
frmt.gsub!('%%', '##')
|
data/lib/review/i18n.yml
CHANGED
@@ -2,6 +2,7 @@ ja:
|
|
2
2
|
image: 図
|
3
3
|
table: 表
|
4
4
|
list: リスト
|
5
|
+
equation: 式
|
5
6
|
column: "コラム「%s」"
|
6
7
|
columnname: "コラム"
|
7
8
|
column_head: "■コラム"
|
@@ -62,11 +63,30 @@ ja:
|
|
62
63
|
advtitle: "広告"
|
63
64
|
profiletitle: "著者紹介"
|
64
65
|
backcovertitle: "裏表紙"
|
66
|
+
"!! No *.yml file with 'review_version' was found. Aborted. !!": "!! 'review_version' を持つ *.yml ファイルが見つかりませんでした。中止します。 !!"
|
67
|
+
"!! %s file(s) is obsoleted. Run 'review-catalog-converter' to convert to 'catalog.yml' and remove old files. Aborted. !!": "!! %s ファイルはもう使われません。'review-catalog-converter' を実行して 'catalog.yml' に変換し、古いファイルは削除してください。中止します。 !!"
|
68
|
+
"** review-update updates your project to %s **": "** review-update はプロジェクトを %s に更新します **"
|
69
|
+
"** There is custom layouts/layout.tex.erb file. Updating may break to make PDF until you fix layout.tex.erb. Do you really proceed to update? **": "** 固有の layouts/layout.tex.erb ファイルが存在します。プロジェクトを更新した後、このファイルを修正しないと、PDF の生成に問題が生じるかもしれません。本当に進めますか? **"
|
70
|
+
"** There is review-ext.rb file. You need to update it by yourself. **": "** review-ext.rb ファイルが存在します。このファイルはご自身で更新してください。 **"
|
71
|
+
"%s: Update '%s' to '%s'?": "%s: '%s' を '%s' に更新しますか?"
|
72
|
+
"%s will be overridden with Re:VIEW version (%s). Do you really proceed?": "%s は Re:VIEW バージョンのもの (%s) で置き換えられます。本当に進めますか?"
|
73
|
+
"%s: 'chapter_quote' now takes 2 values. Update '%s' to '%s'?": "%s: 'chapter_quote' は2つの値を取るようになりました。'%s' を '%s' に更新しますか?"
|
74
|
+
"%s: !! 'texdocumentclass' uses new class '%s' already, but you specified '%s'. This tool can't handle such migration. Ignored. !!": "%s: !! 'texdocumentclass' は新クラス '%s' をすでに使うようになっていますが、'%s' が指定されました。このツールはそのような移行には対応していません。無視します。 !!"
|
75
|
+
"%s: 'texdocumentclass' uses the old class '%s'. By default it is migrated to '%s', but you specify '%s'. Do you really migrate 'texdocumentclass' to '%s'?": "%s: 'texdocumentclass' は旧クラス '%s' を使っています。デフォルトの移行先は '%s' ですが、'%s' が指定されました。本当に 'texdocumentclass' を '%s' に移行しますか?"
|
76
|
+
"%s: 'texdocumentclass' uses the old class '%s'. By default it is migrated to '%s'. Do you really migrate 'texdocumentclass' to '%s'?": "%s: 'texdocumentclass' は旧クラス '%s' を使っています。デフォルトの移行先は '%s' です。本当に 'texdocumentclass' を '%s' に移行しますか?"
|
77
|
+
"%s: previous 'texdocumentclass' option '%s' is safely replaced with '%s'.": "%s: 'texdocumentclass' の古いオプション '%s' は '%s' に安全に置き換えられました。"
|
78
|
+
"%s: previous 'texdocumentclass' option '%s' couldn't be converted fully. '%s' is suggested. Do you really proceed?": "%s: 'texdocumentclass' の古いオプション '%s' は完全には置き換えできませんでした。'%s' を提案します。本当に進めますか?"
|
79
|
+
"%s: ** 'texdocumentclass' specifies '%s'. Because this is unknown class for this tool, you need to update it by yourself if it won't work. **": "%s: ** 'texdocumentclass' はクラス '%s' を指定しています。このツールには未知のクラスなので、もし動作しないようであればご自身で更新する必要があります。 **"
|
80
|
+
"%s: ** '%s' is unknown class. Ignored. **": "%s: ** '%s' は未知のクラスです。無視します。 **"
|
81
|
+
"%s: 'texcommand' has options ('%s'). Move it to 'texoptions'?": "%s: 'texcommand' にオプションがあります ('%s')。'texoptions' に移動しますか?"
|
82
|
+
"%s: 'dvicommand' has options ('%s'). Move it to 'dvioptions'?": "%s: 'dvicommand' にオプションがあります ('%s')。'dvioptions' に移動しますか?"
|
83
|
+
"Finished.": "完了しました。"
|
65
84
|
|
66
85
|
en:
|
67
86
|
image: "Figure "
|
68
87
|
table: "Table "
|
69
88
|
list: "List "
|
89
|
+
equation: "Equation "
|
70
90
|
column: "Column %s"
|
71
91
|
columnname: "Column"
|
72
92
|
column_head: "Column"
|
@@ -131,7 +151,8 @@ en:
|
|
131
151
|
zh-TW:
|
132
152
|
image: 圖
|
133
153
|
table: 表
|
134
|
-
list: List
|
154
|
+
list: "List "
|
155
|
+
equation: "Equation "
|
135
156
|
column: "Column %s"
|
136
157
|
columnname: "Column"
|
137
158
|
column_head: "Column"
|