review 3.1.0 → 5.0.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 +45 -0
- data/.github/workflows/ruby.yml +27 -0
- data/.rubocop.yml +161 -34
- data/.travis.yml +16 -15
- data/Dockerfile +21 -5
- data/NEWS.ja.md +394 -0
- data/NEWS.md +395 -1
- data/README.md +10 -7
- data/appveyor.yml +1 -3
- data/bin/review-catalog-converter +5 -5
- data/bin/review-check +10 -12
- data/bin/review-checkdep +2 -2
- data/bin/review-compile +17 -23
- data/bin/review-epubmaker +3 -35
- data/bin/review-idgxmlmaker +16 -0
- data/bin/review-index +2 -89
- data/bin/review-preproc +13 -13
- data/bin/review-validate +4 -4
- data/bin/review-vol +4 -78
- data/doc/config.yml.sample +47 -12
- data/doc/config.yml.sample-simple +3 -2
- data/doc/format.ja.md +120 -17
- data/doc/format.md +119 -27
- data/doc/makeindex.ja.md +2 -2
- data/doc/pdfmaker.ja.md +43 -1
- data/doc/pdfmaker.md +42 -1
- data/doc/quickstart.ja.md +45 -25
- data/doc/quickstart.md +37 -16
- data/lib/epubmaker/content.rb +3 -2
- data/lib/epubmaker/epubcommon.rb +34 -27
- data/lib/epubmaker/epubv2.rb +5 -6
- data/lib/epubmaker/epubv3.rb +21 -18
- data/lib/epubmaker/producer.rb +2 -1
- data/lib/review/book.rb +2 -2
- data/lib/review/book/base.rb +91 -96
- data/lib/review/book/bib.rb +21 -0
- data/lib/review/book/book_unit.rb +155 -0
- data/lib/review/book/chapter.rb +48 -29
- data/lib/review/book/index.rb +46 -240
- data/lib/review/book/index/item.rb +46 -0
- data/lib/review/book/page_metric.rb +7 -7
- data/lib/review/book/part.rb +45 -10
- data/lib/review/book/volume.rb +4 -5
- data/lib/review/builder.rb +172 -56
- data/lib/review/catalog.rb +14 -17
- data/lib/review/compiler.rb +219 -121
- data/lib/review/configure.rb +39 -7
- data/lib/review/converter.rb +1 -1
- data/lib/review/epub2html.rb +43 -5
- data/lib/review/epubmaker.rb +69 -27
- data/lib/review/extentions/string.rb +0 -4
- data/lib/review/htmlbuilder.rb +112 -101
- data/lib/review/htmlutils.rb +9 -13
- data/lib/review/i18n.rb +3 -3
- data/lib/review/idgxmlbuilder.rb +202 -78
- data/lib/review/idgxmlmaker.rb +186 -0
- data/lib/review/index_builder.rb +653 -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 +129 -46
- data/lib/review/latexbuilder.rb +255 -92
- 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 +35 -5
- data/lib/review/markdownbuilder.rb +50 -38
- data/lib/review/md2inaobuilder.rb +3 -5
- data/lib/review/pdfmaker.rb +60 -57
- data/lib/review/plaintextbuilder.rb +154 -87
- data/lib/review/preprocessor.rb +20 -42
- data/lib/review/rstbuilder.rb +57 -38
- data/lib/review/sec_counter.rb +13 -0
- data/lib/review/textmaker.rb +23 -15
- data/lib/review/textutils.rb +76 -2
- data/lib/review/tocprinter.rb +230 -102
- data/lib/review/topbuilder.rb +139 -60
- data/lib/review/update.rb +24 -24
- data/lib/review/version.rb +1 -1
- data/lib/review/volumeprinter.rb +98 -0
- data/lib/review/webmaker.rb +20 -24
- 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/Gemfile +1 -1
- 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 +39 -25
- data/templates/latex/layout.tex.erb +1 -0
- data/templates/latex/review-jlreq/README.md +3 -1
- data/templates/latex/review-jlreq/review-base.sty +161 -50
- data/templates/latex/review-jlreq/review-jlreq.cls +21 -22
- data/templates/latex/review-jlreq/review-style.sty +4 -1
- data/templates/latex/review-jsbook/README.md +46 -5
- data/templates/latex/review-jsbook/review-base.sty +123 -35
- data/templates/latex/review-jsbook/review-jsbook.cls +10 -4
- 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 +3 -3
- data/test/assets/test_template.tex +19 -7
- data/test/assets/test_template_backmatter.tex +19 -7
- data/test/book_test_helper.rb +11 -5
- data/test/test_book.rb +124 -79
- data/test/test_book_chapter.rb +97 -54
- data/test/test_book_part.rb +3 -3
- data/test/test_builder.rb +38 -13
- data/test/test_catalog.rb +24 -42
- data/test/test_catalog_converter_cmd.rb +1 -1
- data/test/test_converter.rb +1 -0
- data/test/test_epub3maker.rb +2 -2
- data/test/test_epubmaker.rb +8 -0
- data/test/test_epubmaker_cmd.rb +14 -7
- data/test/test_helper.rb +18 -7
- data/test/test_htmlbuilder.rb +1491 -205
- data/test/test_htmlutils.rb +0 -12
- data/test/test_i18n.rb +37 -37
- data/test/test_idgxmlbuilder.rb +744 -42
- data/test/test_idgxmlmaker_cmd.rb +46 -0
- data/test/test_image_finder.rb +52 -70
- data/test/test_index.rb +94 -44
- data/test/test_indexbuilder.rb +52 -0
- data/test/test_latexbuilder.rb +1784 -161
- data/test/test_latexbuilder_v2.rb +671 -102
- data/test/test_logger.rb +17 -4
- data/test/test_makerhelper.rb +2 -14
- data/test/test_markdownbuilder.rb +137 -16
- data/test/test_md2inaobuilder.rb +32 -9
- data/test/test_pdfmaker.rb +30 -12
- data/test/test_pdfmaker_cmd.rb +100 -6
- data/test/test_plaintextbuilder.rb +791 -30
- data/test/test_preprocessor.rb +2 -16
- data/test/test_review_ext.rb +2 -1
- data/test/test_rstbuilder.rb +274 -27
- data/test/test_sec_counter.rb +156 -0
- data/test/test_textmaker_cmd.rb +54 -0
- data/test/test_textutils.rb +109 -2
- data/test/test_topbuilder.rb +724 -34
- data/test/test_update.rb +20 -11
- data/test/test_webtocprinter.rb +75 -43
- data/test/test_yamlloader.rb +13 -0
- data/vendor/gentombow/LICENSE +1 -1
- data/vendor/gentombow/Makefile +0 -1
- data/vendor/gentombow/bounddvi-en.pdf +0 -0
- data/vendor/gentombow/bounddvi-en.tex +1 -0
- data/vendor/gentombow/bounddvi.pdf +0 -0
- data/vendor/gentombow/bounddvi.sty +30 -7
- data/vendor/gentombow/bounddvi.tex +1 -0
- data/vendor/gentombow/create_archive.sh +1 -0
- data/vendor/gentombow/gentombow-ja.pdf +0 -0
- data/vendor/gentombow/gentombow-ja.tex +9 -0
- data/vendor/gentombow/gentombow.pdf +0 -0
- data/vendor/gentombow/gentombow.sty +32 -10
- data/vendor/gentombow/gentombow.tex +8 -0
- data/vendor/gentombow/tests/gentombow-01-pdfx.tex +8 -0
- data/vendor/gentombow/tests/gentombow-02-pdfx.tex +8 -0
- data/vendor/jsclasses/LICENSE +1 -1
- data/vendor/jsclasses/Makefile +3 -2
- data/vendor/jsclasses/create_archive.sh +5 -5
- data/vendor/jsclasses/jis/Makefile +3 -2
- data/vendor/jsclasses/jis/jsarticle.cls +74 -31
- data/vendor/jsclasses/jis/jsbook.cls +74 -31
- data/vendor/jsclasses/jis/jsclasses.dtx +176 -36
- data/vendor/jsclasses/jis/jsclasses.ins +15 -5
- data/vendor/jsclasses/jis/jslogo.dtx +4 -4
- data/vendor/jsclasses/jis/jslogo.ins +9 -0
- data/vendor/jsclasses/jis/jslogo.sty +4 -16
- data/vendor/jsclasses/jis/jspf.cls +73 -30
- data/vendor/jsclasses/jis/jsreport.cls +74 -31
- data/vendor/jsclasses/jis/jsverb.ins +9 -0
- data/vendor/jsclasses/jis/jsverb.sty +1 -13
- data/vendor/jsclasses/jis/kiyou.cls +74 -31
- data/vendor/jsclasses/jis/minijs.sty +65 -22
- data/vendor/jsclasses/jis/okumacro.dtx +4 -5
- data/vendor/jsclasses/jis/okumacro.ins +9 -0
- data/vendor/jsclasses/jis/okumacro.sty +4 -17
- data/vendor/jsclasses/jis/okuverb.ins +9 -0
- data/vendor/jsclasses/jis/okuverb.sty +1 -13
- data/vendor/jsclasses/jis/winjis.sty +23 -19
- data/vendor/jsclasses/jsarticle.cls +74 -31
- data/vendor/jsclasses/jsbook.cls +74 -31
- data/vendor/jsclasses/jsclasses.dtx +176 -36
- data/vendor/jsclasses/jsclasses.ins +15 -5
- data/vendor/jsclasses/jsclasses.pdf +0 -0
- data/vendor/jsclasses/jslogo.dtx +4 -4
- data/vendor/jsclasses/jslogo.ins +9 -0
- data/vendor/jsclasses/jslogo.pdf +0 -0
- data/vendor/jsclasses/jslogo.sty +4 -16
- data/vendor/jsclasses/jspf.cls +73 -30
- data/vendor/jsclasses/jsreport.cls +74 -31
- data/vendor/jsclasses/jsverb.ins +9 -0
- data/vendor/jsclasses/jsverb.pdf +0 -0
- data/vendor/jsclasses/jsverb.sty +1 -13
- data/vendor/jsclasses/kiyou.cls +74 -31
- data/vendor/jsclasses/minijs.sty +68 -22
- data/vendor/jsclasses/okumacro.dtx +4 -5
- data/vendor/jsclasses/okumacro.ins +9 -0
- data/vendor/jsclasses/okumacro.pdf +0 -0
- data/vendor/jsclasses/okumacro.sty +4 -17
- data/vendor/jsclasses/okuverb.ins +9 -0
- data/vendor/jsclasses/okuverb.pdf +0 -0
- data/vendor/jsclasses/okuverb.sty +1 -13
- data/vendor/jsclasses/tests/relfont.tex +10 -0
- data/vendor/jsclasses/winjis.sty +23 -19
- metadata +65 -12
- data/.rubocop_todo.yml +0 -7
- data/lib/review/book/compilable.rb +0 -173
- data/lib/review/tocparser.rb +0 -271
- data/samples/syntax-book/review-ext.rb +0 -14
- data/test/test_tocparser.rb +0 -25
@@ -0,0 +1,6 @@
|
|
1
|
+
# call me by 'REVIEW_TEMPLATE=review-jlreq REVIEW_CONFIG_FILE=config-jlreq.yml rake pdf'
|
2
|
+
inherit: ["config.yml"]
|
3
|
+
pdfmaker:
|
4
|
+
texdocumentclass: ["review-jlreq", "media=print,paper=a5"]
|
5
|
+
# texdocumentclass: ["review-jlreq", "media=ebook,paper=a5"]
|
6
|
+
# texdocumentclass: ["review-jlreq", "media=print,paper=a5,tombopaper=a4,bleed_margin=3mm,cover=true,Q=14,startpage=3,serial_pagination=true,hiddenfolio=nikko-pc"]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
## config.yml for sample book
|
2
|
-
review_version:
|
2
|
+
review_version: 5.0
|
3
3
|
bookname: book
|
4
4
|
language: ja
|
5
5
|
booktitle: Re:VIEWサンプル書籍
|
@@ -35,7 +35,7 @@ colophon: true
|
|
35
35
|
# font_ext: ["ttf", "woff", "otf"]
|
36
36
|
# catalogfile: catalog.yml
|
37
37
|
# page_metric: A5
|
38
|
-
# page_metric: [40,
|
38
|
+
# page_metric: [40,34,29,34]
|
39
39
|
# direction: "ltr"
|
40
40
|
|
41
41
|
epubmaker:
|
@@ -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
|
@@ -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/gentombow.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/Gemfile
CHANGED
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 @@ $ @<b>{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 @@ $ @<b>{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@<b>{太字bold}@<i>{italicイタ}@<tt>{等幅code} F@<br>{}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/gentombow.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
@@ -1,50 +1,51 @@
|
|
1
|
+
<%- initialize_metachars(@config['texcommand']) -%>
|
1
2
|
\makeatletter
|
2
3
|
\def\review@reviewversion{<%= ReVIEW::VERSION %>}
|
3
4
|
\def\review@texcompiler{<%= @texcompiler %>}
|
4
5
|
\def\review@documentclass{<%= @documentclass %>}
|
5
6
|
|
6
7
|
<%- %w(booktitle subtitle).each do |item| -%>
|
7
|
-
<%- if @config[item] -%>\def\review@<%= item %>name{<%=
|
8
|
+
<%- if @config[item] -%>\def\review@<%= item %>name{<%= escape(@config.name_of(item)) %>}
|
8
9
|
<%- end -%>
|
9
10
|
<%- end -%>
|
10
11
|
|
11
|
-
<%- %w(aut adp ann arr art asn aqt aft aui ant bkp clb cmm csl dsr edt ill lyr mdc mus nrt oth pht pbl prt red rev spn ths trc trl).each do |item| %><%- if @config[item] -%>\def\review@<%= item %>names{<%=
|
12
|
+
<%- %w(aut adp ann arr art asn aqt aft aui ant bkp clb cmm csl dsr edt ill lyr mdc mus nrt oth pht pbl prt red rev spn ths trc trl).each do |item| %><%- if @config[item] -%>\def\review@<%= item %>names{<%= escape(@config.names_of(item).join(I18n.t('names_splitter'))) %>}
|
12
13
|
<%- end -%>
|
13
14
|
<%- end -%>
|
14
15
|
|
15
16
|
\def\review@titlepageauthors{<%= @authors %>}
|
16
|
-
\def\review@date{<%=
|
17
|
+
\def\review@date{<%= escape(@config['date'].to_s) %>}
|
17
18
|
|
18
|
-
<%- %w(bookname language urnid isbn).each do |item| -%><%- if @config[item] -%>\def\review@<%= item %>{<%=
|
19
|
+
<%- %w(bookname language urnid isbn).each do |item| -%><%- if @config[item] -%>\def\review@<%= item %>{<%= escape(@config[item]) %>}
|
19
20
|
<%- end -%>
|
20
21
|
<%- end -%>
|
21
22
|
<%- %w(rights description subject type format source relation coverage).each do |item| -%>
|
22
23
|
<%- if @config[item] -%>
|
23
|
-
<%- a = [@config[item]].flatten -%>\def\review@<%= item %>{<%= a.map{|s|
|
24
|
+
<%- a = [@config[item]].flatten -%>\def\review@<%= item %>{<%= a.map{|s| escape(s)}.join('\\' + '\\') %>}
|
24
25
|
<%- end -%>
|
25
26
|
<%- end -%>
|
26
27
|
|
27
28
|
<%- if @config['highlight'] && @config['highlight']['latex'] -%>\def\review@highlightlatex{<%= @config['highlight']['latex'] %>}
|
28
29
|
<%- end -%>
|
29
30
|
|
30
|
-
\def\review@intn@list{<%=
|
31
|
-
\def\review@intn@columnhead{<%=
|
32
|
-
\def\review@intn@image{<%=
|
33
|
-
\def\review@intn@table{<%=
|
34
|
-
\def\review@intn@equation{<%=
|
35
|
-
\def\review@intn@columnname{<%=
|
36
|
-
\def\review@intn@memohead{<%=
|
37
|
-
\def\review@intn@edition{<%=
|
38
|
-
\def\review@intn@publishedby{<%=
|
39
|
-
\def\review@intn@captionprefix{<%=
|
40
|
-
\def\review@toctitle{<%=
|
41
|
-
\def\review@prepartname{<%=
|
42
|
-
\def\review@postpartname{<%=
|
43
|
-
\def\review@prechaptername{<%=
|
44
|
-
\def\review@postchaptername{<%=
|
45
|
-
\def\review@figurename{<%=
|
46
|
-
\def\review@tablename{<%=
|
47
|
-
\def\review@appendixname{<%=
|
31
|
+
\def\review@intn@list{<%= escape(I18n.t('list')) %>}
|
32
|
+
\def\review@intn@columnhead{<%= escape(I18n.t('column_head')) %>}
|
33
|
+
\def\review@intn@image{<%= escape(I18n.t('image')) %>}
|
34
|
+
\def\review@intn@table{<%= escape(I18n.t('table')) %>}
|
35
|
+
\def\review@intn@equation{<%= escape(I18n.t('equation')) %>}
|
36
|
+
\def\review@intn@columnname{<%= escape(I18n.t('columnname')) %>}
|
37
|
+
\def\review@intn@memohead{<%= escape(I18n.t('memo_head')) %>}
|
38
|
+
\def\review@intn@edition{<%= escape(I18n.t('edition')) %>}
|
39
|
+
\def\review@intn@publishedby{<%= escape(I18n.t('published_by', @config.names_of('pbl').join(I18n.t('names_splitter'))))%>}
|
40
|
+
\def\review@intn@captionprefix{<%= escape(I18n.t('caption_prefix')) %>}
|
41
|
+
\def\review@toctitle{<%= escape(@config['toctitle'].present? ? @config['toctitle'] : I18n.t('toctitle')) %>}
|
42
|
+
\def\review@prepartname{<%= escape(@locale_latex['prepartname']) %>}
|
43
|
+
\def\review@postpartname{<%= escape(@locale_latex['postpartname']) %>}
|
44
|
+
\def\review@prechaptername{<%= escape(@locale_latex['prechaptername']) %>}
|
45
|
+
\def\review@postchaptername{<%= escape(@locale_latex['postchaptername']) %>}
|
46
|
+
\def\review@figurename{<%= escape(I18n.t('image')) %>}
|
47
|
+
\def\review@tablename{<%= escape(I18n.t('table')) %>}
|
48
|
+
\def\review@appendixname{<%= escape(@locale_latex['preappendixname']) %>}
|
48
49
|
|
49
50
|
<%- if @config['toc'] -%>
|
50
51
|
\def\review@toc{true}
|
@@ -59,6 +60,9 @@
|
|
59
60
|
\def\review@coverimage{./<%= @config['imagedir'] %>/<%= @config['coverimage'] %>}
|
60
61
|
\def\review@coverimageoption{<%= @coverimageoption%>}
|
61
62
|
<%- end -%>
|
63
|
+
<%- if @config['pdfmaker']['use_cover_nombre'] -%>
|
64
|
+
\def\review@usecovernombre{true}
|
65
|
+
<%- end -%>
|
62
66
|
<%- if @config['titlepage'] -%>
|
63
67
|
\def\review@titlepage{true}
|
64
68
|
<%- if @config['titlefile'] -%>
|
@@ -97,11 +101,21 @@
|
|
97
101
|
<%- if @config['use_part'] -%>
|
98
102
|
\def\reviewusepart{true}
|
99
103
|
<%- end -%>
|
104
|
+
<%- if @config['pdfmaker']['bbox'] -%>
|
105
|
+
\def\review@bbox{<%= @config['pdfmaker']['bbox'] %>}
|
106
|
+
<%- end -%>
|
100
107
|
|
101
108
|
\def\reviewbackcompatibilityhook{
|
102
|
-
|
109
|
+
\ifdefined\reviewimagecaption\else% for 3.0.0 compatibility
|
103
110
|
\newcommand{\reviewimagecaption}[1]{\caption{##1}}
|
104
|
-
|
111
|
+
\fi
|
112
|
+
\ifdefined\reviewincludegraphics\else% for 3.2.0 compatibility
|
113
|
+
\DeclareRobustCommand{\reviewincludegraphics}[2][]{%
|
114
|
+
\includegraphics[##1]{##2}}
|
115
|
+
\fi
|
116
|
+
\ifdefined\covermatter\else% for 4.0.0 compatibility
|
117
|
+
\def\covermatter{}
|
118
|
+
\fi
|
105
119
|
}
|
106
120
|
|
107
121
|
\makeatother
|