review 3.0.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-win.yml +39 -0
- data/.github/workflows/ruby.yml +27 -0
- data/.rubocop.yml +50 -12
- data/.travis.yml +17 -8
- data/Dockerfile +21 -5
- data/NEWS.ja.md +358 -0
- data/NEWS.md +358 -1
- data/README.md +11 -8
- data/appveyor.yml +1 -3
- data/bin/review-catalog-converter +4 -4
- data/bin/review-check +8 -8
- data/bin/review-checkdep +1 -1
- data/bin/review-compile +12 -12
- data/bin/review-epubmaker +3 -35
- data/bin/review-idgxmlmaker +16 -0
- data/bin/review-index +2 -89
- data/bin/review-preproc +14 -19
- data/bin/review-validate +3 -3
- data/bin/review-vol +4 -78
- data/doc/LICENSE +1 -1
- data/doc/config.yml.sample +46 -12
- data/doc/config.yml.sample-simple +4 -2
- data/doc/format.ja.md +37 -13
- data/doc/format.md +35 -20
- data/doc/pdfmaker.ja.md +43 -1
- data/doc/pdfmaker.md +42 -1
- data/doc/quickstart.ja.md +46 -26
- data/doc/quickstart.md +38 -17
- data/lib/epubmaker/epubcommon.rb +10 -5
- data/lib/epubmaker/epubv2.rb +1 -1
- data/lib/epubmaker/epubv3.rb +1 -0
- data/lib/epubmaker/producer.rb +4 -2
- data/lib/review/book.rb +1 -1
- data/lib/review/book/base.rb +38 -79
- data/lib/review/book/chapter.rb +18 -3
- data/lib/review/book/compilable.rb +6 -5
- data/lib/review/book/index.rb +69 -101
- data/lib/review/book/index/item.rb +40 -0
- data/lib/review/book/page_metric.rb +7 -7
- data/lib/review/book/part.rb +28 -5
- data/lib/review/book/volume.rb +3 -4
- data/lib/review/builder.rb +105 -44
- data/lib/review/catalog.rb +13 -16
- data/lib/review/compiler.rb +84 -72
- data/lib/review/configure.rb +19 -8
- data/lib/review/epub2html.rb +37 -4
- data/lib/review/epubmaker.rb +62 -7
- data/lib/review/extentions/string.rb +0 -4
- data/lib/review/htmlbuilder.rb +102 -115
- data/lib/review/htmlutils.rb +2 -3
- data/lib/review/i18n.rb +2 -2
- data/lib/review/i18n.yml +9 -0
- data/lib/review/idgxmlbuilder.rb +153 -74
- data/lib/review/idgxmlmaker.rb +191 -0
- data/lib/review/init-web/finish.html +10 -0
- data/lib/review/init-web/index.html +190 -0
- data/lib/review/init-web/review-layout-design.js +691 -0
- data/lib/review/init.rb +125 -34
- data/lib/review/latexbuilder.rb +199 -88
- data/lib/review/lineinput.rb +1 -1
- data/lib/review/location.rb +32 -0
- data/lib/review/logger.rb +4 -8
- data/lib/review/makerhelper.rb +24 -5
- data/lib/review/markdownbuilder.rb +31 -37
- data/lib/review/md2inaobuilder.rb +3 -5
- data/lib/review/pdfmaker.rb +44 -22
- data/lib/review/plaintextbuilder.rb +106 -85
- data/lib/review/preprocessor.rb +32 -41
- data/lib/review/rstbuilder.rb +33 -33
- data/lib/review/textmaker.rb +19 -3
- data/lib/review/textutils.rb +76 -2
- data/lib/review/tocprinter.rb +231 -102
- data/lib/review/topbuilder.rb +114 -61
- data/lib/review/update.rb +19 -19
- data/lib/review/version.rb +1 -1
- data/lib/review/volumeprinter.rb +99 -0
- data/lib/review/webmaker.rb +11 -4
- data/lib/review/webtocprinter.rb +38 -35
- data/lib/review/yamlloader.rb +26 -16
- data/review.gemspec +6 -4
- data/samples/sample-book/README.md +7 -2
- data/samples/sample-book/src/.gitignore +154 -0
- data/samples/sample-book/src/config-ebook.yml +4 -0
- data/samples/sample-book/src/config-jlreq-ebook.yml +4 -0
- data/samples/sample-book/src/config-jlreq.yml +6 -0
- data/samples/sample-book/src/config.yml +2 -2
- data/samples/sample-book/src/lib/tasks/review.rake +29 -14
- data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +14 -8
- data/samples/syntax-book/ch01.re +4 -2
- data/samples/syntax-book/ch02.re +8 -16
- data/samples/syntax-book/ch03.re +3 -6
- data/samples/syntax-book/config-jlreq-lualatex.yml +4 -0
- data/samples/syntax-book/config-jlreq.yml +5 -0
- data/samples/syntax-book/config-print.yml +3 -0
- data/samples/syntax-book/config.yml +1 -1
- data/samples/syntax-book/lib/tasks/review.rake +30 -15
- data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +14 -8
- data/templates/latex/config.erb +16 -0
- data/templates/latex/layout.tex.erb +4 -0
- data/templates/latex/review-jlreq/review-base.sty +150 -61
- data/templates/latex/review-jlreq/review-jlreq.cls +74 -8
- data/templates/latex/review-jlreq/review-style.sty +4 -1
- data/templates/latex/review-jsbook/README.md +39 -0
- data/templates/latex/review-jsbook/review-base.sty +101 -23
- data/templates/latex/review-jsbook/review-jsbook.cls +28 -5
- data/templates/latex/review-jsbook/review-style.sty +5 -2
- data/templates/opf/epubv3.opf.erb +1 -0
- data/templates/web/html/layout-html5.html.erb +2 -2
- data/test/assets/test_template.tex +24 -3
- data/test/assets/test_template_backmatter.tex +24 -3
- data/test/test_book.rb +75 -21
- data/test/test_book_chapter.rb +4 -2
- data/test/test_book_part.rb +3 -3
- data/test/test_builder.rb +16 -0
- data/test/test_catalog.rb +24 -42
- data/test/test_catalog_converter_cmd.rb +1 -1
- data/test/test_epubmaker_cmd.rb +14 -7
- data/test/test_helper.rb +15 -7
- data/test/test_htmlbuilder.rb +909 -159
- data/test/test_i18n.rb +25 -25
- data/test/test_idgxmlbuilder.rb +395 -38
- data/test/test_idgxmlmaker_cmd.rb +46 -0
- data/test/test_image_finder.rb +52 -70
- data/test/test_index.rb +50 -10
- data/test/test_latexbuilder.rb +1194 -106
- data/test/test_latexbuilder_v2.rb +628 -97
- data/test/test_logger.rb +14 -1
- data/test/test_makerhelper.rb +3 -3
- data/test/test_markdownbuilder.rb +134 -16
- data/test/test_md2inaobuilder.rb +32 -9
- data/test/test_pdfmaker.rb +18 -1
- data/test/test_pdfmaker_cmd.rb +100 -6
- data/test/test_plaintextbuilder.rb +371 -25
- data/test/test_preprocessor.rb +2 -16
- data/test/test_rstbuilder.rb +249 -26
- data/test/test_textmaker_cmd.rb +54 -0
- data/test/test_textutils.rb +109 -2
- data/test/test_topbuilder.rb +546 -31
- data/test/test_update.rb +17 -8
- data/test/test_webtocprinter.rb +66 -34
- data/test/test_yamlloader.rb +13 -0
- data/vendor/jsclasses/LICENSE +1 -1
- data/vendor/jsclasses/jis/jsarticle.cls +53 -14
- data/vendor/jsclasses/jis/jsbook.cls +53 -14
- data/vendor/jsclasses/jis/jsclasses.dtx +84 -25
- data/vendor/jsclasses/jis/jslogo.dtx +4 -4
- data/vendor/jsclasses/jis/jslogo.sty +3 -3
- data/vendor/jsclasses/jis/jspf.cls +52 -13
- data/vendor/jsclasses/jis/jsreport.cls +53 -14
- data/vendor/jsclasses/jis/kiyou.cls +53 -14
- data/vendor/jsclasses/jis/okumacro.dtx +4 -5
- data/vendor/jsclasses/jis/okumacro.sty +3 -4
- data/vendor/jsclasses/jsarticle.cls +53 -14
- data/vendor/jsclasses/jsbook.cls +53 -14
- data/vendor/jsclasses/jsclasses.dtx +84 -25
- data/vendor/jsclasses/jsclasses.pdf +0 -0
- data/vendor/jsclasses/jslogo.dtx +4 -4
- data/vendor/jsclasses/jslogo.pdf +0 -0
- data/vendor/jsclasses/jslogo.sty +3 -3
- data/vendor/jsclasses/jspf.cls +52 -13
- data/vendor/jsclasses/jsreport.cls +53 -14
- data/vendor/jsclasses/kiyou.cls +53 -14
- data/vendor/jsclasses/okumacro.dtx +4 -5
- data/vendor/jsclasses/okumacro.pdf +0 -0
- data/vendor/jsclasses/okumacro.sty +3 -4
- metadata +55 -10
- data/lib/review/tocparser.rb +0 -271
- data/samples/syntax-book/review-ext.rb +0 -14
- data/test/test_tocparser.rb +0 -25
@@ -1,17 +1,23 @@
|
|
1
1
|
desc 'copy sty/* files from current Re:VIEW source code (in git repos)'
|
2
|
+
REVIEW_TEMPLATE = ENV['REVIEW_TEMPLATE'] || 'review-jsbook'
|
2
3
|
task :copy_sty do
|
3
4
|
review_rootdir = '../../..'
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
FileUtils.cp file, 'sty'
|
5
|
+
template_dir = File.join(review_rootdir, "templates/latex/#{REVIEW_TEMPLATE}")
|
6
|
+
Dir.glob(File.join(template_dir, '*.cls')) do |file|
|
7
|
+
FileUtils.cp(file, 'sty')
|
8
8
|
end
|
9
|
-
Dir.glob(File.join(
|
10
|
-
FileUtils.cp
|
9
|
+
Dir.glob(File.join(template_dir, 'review-*.sty')) do |file|
|
10
|
+
FileUtils.cp(file, 'sty')
|
11
|
+
end
|
12
|
+
|
13
|
+
if REVIEW_TEMPLATE == 'review-jsbook'
|
14
|
+
jsbook_dir = File.join(review_rootdir, 'vendor/jsclasses')
|
15
|
+
FileUtils.cp(File.join(jsbook_dir, 'jsbook.cls'), 'sty/jsbook.cls')
|
16
|
+
gentombow_dir = File.join(review_rootdir, 'vendor/gentombow')
|
17
|
+
FileUtils.cp(File.join(gentombow_dir, 'gentombow.sty'), 'sty/gentombow.sty')
|
11
18
|
end
|
12
|
-
FileUtils.cp File.join(gentombow_dir, 'gentombow.sty'), 'sty/gentombow09j.sty'
|
13
19
|
end
|
14
20
|
|
15
|
-
CLEAN.include([Dir.glob('sty/review-*.sty'), 'sty
|
21
|
+
CLEAN.include([Dir.glob('sty/review-*.sty'), 'sty/*.cls', 'sty/gentombow.sty'])
|
16
22
|
|
17
23
|
Rake::Task[BOOK_PDF].enhance([:copy_sty])
|
data/samples/syntax-book/ch01.re
CHANGED
@@ -104,7 +104,7 @@ olnumで一応番号が変更可能なことを期待していますが、Webブ
|
|
104
104
|
=== 用語リスト
|
105
105
|
用語リスト(HTMLの@<i>{dl}、TeXの@<i>{description})は@<i>{スペース}+@<tt>{:}+@<i>{スペース}で見出しを、説明は行頭にタブかスペースを入れて表現します。
|
106
106
|
|
107
|
-
: Alpha@<b>{bold太字}@<i>{italicイタ}@<tt>{等幅code}
|
107
|
+
: Alpha@<b>{bold太字}@<i>{italicイタ}@<tt>{等幅code}@<fn>{foot1}
|
108
108
|
@<i>{DEC}の作っていた@<b>{RISC CPU}。@<i>{italicイタ}@<tt>{等幅code}
|
109
109
|
浮動小数点数演算が速い。
|
110
110
|
: POWER
|
@@ -114,10 +114,12 @@ olnumで一応番号が変更可能なことを期待していますが、Webブ
|
|
114
114
|
Sunが作っているRISC CPU。
|
115
115
|
CPU数を増やすのが得意。
|
116
116
|
|
117
|
+
//footnote[foot1][箇条書き見出しへの脚注。]
|
118
|
+
|
117
119
|
//emlist{
|
118
120
|
@<b>{bold太字}@<i>{italicイタ}
|
119
121
|
|
120
|
-
: Alpha@<embed>{@}<b>{bold太字}@<embed>{@}<i>{italicイタ}@<embed>{@}<tt>{等幅code}
|
122
|
+
: Alpha@<embed>{@}<b>{bold太字}@<embed>{@}<i>{italicイタ}@<embed>{@}<tt>{等幅code}@<fn>{foot1}
|
121
123
|
@<embed>{@}<i>{DEC}の作っていた@<embed>{@}<b>{RISC CPU}。@<embed>{@}<i>{italicイタ}@<embed>{@}<tt>{等幅code}
|
122
124
|
浮動小数点数演算が速い。
|
123
125
|
: POWER
|
data/samples/syntax-book/ch02.re
CHANGED
@@ -49,9 +49,9 @@ print('hello');
|
|
49
49
|
puts 'Hello'
|
50
50
|
//}
|
51
51
|
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
//source{
|
53
|
+
puts 'Hello'
|
54
|
+
//}
|
55
55
|
|
56
56
|
実行例を示すとき用にはcmdを用意しています。いずれにせよ、商業書籍レベルでは必要なので用意しているものの、原稿レベルで書き手が使うコードブロックはほどほどの数に留めておいたほうがいいのではないかと思います。TeX版の紙面ではデフォルトは黒アミ。印刷によってはベタ黒塗りはちょっと怖いかもなので、あまり長々したものには使わないほうがいいですね。
|
57
57
|
|
@@ -62,12 +62,7 @@ $ @{ls /}
|
|
62
62
|
=== 図
|
63
63
|
採番・キャプション付きの図の貼り付けはimageを使用します(@<img>{ball})。図版ファイルは識別子とビルダが対応しているフォーマットから先着順に探索されます。詳細については@<href>{https://github.com/kmuto/review/wiki/ImagePath, ImagePath}のドキュメントを参照してください。
|
64
64
|
|
65
|
-
|
66
|
-
本当はimageのキャプションにfootnoteを付けたいのですが、TeXではエラーになりますね。厳しい……。
|
67
|
-
#@# FIXME:TeXのキャプションfootnote問題
|
68
|
-
|
69
|
-
#@# //image[ball][ボール@<fn>{madebygimp}]{
|
70
|
-
//image[ball][ボール]{
|
65
|
+
//image[ball][ボール@<fn>{madebygimp}]{
|
71
66
|
//}
|
72
67
|
|
73
68
|
//footnote[madebygimp][GIMPのフィルタで作成。@<br>{}footnote内改行]
|
@@ -86,11 +81,8 @@ $ @{ls /}
|
|
86
81
|
=== 表
|
87
82
|
表はtableを使います。@<table>{tab2-1}
|
88
83
|
|
89
|
-
table
|
90
|
-
|
91
|
-
|
92
|
-
#@# //table[tab2-1][表の@<b>{例}@<fn>{tabalign}]{
|
93
|
-
//table[tab2-1][表の@<b>{例}]{
|
84
|
+
//table[tab2-1][表の@<b>{例}@<fn>{tabalign}]{
|
85
|
+
#@#//table[tab2-1][表の@<b>{例}]{
|
94
86
|
A B C
|
95
87
|
----------------------------------
|
96
88
|
D E@<b>{太字bold}@<i>{italicイタ}@<tt>{等幅code} F@<br>{}G
|
@@ -111,7 +103,7 @@ D E@{太字bold}@{italicイタ}@{等幅code} F@
{}G |
|
111
103
|
H I 長いセルの折り返し■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
|
112
104
|
//}
|
113
105
|
|
114
|
-
TeXの普通のクラスファイルだと、列指定はl,c,r,p
|
106
|
+
TeXの普通のクラスファイルだと、列指定はl,c,r,p(幅指定+左均等)しかないのですが、Re:VIEWのスタイルファイルでL(幅指定+左寄せ,均等なし)、C(幅指定+中寄せ)、R(幅指定+右寄せ)を指定可能です。
|
115
107
|
|
116
108
|
あとは縦に長い表がTeXだとそのままはみ出してしまうのでlongtableがあるけれどもそれはまた問題がいろいろあり……。
|
117
109
|
|
@@ -324,6 +316,7 @@ a_{m1} & \cdots & a_{mn}
|
|
324
316
|
網カケ@<ami>{amiアミ} @<balloon>{ふきだし説明}
|
325
317
|
//}
|
326
318
|
|
319
|
+
=== 見出し内 @<b>{BOLD},@<i>{ITALIC},@<tt>{TT},@<strong>{STRONG},@<em>{EM},@<code>{CODE},@<ttb>{TTB},@<tti>{TTI},@<ami>{AMI},@<bou>{BOU},@<kw>{KW},@<u>{UNDERLINE}
|
327
320
|
|
328
321
|
==={crossref} 参照
|
329
322
|
#@# FIXME:任意ラベルを使うと、EPUBチェックエラーになることがある?
|
@@ -331,7 +324,6 @@ a_{m1} & \cdots & a_{mn}
|
|
331
324
|
* 章番号:@<chap>{ch01}、@<chap>{appA}、@<chap>{part2}、@<chap>{bib}
|
332
325
|
* 章題:@<title>{ch01}、@<title>{part2}、@<title>{appA}、@<title>{bib}
|
333
326
|
* 章番号+題:@<chapref>{ch02}、@<chapref>{part2}、@<chapref>{appA}、@<chapref>{bib}
|
334
|
-
#@# FIXME:TeXで、部が実際のページではIIなのに参照では2になっているのはおかしい→i18n.ymlがおかしいせいか
|
335
327
|
|
336
328
|
節や項への参照はhdを使います。
|
337
329
|
|
data/samples/syntax-book/ch03.re
CHANGED
@@ -18,16 +18,13 @@
|
|
18
18
|
puts "Re:VIEW is #{impression}."
|
19
19
|
//}
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
//image[img3-1][適当に作ったコラム内画像]{
|
22
|
+
//}
|
23
23
|
|
24
24
|
//indepimage[img3-1][適当に作ったコラム内画像]{
|
25
25
|
//}
|
26
26
|
|
27
|
-
|
28
|
-
もだめですね。
|
29
|
-
|
30
|
-
//table{
|
27
|
+
//table[tab3-1][コラム表]{
|
31
28
|
A B
|
32
29
|
---------------------
|
33
30
|
C D
|
@@ -0,0 +1,5 @@
|
|
1
|
+
# call me by 'REVIEW_TEMPLATE=review-jlreq REVIEW_CONFIG_FILE=config-jlreq.yml rake pdf'
|
2
|
+
inherit: ["config.yml"]
|
3
|
+
# texdocumentclass: ["review-jlreq", "media=print,paper=b5"]
|
4
|
+
texdocumentclass: ["review-jlreq", "media=ebook,paper=b5"]
|
5
|
+
# texdocumentclass: ["review-jlreq", "media=print,paper=b5,bleed_margin=3mm,cover=true,Q=14,startpage=3,serial_pagination=true,hiddenfolio=nikko-pc"]
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2006-
|
1
|
+
# Copyright (c) 2006-2020 Minero Aoki, Kenshi Muto, Masayoshi Takahashi, Masanori Kado.
|
2
2
|
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
# of this software and associated documentation files (the "Software"), to deal
|
@@ -21,7 +21,7 @@
|
|
21
21
|
require 'fileutils'
|
22
22
|
require 'rake/clean'
|
23
23
|
|
24
|
-
BOOK = ENV['REVIEW_BOOK'] || 'book'
|
24
|
+
BOOK = ENV['REVIEW_BOOK'] || 'syntax-book'
|
25
25
|
BOOK_PDF = BOOK + '.pdf'
|
26
26
|
BOOK_EPUB = BOOK + '.epub'
|
27
27
|
CONFIG_FILE = ENV['REVIEW_CONFIG_FILE'] || 'config.yml'
|
@@ -29,15 +29,21 @@ CATALOG_FILE = ENV['REVIEW_CATALOG_FILE'] || 'catalog.yml'
|
|
29
29
|
WEBROOT = ENV['REVIEW_WEBROOT'] || 'webroot'
|
30
30
|
TEXTROOT = BOOK + '-text'
|
31
31
|
TOPROOT = BOOK + '-text'
|
32
|
+
IDGXMLROOT = BOOK + '-idgxml'
|
33
|
+
PDF_OPTIONS = ENV['REVIEW_PDF_OPTIONS'] || ''
|
34
|
+
EPUB_OPTIONS = ENV['REVIEW_EPUB_OPTIONS'] || ''
|
35
|
+
WEB_OPTIONS = ENV['REVIEW_WEB_OPTIONS'] || ''
|
36
|
+
IDGXML_OPTIONS = ENV['REVIEW_IDGXML_OPTIONS'] || ''
|
37
|
+
TEXT_OPTIONS = ENV['REVIEW_TEXT_OPTIONS'] || ''
|
32
38
|
|
33
39
|
def build(mode, chapter)
|
34
|
-
sh
|
40
|
+
sh("review-compile --target=#{mode} --footnotetext --stylesheet=style.css #{chapter} > tmp")
|
35
41
|
mode_ext = { 'html' => 'html', 'latex' => 'tex', 'idgxml' => 'xml', 'top' => 'txt', 'plaintext' => 'txt' }
|
36
|
-
FileUtils.mv
|
42
|
+
FileUtils.mv('tmp', chapter.gsub(/re\z/, mode_ext[mode]))
|
37
43
|
end
|
38
44
|
|
39
45
|
def build_all(mode)
|
40
|
-
sh
|
46
|
+
sh("review-compile --target=#{mode} --footnotetext --stylesheet=style.css")
|
41
47
|
end
|
42
48
|
|
43
49
|
task default: :html_all
|
@@ -74,12 +80,17 @@ task web: WEBROOT
|
|
74
80
|
|
75
81
|
desc 'generate text file (without decoration)'
|
76
82
|
task plaintext: TEXTROOT do
|
77
|
-
sh "review-textmaker -n #{CONFIG_FILE}"
|
83
|
+
sh "review-textmaker #{TEXT_OPTIONS} -n #{CONFIG_FILE}"
|
78
84
|
end
|
79
85
|
|
80
86
|
desc 'generate (decorated) text file'
|
81
87
|
task text: TOPROOT do
|
82
|
-
sh "review-textmaker #{CONFIG_FILE}"
|
88
|
+
sh "review-textmaker #{TEXT_OPTIONS} #{CONFIG_FILE}"
|
89
|
+
end
|
90
|
+
|
91
|
+
desc 'generate IDGXML file'
|
92
|
+
task idgxml: IDGXMLROOT do
|
93
|
+
sh "review-idgxmlmaker #{IDGXML_OPTIONS} #{CONFIG_FILE}"
|
83
94
|
end
|
84
95
|
|
85
96
|
desc 'generate EPUB file'
|
@@ -92,22 +103,26 @@ SRC_EPUB = FileList['*.css']
|
|
92
103
|
SRC_PDF = FileList['layouts/*.erb', 'sty/**/*.sty']
|
93
104
|
|
94
105
|
file BOOK_PDF => SRC + SRC_PDF do
|
95
|
-
FileUtils.rm_rf
|
96
|
-
sh "review-pdfmaker #{CONFIG_FILE}"
|
106
|
+
FileUtils.rm_rf([BOOK_PDF, BOOK, BOOK + '-pdf'])
|
107
|
+
sh "review-pdfmaker #{PDF_OPTIONS} #{CONFIG_FILE}"
|
97
108
|
end
|
98
109
|
|
99
110
|
file BOOK_EPUB => SRC + SRC_EPUB do
|
100
|
-
FileUtils.rm_rf
|
101
|
-
sh "review-epubmaker #{CONFIG_FILE}"
|
111
|
+
FileUtils.rm_rf([BOOK_EPUB, BOOK, BOOK + '-epub'])
|
112
|
+
sh "review-epubmaker #{EPUB_OPTIONS} #{CONFIG_FILE}"
|
102
113
|
end
|
103
114
|
|
104
115
|
file WEBROOT => SRC do
|
105
|
-
FileUtils.rm_rf
|
106
|
-
sh "review-webmaker #{CONFIG_FILE}"
|
116
|
+
FileUtils.rm_rf([WEBROOT])
|
117
|
+
sh "review-webmaker #{WEB_OPTIONS} #{CONFIG_FILE}"
|
107
118
|
end
|
108
119
|
|
109
120
|
file TEXTROOT => SRC do
|
110
|
-
FileUtils.rm_rf
|
121
|
+
FileUtils.rm_rf([TEXTROOT])
|
122
|
+
end
|
123
|
+
|
124
|
+
file IDGXMLROOT => SRC do
|
125
|
+
FileUtils.rm_rf([IDGXMLROOT])
|
111
126
|
end
|
112
127
|
|
113
|
-
CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', TEXTROOT])
|
128
|
+
CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', 'images/_review_math_text', TEXTROOT, IDGXMLROOT])
|
@@ -1,17 +1,23 @@
|
|
1
1
|
desc 'copy sty/* files from current Re:VIEW source code (in git repos)'
|
2
|
+
REVIEW_TEMPLATE = ENV['REVIEW_TEMPLATE'] || 'review-jsbook'
|
2
3
|
task :copy_sty do
|
3
4
|
review_rootdir = '../..'
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
FileUtils.cp file, 'sty'
|
5
|
+
template_dir = File.join(review_rootdir, "templates/latex/#{REVIEW_TEMPLATE}")
|
6
|
+
Dir.glob(File.join(template_dir, '*.cls')) do |file|
|
7
|
+
FileUtils.cp(file, 'sty')
|
8
8
|
end
|
9
|
-
Dir.glob(File.join(
|
10
|
-
FileUtils.cp
|
9
|
+
Dir.glob(File.join(template_dir, 'review-*.sty')) do |file|
|
10
|
+
FileUtils.cp(file, 'sty')
|
11
|
+
end
|
12
|
+
|
13
|
+
if REVIEW_TEMPLATE == 'review-jsbook'
|
14
|
+
jsbook_dir = File.join(review_rootdir, 'vendor/jsclasses')
|
15
|
+
FileUtils.cp(File.join(jsbook_dir, 'jsbook.cls'), 'sty/jsbook.cls')
|
16
|
+
gentombow_dir = File.join(review_rootdir, 'vendor/gentombow')
|
17
|
+
FileUtils.cp(File.join(gentombow_dir, 'gentombow.sty'), 'sty/gentombow.sty')
|
11
18
|
end
|
12
|
-
FileUtils.cp File.join(gentombow_dir, 'gentombow.sty'), 'sty/gentombow09j.sty'
|
13
19
|
end
|
14
20
|
|
15
|
-
CLEAN.include([Dir.glob('sty/review-*.sty'), 'sty
|
21
|
+
CLEAN.include([Dir.glob('sty/review-*.sty'), 'sty/*.cls', 'sty/gentombow.sty'])
|
16
22
|
|
17
23
|
Rake::Task[BOOK_PDF].enhance([:copy_sty])
|
data/templates/latex/config.erb
CHANGED
@@ -59,6 +59,9 @@
|
|
59
59
|
\def\review@coverimage{./<%= @config['imagedir'] %>/<%= @config['coverimage'] %>}
|
60
60
|
\def\review@coverimageoption{<%= @coverimageoption%>}
|
61
61
|
<%- end -%>
|
62
|
+
<%- if @config['pdfmaker']['use_cover_nombre'] -%>
|
63
|
+
\def\review@usecovernombre{true}
|
64
|
+
<%- end -%>
|
62
65
|
<%- if @config['titlepage'] -%>
|
63
66
|
\def\review@titlepage{true}
|
64
67
|
<%- if @config['titlefile'] -%>
|
@@ -98,4 +101,17 @@
|
|
98
101
|
\def\reviewusepart{true}
|
99
102
|
<%- end -%>
|
100
103
|
|
104
|
+
\def\reviewbackcompatibilityhook{
|
105
|
+
\ifdefined\reviewimagecaption\else% for 3.0.0 compatibility
|
106
|
+
\newcommand{\reviewimagecaption}[1]{\caption{##1}}
|
107
|
+
\fi
|
108
|
+
\ifdefined\reviewincludegraphics\else% for 3.2.0 compatibility
|
109
|
+
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
110
|
+
\includegraphics[##1]{##2}}
|
111
|
+
\fi
|
112
|
+
\ifdefined\covermatter\else% for 4.0.0 compatibility
|
113
|
+
\def\covermatter{}
|
114
|
+
\fi
|
115
|
+
}
|
116
|
+
|
101
117
|
\makeatother
|
@@ -6,6 +6,9 @@
|
|
6
6
|
<%- end -%>
|
7
7
|
<%- end -%>
|
8
8
|
|
9
|
+
%% backward compatibility (defined in config.erb)
|
10
|
+
\reviewbackcompatibilityhook
|
11
|
+
|
9
12
|
\begin{document}
|
10
13
|
|
11
14
|
%% begindocument hook
|
@@ -15,6 +18,7 @@
|
|
15
18
|
|
16
19
|
%% coverpage
|
17
20
|
\ifdefined\reviewcoverpagecont
|
21
|
+
\covermatter
|
18
22
|
\reviewcoverpagecont
|
19
23
|
\fi
|
20
24
|
|
@@ -1,15 +1,23 @@
|
|
1
|
+
\ProvidesClass{review-base}[2020/01/02]
|
1
2
|
% jlreq用基本設定
|
2
|
-
\
|
3
|
-
\
|
4
|
-
|
5
|
-
|
6
|
-
\
|
7
|
-
|
8
|
-
|
9
|
-
%
|
10
|
-
|
11
|
-
|
12
|
-
|
3
|
+
\def\recls@tmp{luatex}\ifx\recls@tmp\recls@driver
|
4
|
+
\hypersetup{
|
5
|
+
pdftitle={\review@booktitlename},
|
6
|
+
pdfauthor={\review@autnames},
|
7
|
+
pdfcreator={Re:VIEW \review@reviewversion, with LaTeX}
|
8
|
+
}
|
9
|
+
\else
|
10
|
+
\newcommand*\PDFDocumentInformation[1]{%
|
11
|
+
\AtBeginShipoutFirst{\special{pdf:docinfo <<#1>>}}}
|
12
|
+
\@onlypreamble\PDFDocumentInformation
|
13
|
+
\PDFDocumentInformation{
|
14
|
+
/Title (\review@booktitlename)
|
15
|
+
/Author (\review@autnames)
|
16
|
+
% /Subject ()
|
17
|
+
% /Keywords (,,)
|
18
|
+
/Creator (Re:VIEW \review@reviewversion, with LaTeX)
|
19
|
+
}
|
20
|
+
\fi
|
13
21
|
|
14
22
|
\RequirePackage{pxrubrica}
|
15
23
|
\@ifpackagelater{pxrubrica}{2017/04/20}{% true
|
@@ -20,20 +28,20 @@
|
|
20
28
|
|
21
29
|
% コードリスト装飾のデフォルト
|
22
30
|
\newenvironment{reviewemlist}{%
|
23
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!10,colframe=black!10,boxrule=0mm,arc=0mm]\begin{alltt}}%
|
31
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!10,colframe=black!10,boxrule=0mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\setxkanjiskip{\reviewlistxkanjiskip}\fi\begin{alltt}}%
|
24
32
|
{\end{alltt}\end{tcolorbox}}
|
25
33
|
|
26
34
|
\newenvironment{reviewlist}{%
|
27
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\begin{alltt}}%
|
35
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\setxkanjiskip{\reviewlistxkanjiskip}\fi\begin{alltt}}%
|
28
36
|
{\end{alltt}\end{tcolorbox}}
|
29
37
|
|
30
38
|
\newenvironment{reviewsource}{%
|
31
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\begin{alltt}}%
|
39
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=white,colframe=black,boxrule=0.15mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\setxkanjiskip{\reviewlistxkanjiskip}\fi\begin{alltt}}%
|
32
40
|
{\end{alltt}\end{tcolorbox}}
|
33
41
|
|
34
42
|
\newenvironment{reviewcmd}{%
|
35
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!99,colframe=black!99,boxrule=0mm,arc=0mm]\
|
36
|
-
{\
|
43
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,colback=black!99,coltext=white,colframe=black!99,boxrule=0mm,arc=0mm]\ifdefined\reviewlistxkanjiskip\setxkanjiskip{\reviewlistxkanjiskip}\fi\begin{alltt}}%
|
44
|
+
{\end{alltt}\end{tcolorbox}}
|
37
45
|
|
38
46
|
% 図
|
39
47
|
\newenvironment{reviewimage}{%
|
@@ -47,6 +55,9 @@
|
|
47
55
|
|
48
56
|
\newcommand{\reviewindepimagecaption[2]}{\@makecaption{}{#2}}
|
49
57
|
|
58
|
+
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
59
|
+
\includegraphics[#1]{#2}}
|
60
|
+
|
50
61
|
% 表
|
51
62
|
\newenvironment{reviewtablesetup}{%
|
52
63
|
}{}
|
@@ -59,25 +70,36 @@
|
|
59
70
|
\begin{reviewtablesetup}\begin{tabular}{#1}}%
|
60
71
|
{\end{tabular}\end{reviewtablesetup}}
|
61
72
|
|
73
|
+
\newcommand\reviewimagecaption[1]{\caption{#1}}
|
62
74
|
\newcommand*\reviewimgtablecaption[1]{\caption{#1}}
|
63
75
|
|
64
76
|
% コラム
|
65
77
|
\newenvironment{reviewcolumn}[1][COLUMN]{%
|
66
|
-
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,boxrule=0.2mm,arc=2mm,colback=white,colframe=black!100!white,title={\sffamily\bfseries #1}]\par}
|
78
|
+
\begin{tcolorbox}[skin=enhanced jigsaw,breakable,boxrule=0.2mm,arc=2mm,colback=white,colframe=black!100!white,before upper={\parindent1\zw},title={\sffamily\bfseries #1}]\par}
|
67
79
|
{\end{tcolorbox}}
|
68
80
|
|
69
81
|
\newcommand{\reviewbackslash}[0]{\textbackslash{}}
|
70
82
|
|
83
|
+
% 古いjlreq.clsへの互換(当面のad-hoc対応)
|
84
|
+
\ifdefined\jlreq@@makecaption@font@setting
|
85
|
+
\else
|
86
|
+
\let\jlreq@@makecaption@font@setting\jlreq@@makecaption@font
|
87
|
+
\fi
|
88
|
+
\ifdefined\jlreq@@makecaption@label@font@setting
|
89
|
+
\else
|
90
|
+
\let\jlreq@@makecaption@label@font@setting\jlreq@@makecaption@label@font
|
91
|
+
\fi
|
92
|
+
|
71
93
|
\renewcommand{\@makecaption}[2]{{% %本当はl,c,rを[]で指定したい
|
72
94
|
\reset@font\small
|
73
95
|
\vskip\abovecaptionskip
|
74
96
|
\jlreq@ifempty{#1}{%
|
75
|
-
\sbox\@tempboxa{{\jlreq@@makecaption@font #2}}}{%
|
76
|
-
\sbox\@tempboxa{{\jlreq@@makecaption@label@font #1}\review@intn@captionprefix{\jlreq@@makecaption@font #2}}}
|
97
|
+
\sbox\@tempboxa{{\jlreq@@makecaption@font@setting #2}}}{%
|
98
|
+
\sbox\@tempboxa{{\jlreq@@makecaption@label@font@setting #1}\review@intn@captionprefix{\jlreq@@makecaption@font@setting #2}}}
|
77
99
|
\ifdim \wd\@tempboxa >\hsize
|
78
100
|
\jlreq@ifempty{#1}{%
|
79
|
-
{\jlreq@@makecaption@font #2}}{%
|
80
|
-
{\jlreq@@makecaption@label@font #1}\review@intn@captionprefix{\jlreq@@makecaption@font #2}}\relax\par
|
101
|
+
{\jlreq@@makecaption@font@setting #2}}{%
|
102
|
+
{\jlreq@@makecaption@label@font@setting #1}\review@intn@captionprefix{\jlreq@@makecaption@font@setting #2}}\relax\par
|
81
103
|
\else
|
82
104
|
\global\@minipagefalse
|
83
105
|
\hbox to\hsize{\box\@tempboxa\hfil}% キャプションLeft
|
@@ -91,22 +113,23 @@
|
|
91
113
|
\newcommand{\reviewemlistcaption}[1]{\review@commoncaption{}{#1}}
|
92
114
|
\newcommand{\reviewsourcecaption}[1]{\review@commoncaption{}{#1}}
|
93
115
|
\newcommand{\reviewcmdcaption}[1]{\review@commoncaption{}{#1}}
|
94
|
-
\newenvironment{reviewlistblock}{\list{}{\topsep.5\baselineskip \leftmargin\z@ \itemindent\z@}\item\relax}{\endlist}% 上下アキ0.5
|
116
|
+
\newenvironment{reviewlistblock}{\list{}{\topsep.5\baselineskip \leftmargin\z@ \itemindent\z@}\item\needspace{4\Cvs}\relax}{\endlist}% 上下アキ0.5
|
95
117
|
|
96
118
|
\newcommand{\reviewequationcaption}[1]{\review@commoncaption{}{#1}}
|
97
|
-
\newenvironment{reviewequationblock}{}{}
|
119
|
+
\newenvironment{reviewequationblock}{\needspace{2\Cvs}}{}
|
98
120
|
|
99
121
|
\newcommand{\reviewimageref}[2]{\review@intn@image #1}
|
100
122
|
\newcommand{\reviewtableref}[2]{\review@intn@table #1}
|
101
123
|
\newcommand{\reviewlistref}[1]{\review@intn@list #1}
|
102
124
|
\newcommand{\reviewequationref}[1]{\review@intn@equation #1}
|
103
125
|
\newcommand{\reviewbibref}[2]{#1}
|
104
|
-
\newcommand{\reviewcolumnref}[2]{
|
126
|
+
\newcommand{\reviewcolumnref}[2]{#1}
|
105
127
|
\newcommand{\reviewsecref}[2]{#1}
|
106
128
|
|
107
129
|
\renewcommand{\contentsname}{\review@toctitle}
|
108
130
|
|
109
131
|
\newenvironment{reviewpart}{%
|
132
|
+
\setcounter{section}{0}%
|
110
133
|
\renewcommand{\thesection}{\thepart.\@arabic\c@section}%
|
111
134
|
}{}
|
112
135
|
|
@@ -144,27 +167,84 @@
|
|
144
167
|
{\end{tcolorbox}}
|
145
168
|
|
146
169
|
% 書体
|
147
|
-
\
|
148
|
-
\
|
149
|
-
\
|
150
|
-
\
|
151
|
-
\
|
152
|
-
\
|
153
|
-
\
|
154
|
-
\
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
\
|
170
|
+
\DeclareRobustCommand{\reviewkw}[1]{\textbf{\textgt{#1}}}
|
171
|
+
\DeclareRobustCommand{\reviewami}[1]{#1}% FIXME
|
172
|
+
\DeclareRobustCommand{\reviewballoon}[1]{←{#1}}
|
173
|
+
\DeclareRobustCommand{\reviewem}[1]{\textbf{#1}}
|
174
|
+
\DeclareRobustCommand{\reviewstrong}[1]{\textbf{#1}}
|
175
|
+
\DeclareRobustCommand{\reviewunderline}[1]{\underline{#1}}% ulemかjumolineで上書き。デフォルトはulemにしている
|
176
|
+
\DeclareRobustCommand{\reviewit}[1]{\textit{#1}}
|
177
|
+
\DeclareRobustCommand{\reviewbold}[1]{\textbf{#1}}
|
178
|
+
|
179
|
+
% allow break line in tt
|
180
|
+
% contributed by @zr_tex8r
|
181
|
+
\g@addto@macro\pdfstringdefPreHook{% for PDF bookmarks
|
182
|
+
\def\reviewami#1{#1}
|
183
|
+
\def\reviewbreakall#1{#1}
|
184
|
+
\def\reviewballoon#1{#1}
|
185
|
+
\def\reviewbou#1{#1}
|
186
|
+
\def\reviewkw#1{#1}
|
187
|
+
\def\reviewstrike#1{#1}
|
188
|
+
\def\reviewunderline#1{#1}
|
189
|
+
}
|
190
|
+
\newif\ifreview@ba@break
|
191
|
+
\def\review@ba@end{\review@ba@end@}
|
192
|
+
\DeclareRobustCommand{\reviewbreakall}[1]{%
|
193
|
+
\begingroup
|
194
|
+
\review@ba@breakfalse
|
195
|
+
\review@break@all@a#1\review@ba@end
|
196
|
+
\endgroup
|
197
|
+
}
|
198
|
+
\def\review@break@all@a{%
|
199
|
+
\futurelet\review@ba@tok\review@break@all@b
|
200
|
+
}
|
201
|
+
\def\review@break@all@b{%
|
202
|
+
\ifx\review@ba@tok\review@ba@end
|
203
|
+
\let\next\@gobble
|
204
|
+
\else\ifx\review@ba@tok\@sptoken
|
205
|
+
\let\next\review@break@all@c
|
206
|
+
\else\ifx\review@ba@tok~%
|
207
|
+
\let\next\review@break@all@d
|
208
|
+
\else\ifx\review@ba@tok\bgroup
|
209
|
+
\let\next\review@break@all@e
|
210
|
+
\else
|
211
|
+
\let\next\review@break@all@f
|
212
|
+
\fi\fi\fi\fi
|
213
|
+
\next
|
214
|
+
}
|
215
|
+
\expandafter\def\expandafter\review@break@all@c\space{%
|
216
|
+
\space
|
217
|
+
\review@ba@breakfalse
|
218
|
+
\review@break@all@a
|
219
|
+
}
|
220
|
+
\def\review@break@all@d#1{%
|
221
|
+
\review@break@all@f{\mbox{\space}}%
|
222
|
+
}
|
223
|
+
\def\review@break@all@e#1{%
|
224
|
+
\review@break@all@f{{#1}}%
|
225
|
+
}
|
226
|
+
\def\review@break@all@f#1{%
|
227
|
+
\ifreview@ba@break
|
228
|
+
\hskip0pt plus 0.02em\relax
|
229
|
+
\fi
|
230
|
+
#1%
|
231
|
+
\review@ba@breaktrue
|
232
|
+
\review@break@all@a
|
233
|
+
}
|
234
|
+
\DeclareRobustCommand{\reviewtt}[1]{{\ttfamily\reviewbreakall{#1}}}
|
235
|
+
\DeclareRobustCommand{\reviewcode}[1]{{\ttfamily\reviewbreakall{#1}}}
|
236
|
+
\DeclareRobustCommand{\reviewtti}[1]{{\ttfamily\itshape\reviewbreakall{#1}}}
|
237
|
+
\DeclareRobustCommand{\reviewttb}[1]{{\ttfamily\bfseries\reviewbreakall{#1}}}
|
159
238
|
|
160
|
-
|
161
|
-
\newcommand{\reviewstrike}[1]{#1}
|
239
|
+
\DeclareRobustCommand{\reviewbou}[1]{\kenten{#1}}
|
162
240
|
|
241
|
+
%% @<del> is ignored in LaTeX with default style
|
242
|
+
%% \DeclareRobustCommand{\reviewstrike}[1]{#1}
|
163
243
|
%%%% for ulem.sty:
|
164
|
-
\
|
244
|
+
\DeclareRobustCommand{\reviewstrike}[1]{\sout{#1}}
|
165
245
|
%%
|
166
246
|
%%%% for jumoline.sty:
|
167
|
-
%%\
|
247
|
+
%%\DeclareRobustCommand{\reviewstrike}[1]{\Middleline{#1}}
|
168
248
|
|
169
249
|
\newcommand{\reviewtitlefont}[0]{\usefont{T1}{phv}{b}{n}\gtfamily}
|
170
250
|
\newcommand{\reviewmainfont}[0]{}
|
@@ -201,6 +281,16 @@
|
|
201
281
|
\renewcommand{\appendixname}{\reviewappendixname}
|
202
282
|
\fi
|
203
283
|
|
284
|
+
% maxwidth is the original width if it is less than linewidth
|
285
|
+
%% otherwise use linewidth (to make sure the graphics do not exceed the margin)
|
286
|
+
\def\maxwidth{%
|
287
|
+
\ifdim\Gin@nat@width>\linewidth
|
288
|
+
\linewidth
|
289
|
+
\else
|
290
|
+
\Gin@nat@width
|
291
|
+
\fi
|
292
|
+
}
|
293
|
+
|
204
294
|
% hooks
|
205
295
|
\def\reviewbegindocumenthook{}
|
206
296
|
|
@@ -226,16 +316,23 @@
|
|
226
316
|
}
|
227
317
|
|
228
318
|
% cover
|
319
|
+
\newcommand*\covermatter{%
|
320
|
+
\ifdefined\review@usecovernombre%
|
321
|
+
\pagenumbering{coverpagezero}
|
322
|
+
\setcounter{page}{0}% force to even page, to avoid empty page
|
323
|
+
\fi
|
324
|
+
}
|
325
|
+
|
229
326
|
\if@reclscover
|
230
|
-
\ifdefined\review@coverimage
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
\fi
|
236
|
-
\ifdefined\review@coverfile
|
237
|
-
|
238
|
-
\fi
|
327
|
+
\ifdefined\review@coverimage
|
328
|
+
\def\reviewcoverpagecont{%
|
329
|
+
\expandafter\includefullpagegraphics\expandafter[\review@coverimageoption]{\review@coverimage}
|
330
|
+
\cleardoublepage
|
331
|
+
}
|
332
|
+
\fi
|
333
|
+
\ifdefined\review@coverfile
|
334
|
+
\def\reviewcoverpagecont{\review@coverfile}
|
335
|
+
\fi
|
239
336
|
\fi
|
240
337
|
|
241
338
|
% titlepage
|
@@ -246,11 +343,7 @@
|
|
246
343
|
\thispagestyle{empty}
|
247
344
|
\begin{center}%
|
248
345
|
\mbox{}%
|
249
|
-
\
|
250
|
-
\vskip5\zw
|
251
|
-
\else
|
252
|
-
\vskip5zw
|
253
|
-
\fi
|
346
|
+
\vskip5\zw
|
254
347
|
\reviewtitlefont%
|
255
348
|
{\Huge\review@booktitlename\par}%
|
256
349
|
\ifdefined\review@subtitlename
|
@@ -265,11 +358,7 @@
|
|
265
358
|
\end{tabular}\par}%
|
266
359
|
\vfill
|
267
360
|
{\large\review@date \review@intn@edition%
|
268
|
-
\
|
269
|
-
\hspace{2\zw}%
|
270
|
-
\else
|
271
|
-
\hspace{2zw}%
|
272
|
-
\fi
|
361
|
+
\hspace{2\zw}%
|
273
362
|
\review@intn@publishedby\par}%
|
274
363
|
\vskip4\zw\mbox{}
|
275
364
|
\end{center}%
|
@@ -314,9 +403,9 @@
|
|
314
403
|
\rule[8pt]{\textwidth}{1pt} \\
|
315
404
|
{\noindent\review@pubhistories}
|
316
405
|
|
317
|
-
\begin{
|
406
|
+
\begin{tabularx}{\dimexpr\textwidth-0.5em}{lX}
|
318
407
|
\review@colophonnames
|
319
|
-
\end{
|
408
|
+
\end{tabularx}
|
320
409
|
\\
|
321
410
|
\rule[0pt]{\textwidth}{1pt} \\
|
322
411
|
\ifdefined\review@rights
|