review 4.1.0 → 5.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-tex.yml +35 -0
- data/.github/workflows/ruby-win.yml +19 -9
- data/.github/workflows/ruby.yml +7 -3
- data/.rubocop.yml +138 -34
- data/NEWS.ja.md +285 -0
- data/NEWS.md +285 -1
- data/README.md +7 -6
- data/Rakefile +7 -2
- data/bin/review +2 -4
- data/bin/review-catalog-converter +4 -4
- data/bin/review-check +8 -12
- data/bin/review-checkdep +2 -5
- data/bin/review-compile +18 -34
- data/bin/review-epub2html +1 -4
- data/bin/review-epubmaker +3 -4
- data/bin/review-idgxmlmaker +1 -3
- data/bin/review-index +5 -86
- data/bin/review-init +1 -4
- data/bin/review-pdfmaker +1 -3
- data/bin/review-preproc +30 -38
- data/bin/review-textmaker +1 -3
- data/bin/review-update +1 -4
- data/bin/review-validate +4 -4
- data/bin/review-vol +5 -82
- data/bin/review-webmaker +1 -3
- data/doc/config.yml.sample +45 -11
- data/doc/config.yml.sample-simple +3 -3
- data/doc/format.ja.md +103 -13
- data/doc/format.md +104 -16
- data/doc/makeindex.ja.md +2 -2
- data/doc/pdfmaker.ja.md +42 -0
- data/doc/pdfmaker.md +41 -0
- data/doc/quickstart.ja.md +19 -6
- data/doc/quickstart.md +18 -6
- data/doc/writing_vertical.ja.md +6 -0
- data/lib/review.rb +1 -1
- data/lib/review/book.rb +2 -2
- data/lib/review/book/base.rb +67 -29
- data/lib/review/book/bib.rb +21 -0
- data/lib/review/book/book_unit.rb +158 -0
- data/lib/review/book/chapter.rb +33 -26
- data/lib/review/book/index.rb +24 -185
- data/lib/review/book/index/item.rb +7 -1
- data/lib/review/book/page_metric.rb +7 -7
- data/lib/review/book/part.rb +26 -11
- data/lib/review/book/volume.rb +5 -5
- data/lib/review/builder.rb +121 -52
- data/lib/review/call_hook.rb +20 -0
- data/lib/review/catalog.rb +3 -2
- data/lib/review/compiler.rb +230 -111
- data/lib/review/configure.rb +91 -7
- data/lib/review/converter.rb +1 -1
- data/lib/review/epub2html.rb +6 -1
- data/lib/review/epubmaker.rb +124 -152
- data/lib/review/epubmaker/content.rb +113 -0
- data/lib/review/epubmaker/epubcommon.rb +372 -0
- data/lib/review/epubmaker/epubv2.rb +178 -0
- data/lib/review/epubmaker/epubv3.rb +231 -0
- data/lib/review/epubmaker/producer.rb +167 -0
- data/lib/review/epubmaker/reviewheaderlistener.rb +12 -2
- data/lib/review/epubmaker/zip_exporter.rb +84 -0
- data/lib/review/exception.rb +13 -0
- data/lib/review/htmlbuilder.rb +176 -89
- data/lib/review/htmlutils.rb +8 -11
- data/lib/review/i18n.rb +2 -1
- data/lib/review/idgxmlbuilder.rb +165 -75
- data/lib/review/idgxmlmaker.rb +24 -28
- data/lib/review/img_math.rb +238 -0
- data/lib/review/index_builder.rb +645 -0
- data/lib/review/init.rb +9 -17
- data/lib/review/latexbox.rb +58 -0
- data/lib/review/latexbuilder.rb +193 -75
- data/lib/review/latexutils.rb +9 -1
- data/lib/review/lineinput.rb +112 -2
- data/lib/review/loggable.rb +27 -0
- data/lib/review/logger.rb +90 -3
- data/lib/review/makerhelper.rb +17 -188
- data/lib/review/markdownbuilder.rb +54 -4
- data/lib/review/pdfmaker.rb +76 -84
- data/lib/review/plaintextbuilder.rb +106 -22
- data/lib/review/preprocessor.rb +107 -303
- data/lib/review/preprocessor/directive.rb +35 -0
- data/lib/review/preprocessor/line.rb +34 -0
- data/lib/review/preprocessor/repository.rb +177 -0
- data/lib/review/rstbuilder.rb +27 -8
- data/lib/review/sec_counter.rb +14 -0
- data/lib/review/template.rb +11 -1
- data/lib/review/textmaker.rb +27 -32
- data/lib/review/textutils.rb +3 -12
- data/lib/review/tocprinter.rb +242 -97
- data/lib/review/topbuilder.rb +98 -31
- data/lib/review/update.rb +12 -13
- data/lib/review/version.rb +1 -1
- data/lib/review/volumeprinter.rb +97 -0
- data/lib/review/webmaker.rb +40 -47
- data/lib/review/webtocprinter.rb +39 -35
- data/lib/review/yamlloader.rb +2 -1
- data/review.gemspec +5 -3
- data/samples/sample-book/src/config-epub2.yml +1 -1
- data/samples/sample-book/src/config.yml +3 -3
- data/samples/sample-book/src/lib/tasks/review.rake +19 -1
- data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +2 -1
- data/samples/syntax-book/Gemfile +1 -1
- data/samples/syntax-book/ch01.re +1 -1
- data/samples/syntax-book/ch02.re +21 -6
- data/samples/syntax-book/ch03.re +1 -1
- data/samples/syntax-book/config.yml +1 -1
- data/samples/syntax-book/images/img3-2.png +0 -0
- data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +2 -1
- data/templates/html/_colophon.html.erb +23 -0
- data/templates/html/_colophon_history.html.erb +9 -0
- data/templates/html/_cover.html.erb +10 -0
- data/templates/html/_part_body.html.erb +6 -0
- data/templates/html/_titlepage.html.erb +20 -0
- data/templates/html/layout-html5.html.erb +6 -0
- data/templates/html/layout-xhtml1.html.erb +6 -0
- data/templates/latex/config.erb +35 -23
- data/templates/latex/review-jlreq/README.md +3 -1
- data/templates/latex/review-jlreq/review-base.sty +36 -23
- data/templates/latex/review-jlreq/review-jlreq.cls +18 -25
- data/templates/latex/review-jlreq/review-style.sty +6 -1
- data/templates/latex/review-jlreq/review-tcbox.sty +348 -0
- data/templates/latex/review-jlreq/reviewmacro.sty +5 -0
- data/templates/latex/review-jsbook/README.md +7 -5
- data/templates/latex/review-jsbook/review-base.sty +40 -24
- data/templates/latex/review-jsbook/review-jsbook.cls +13 -3
- data/templates/latex/review-jsbook/review-style.sty +6 -1
- data/templates/latex/review-jsbook/review-tcbox.sty +348 -0
- data/templates/latex/review-jsbook/reviewmacro.sty +5 -0
- data/templates/opf/epubv2.opf.erb +7 -7
- data/templates/opf/epubv3.opf.erb +7 -7
- data/templates/opf/opf_manifest_epubv2.opf.erb +10 -0
- data/templates/opf/opf_manifest_epubv3.opf.erb +10 -0
- data/templates/opf/opf_metainfo_epubv2.opf.erb +17 -0
- data/templates/opf/opf_metainfo_epubv3.opf.erb +49 -0
- data/templates/opf/opf_tocx_epubv2.opf.erb +9 -0
- data/templates/opf/opf_tocx_epubv3.opf.erb +17 -0
- data/templates/web/html/layout-html5.html.erb +9 -8
- data/templates/web/html/layout-xhtml1.html.erb +6 -0
- data/test/assets/header_listener.html +35 -0
- data/test/assets/img_math/img1.png +0 -0
- data/test/assets/img_math/img2.png +0 -0
- data/test/assets/img_math/img3.png +0 -0
- data/test/assets/syntax_book_index_detail.txt +58 -0
- data/test/assets/test_template.tex +6 -3
- data/test/assets/test_template_backmatter.tex +6 -3
- data/test/book_test_helper.rb +11 -5
- data/test/run_test.rb +1 -1
- data/test/test_book.rb +54 -63
- data/test/test_book_chapter.rb +95 -54
- data/test/test_book_part.rb +3 -3
- data/test/test_builder.rb +29 -20
- data/test/test_catalog_converter_cmd.rb +1 -1
- data/test/test_converter.rb +1 -0
- data/test/test_epub3maker.rb +170 -126
- data/test/test_epubmaker.rb +254 -129
- data/test/test_epubmaker_cmd.rb +15 -4
- data/test/test_helper.rb +12 -5
- data/test/test_htmlbuilder.rb +926 -76
- data/test/test_htmlutils.rb +0 -12
- data/test/test_i18n.rb +33 -33
- data/test/test_idgxmlbuilder.rb +531 -20
- data/test/test_idgxmlmaker_cmd.rb +7 -3
- data/test/test_img_math.rb +111 -0
- data/test/test_index.rb +62 -52
- data/test/test_indexbuilder.rb +52 -0
- data/test/test_latexbuilder.rb +891 -20
- data/test/test_latexbuilder_v2.rb +56 -10
- data/test/test_lineinput.rb +20 -93
- data/test/test_logger.rb +7 -7
- data/test/test_makerhelper.rb +0 -12
- data/test/test_markdownbuilder.rb +32 -0
- data/test/test_pdfmaker.rb +100 -11
- data/test/test_pdfmaker_cmd.rb +3 -3
- data/test/test_plaintextbuilder.rb +546 -32
- data/test/test_preprocessor.rb +188 -1
- data/test/test_review_ext.rb +2 -1
- data/test/test_reviewheaderlistener.rb +49 -0
- data/test/test_rstbuilder.rb +25 -1
- data/test/test_sec_counter.rb +156 -0
- data/test/test_template.rb +12 -2
- data/test/test_textmaker_cmd.rb +5 -1
- data/test/test_tocprinter.rb +46 -0
- data/test/test_topbuilder.rb +324 -20
- data/test/test_update.rb +44 -44
- data/test/test_webtocprinter.rb +75 -43
- data/test/test_zip_exporter.rb +5 -6
- 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/Makefile +3 -2
- data/vendor/jsclasses/create_archive.sh +5 -5
- data/vendor/jsclasses/jis/Makefile +3 -2
- data/vendor/jsclasses/jis/jsarticle.cls +22 -18
- data/vendor/jsclasses/jis/jsbook.cls +22 -18
- data/vendor/jsclasses/jis/jsclasses.dtx +94 -13
- data/vendor/jsclasses/jis/jsclasses.ins +15 -5
- data/vendor/jsclasses/jis/jslogo.ins +9 -0
- data/vendor/jsclasses/jis/jslogo.sty +1 -13
- data/vendor/jsclasses/jis/jspf.cls +22 -18
- data/vendor/jsclasses/jis/jsreport.cls +22 -18
- data/vendor/jsclasses/jis/jsverb.ins +9 -0
- data/vendor/jsclasses/jis/jsverb.sty +1 -13
- data/vendor/jsclasses/jis/kiyou.cls +22 -18
- data/vendor/jsclasses/jis/minijs.sty +65 -22
- data/vendor/jsclasses/jis/okumacro.ins +9 -0
- data/vendor/jsclasses/jis/okumacro.sty +1 -13
- 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 +22 -18
- data/vendor/jsclasses/jsbook.cls +22 -18
- data/vendor/jsclasses/jsclasses.dtx +94 -13
- data/vendor/jsclasses/jsclasses.ins +15 -5
- data/vendor/jsclasses/jsclasses.pdf +0 -0
- data/vendor/jsclasses/jslogo.ins +9 -0
- data/vendor/jsclasses/jslogo.pdf +0 -0
- data/vendor/jsclasses/jslogo.sty +1 -13
- data/vendor/jsclasses/jspf.cls +22 -18
- data/vendor/jsclasses/jsreport.cls +22 -18
- 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 +22 -18
- data/vendor/jsclasses/minijs.sty +68 -22
- data/vendor/jsclasses/okumacro.ins +9 -0
- data/vendor/jsclasses/okumacro.pdf +0 -0
- data/vendor/jsclasses/okumacro.sty +1 -13
- 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 +106 -22
- data/.rubocop_todo.yml +0 -7
- data/lib/epubmaker.rb +0 -23
- data/lib/epubmaker/content.rb +0 -110
- data/lib/epubmaker/epubcommon.rb +0 -441
- data/lib/epubmaker/epubv2.rb +0 -143
- data/lib/epubmaker/epubv3.rb +0 -233
- data/lib/epubmaker/producer.rb +0 -375
- data/lib/epubmaker/zip_exporter.rb +0 -81
- data/lib/lineinput.rb +0 -155
- data/lib/review/book/compilable.rb +0 -178
- data/lib/review/tocparser.rb +0 -275
- data/test/test_tocparser.rb +0 -25
data/lib/review/yamlloader.rb
CHANGED
@@ -18,9 +18,10 @@ module ReVIEW
|
|
18
18
|
while file_queue.present?
|
19
19
|
current_file = file_queue.shift
|
20
20
|
current_yaml = YAML.load_file(current_file)
|
21
|
-
if current_yaml.
|
21
|
+
if current_yaml.instance_of?(FalseClass)
|
22
22
|
raise "#{File.basename(current_file)} is malformed."
|
23
23
|
end
|
24
|
+
|
24
25
|
yaml = current_yaml.deep_merge(yaml)
|
25
26
|
|
26
27
|
if yaml.key?('inherit')
|
data/review.gemspec
CHANGED
@@ -7,12 +7,11 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.platform = Gem::Platform::RUBY
|
8
8
|
gem.license = 'LGPL'
|
9
9
|
gem.authors = %w[kmuto takahashim]
|
10
|
-
gem.email = 'kmuto@
|
10
|
+
gem.email = 'kmuto@kmuto.jp'
|
11
11
|
gem.homepage = 'http://github.com/kmuto/review'
|
12
12
|
gem.summary = 'Re:VIEW: a easy-to-use digital publishing system'
|
13
13
|
gem.description = 'Re:VIEW is a digital publishing system for books and ebooks. It supports InDesign, EPUB and LaTeX.'
|
14
14
|
gem.required_rubygems_version = Gem::Requirement.new('>= 0') if gem.respond_to?(:required_rubygems_version=)
|
15
|
-
gem.date = '2020-02-29'
|
16
15
|
|
17
16
|
gem.files = `git ls-files`.split("\n")
|
18
17
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -23,10 +22,13 @@ Gem::Specification.new do |gem|
|
|
23
22
|
gem.add_dependency('image_size')
|
24
23
|
gem.add_dependency('rouge')
|
25
24
|
gem.add_dependency('rubyzip')
|
25
|
+
gem.add_dependency('tty-logger')
|
26
|
+
gem.add_development_dependency('mini_magick')
|
26
27
|
gem.add_development_dependency('pygments.rb')
|
27
28
|
gem.add_development_dependency('rake')
|
28
|
-
gem.add_development_dependency('rubocop', '~>
|
29
|
+
gem.add_development_dependency('rubocop', '~> 1.12.0')
|
29
30
|
gem.add_development_dependency('rubocop-performance')
|
31
|
+
gem.add_development_dependency('rubocop-rake')
|
30
32
|
gem.add_development_dependency('simplecov')
|
31
33
|
gem.add_development_dependency('test-unit')
|
32
34
|
gem.add_development_dependency('unicode-eaw')
|
@@ -11,7 +11,7 @@ language: ja
|
|
11
11
|
# 書名
|
12
12
|
booktitle: Re:VIEWサンプル書籍
|
13
13
|
# 固有IDに使用するドメイン。省略した場合は時刻に基づくランダムUUIDが入る
|
14
|
-
urnid: urn:
|
14
|
+
urnid: urn:uuid:http://tatsu-zine.com/books/review-sample-book/1.0.0/
|
15
15
|
# ISBN。省略した場合はurnidが入る
|
16
16
|
# isbn: null
|
17
17
|
# 著者名。["高橋征義", "John Doe"] のように配列を使うことで複数指定可
|
@@ -1,9 +1,9 @@
|
|
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サンプル書籍
|
6
|
-
urnid: urn:
|
6
|
+
urnid: urn:uuid:http://reviewml.com/books/review-sample-book/
|
7
7
|
# isbn: null
|
8
8
|
aut: Re:VIEW Writers
|
9
9
|
pbl: Re:VIEW Publishers
|
@@ -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-2021 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
|
@@ -36,6 +36,11 @@ WEB_OPTIONS = ENV['REVIEW_WEB_OPTIONS'] || ''
|
|
36
36
|
IDGXML_OPTIONS = ENV['REVIEW_IDGXML_OPTIONS'] || ''
|
37
37
|
TEXT_OPTIONS = ENV['REVIEW_TEXT_OPTIONS'] || ''
|
38
38
|
|
39
|
+
REVIEW_VSCLI = ENV['REVIEW_VSCLI'] || 'vivliostyle'
|
40
|
+
REVIEW_VSCLI_USESANDBOX = ENV['REVIEW_VSCLI_USESANDBOX'] ? '' : '--no-sandbox'
|
41
|
+
REVIEW_VSCLI_PDF = ENV['REVIEW_VSCLI_PDF'] || BOOK_PDF
|
42
|
+
REVIEW_VSCLI_OPTIONS = ENV['REVIEW_VSCLI_OPTIONS'] || ''
|
43
|
+
|
39
44
|
def build(mode, chapter)
|
40
45
|
sh("review-compile --target=#{mode} --footnotetext --stylesheet=style.css #{chapter} > tmp")
|
41
46
|
mode_ext = { 'html' => 'html', 'latex' => 'tex', 'idgxml' => 'xml', 'top' => 'txt', 'plaintext' => 'txt' }
|
@@ -125,4 +130,17 @@ file IDGXMLROOT => SRC do
|
|
125
130
|
FileUtils.rm_rf([IDGXMLROOT])
|
126
131
|
end
|
127
132
|
|
133
|
+
desc 'preview with vivliostyle'
|
134
|
+
task 'vivliostyle:preview': BOOK_EPUB do
|
135
|
+
sh "#{REVIEW_VSCLI} preview #{REVIEW_VSCLI_USESANDBOX} #{REVIEW_VSCLI_OPTIONS} #{BOOK_EPUB}"
|
136
|
+
end
|
137
|
+
|
138
|
+
desc 'build with vivliostyle'
|
139
|
+
task 'vivliostyle:build': BOOK_EPUB do
|
140
|
+
sh "#{REVIEW_VSCLI} build #{REVIEW_VSCLI_USESANDBOX} #{REVIEW_VSCLI_OPTIONS} -o #{REVIEW_VSCLI_PDF} #{BOOK_EPUB}"
|
141
|
+
end
|
142
|
+
|
143
|
+
desc 'build with vivliostyle'
|
144
|
+
task vivliostyle: 'vivliostyle:build'
|
145
|
+
|
128
146
|
CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK + '-pdf', BOOK + '-epub', WEBROOT, 'images/_review_math', 'images/_review_math_text', TEXTROOT, IDGXMLROOT])
|
@@ -1,5 +1,6 @@
|
|
1
|
-
desc 'copy sty/* files from current Re:VIEW source code (in git repos)'
|
2
1
|
REVIEW_TEMPLATE = ENV['REVIEW_TEMPLATE'] || 'review-jsbook'
|
2
|
+
|
3
|
+
desc 'copy sty/* files from current Re:VIEW source code (in git repos)'
|
3
4
|
task :copy_sty do
|
4
5
|
review_rootdir = '../../..'
|
5
6
|
template_dir = File.join(review_rootdir, "templates/latex/#{REVIEW_TEMPLATE}")
|
data/samples/syntax-book/Gemfile
CHANGED
data/samples/syntax-book/ch01.re
CHANGED
@@ -119,7 +119,7 @@ olnumで一応番号が変更可能なことを期待していますが、Webブ
|
|
119
119
|
//emlist{
|
120
120
|
@<b>{bold太字}@<i>{italicイタ}
|
121
121
|
|
122
|
-
: Alpha@<embed>{@}<b>{bold太字}@<embed>{@}<i>{italicイタ}@<embed>{@}<tt>{等幅code}
|
122
|
+
: Alpha@<embed>{@}<b>{bold太字}@<embed>{@}<i>{italicイタ}@<embed>{@}<tt>{等幅code}
|
123
123
|
@<embed>{@}<i>{DEC}の作っていた@<embed>{@}<b>{RISC CPU}。@<embed>{@}<i>{italicイタ}@<embed>{@}<tt>{等幅code}
|
124
124
|
浮動小数点数演算が速い。
|
125
125
|
: POWER
|
data/samples/syntax-book/ch02.re
CHANGED
@@ -255,7 +255,7 @@ Tips。@<b>{太字bold}@<i>{italicイタ}@<tt>{等幅code}
|
|
255
255
|
#@# doorquote、bpo、talk、graph、address、box、linebreak、pagebreak、hr、comment、abbr、acronym、dfn、kbd、q、samp、var、big、small、del、ins、recipe、dtp、raw、embed、include
|
256
256
|
|
257
257
|
== LaTeX式
|
258
|
-
LaTeX式はTeX紙面以外は保証されません。EPUBではMathML(@<tt>{
|
258
|
+
LaTeX式はTeX紙面以外は保証されません。EPUBではMathML(@<tt>{math_format: mathml})を使えますが、表現や互換性が不足しており、LaTeXをバックエンドとして画像化する@<tt>{math_format: imgmath}のほうがよさそうです。
|
259
259
|
|
260
260
|
//texequation{
|
261
261
|
\sum_{i=1}^nf_n(x)
|
@@ -285,7 +285,7 @@ a_{m1} & \cdots & a_{mn}
|
|
285
285
|
#@# 場所ラベル定義
|
286
286
|
|
287
287
|
=== 書体
|
288
|
-
本文での……キーワード@<kw>{キーワード, keyword}@<fn>{kw}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
|
288
|
+
本文での……キーワード@<kw>{キーワード, keyword}@<fn>{kw}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、挿入@<ins>{ins挿入}、削除@<del>{del削除}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
|
289
289
|
|
290
290
|
傍点@<embed>{@}<bou>{bou傍点}、ルビ@<embed>{@}<ruby>{愕然, がくぜん}、縦中横@<embed>{@}<tcy>{90}、はTeXでは現状、別パッケージが必要です。
|
291
291
|
#@# FIXME:TEXでの文字スタイル。外部パッケージが必要
|
@@ -299,24 +299,25 @@ a_{m1} & \cdots & a_{mn}
|
|
299
299
|
|
300
300
|
//footnote[kw][キーワードのカッコは太字にしないほうがいいのかなと思いつつあります(手元の案件では太字にしないよう挙動を変えてしまっているほうが多い)。]
|
301
301
|
|
302
|
-
* 箇条書き内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
|
302
|
+
* 箇条書き内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、挿入@<ins>{ins挿入}、削除@<del>{del削除}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
|
303
303
|
|
304
304
|
//tsize[|latex|p{120mm}]
|
305
305
|
//table{
|
306
|
-
表内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
|
306
|
+
表内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、挿入@<ins>{ins挿入}、削除@<del>{del削除}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}
|
307
307
|
//}
|
308
308
|
|
309
309
|
コードブロック内では対応装飾は減らしてよいと考えます。代わりにballoonが追加されます。
|
310
310
|
|
311
|
-
//emlist[キャプション内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}]{
|
311
|
+
//emlist[キャプション内での……キーワード@<kw>{キーワード, keyword}、太字@<b>{b太字}、イタリック@<i>{iイタリック}、等幅@<tt>{tt等幅}、強調@<strong>{strong強調}、強調@<em>{em強調}、下線@<u>{u下線}、等幅@<code>{code等幅}、等幅太字@<ttb>{ttb等幅太字}、等幅イタリック@<tti>{tti等幅イタリック}、網カケ@<ami>{amiアミ}、挿入@<ins>{ins挿入}、削除@<del>{del削除}、16進UTF文字指定@<uchar>{3042}、インラインアイコン@<icon>{inlineicon}]{
|
312
312
|
コードブロック内での……
|
313
313
|
太字@<b>{b太字}
|
314
314
|
イタリック@<i>{iイタリック}
|
315
315
|
下線@<u>{u下線}
|
316
316
|
網カケ@<ami>{amiアミ} @<balloon>{ふきだし説明}
|
317
|
+
挿入@<ins>{ins挿入}、削除@<del>{del削除}
|
317
318
|
//}
|
318
319
|
|
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}
|
320
|
+
=== 見出し内 @<b>{BOLD},@<i>{ITALIC},@<tt>{TT},@<strong>{STRONG},@<em>{EM},@<code>{CODE},@<ttb>{TTB},@<tti>{TTI},@<ami>{AMI},@<bou>{BOU},@<kw>{KW},@<u>{UNDERLINE},@<ins>{INS}、@<del>{DEL}
|
320
321
|
|
321
322
|
==={crossref} 参照
|
322
323
|
#@# FIXME:任意ラベルを使うと、EPUBチェックエラーになることがある?
|
@@ -339,10 +340,24 @@ labelで定義したラベルへの参照の例です。EPUBだと@<href>{#inlin
|
|
339
340
|
#@# FIXME:EPUB側にTeXのほうを寄せるようにRe:VIEWコードを直す
|
340
341
|
#@# FIXME:TeXではpagerefがほしい、ということがありそう。EPUBとの整合性を検討
|
341
342
|
|
343
|
+
説明箇条書きはTeXで特殊な扱いをしているため、参照の確認を以下でしておきます。
|
344
|
+
|
345
|
+
: @<chap>{ch01}
|
346
|
+
章番号
|
347
|
+
: @<title>{ch01}
|
348
|
+
章題
|
349
|
+
: @<chapref>{ch01}
|
350
|
+
章番号+題
|
351
|
+
: @<hd>{ch02|crossref}
|
352
|
+
節
|
353
|
+
: @<column>{ch03|column2}
|
354
|
+
コラム参照
|
355
|
+
|
342
356
|
=== 参考文献
|
343
357
|
参考文献@<tt>{bib.re}ファイルへの文献参照は、@<bib>{lins}とします。
|
344
358
|
|
345
359
|
=== 索引
|
346
360
|
@<hidx>{索引}@<hidx>{index}索引はTeXとIDGXML以外では妥当な動作を定義していません。idx@<hidx>{索引<<>>idx}は文中にも表示し、hidx@<hidx>{索引<<>>hidx}は文中からは隠した形の索引にします。読みは@<idx>{Mecab}があればそちらを使いますが、@<idx>{辞書ファイル}を直接定義することもできます。@<hidx>{!<>"$&()~=|,./\{\}?_[]*:;+%#()'`^}
|
361
|
+
@<hidx>{|}@<hidx>{{}@<hidx>$}$
|
347
362
|
|
348
363
|
idx, hidxいずれも=見出しの中には入れないようにし、後続の段落先頭にhidxで入れるように注意します(入れてしまうと目次などがおかしくなります)。
|
data/samples/syntax-book/ch03.re
CHANGED
Binary file
|
@@ -1,5 +1,6 @@
|
|
1
|
-
desc 'copy sty/* files from current Re:VIEW source code (in git repos)'
|
2
1
|
REVIEW_TEMPLATE = ENV['REVIEW_TEMPLATE'] || 'review-jsbook'
|
2
|
+
|
3
|
+
desc 'copy sty/* files from current Re:VIEW source code (in git repos)'
|
3
4
|
task :copy_sty do
|
4
5
|
review_rootdir = '../..'
|
5
6
|
template_dir = File.join(review_rootdir, "templates/latex/#{REVIEW_TEMPLATE}")
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div class="colophon">
|
2
|
+
<% if @config['subtitle'].nil? %>
|
3
|
+
<p class="title"><%= h(@config.name_of('title')) %></p>
|
4
|
+
<% else %>
|
5
|
+
<p class="title"><%= h(@config.name_of('title')) %><br /><span class="subtitle"><%= h(@config.name_of('subtitle')) %></span></p>
|
6
|
+
<% end %>
|
7
|
+
<% if @config['date'] || @config['history'] %>
|
8
|
+
<%= colophon_history %>
|
9
|
+
<% end %>
|
10
|
+
<table class="colophon">
|
11
|
+
<% @config['colophon_order'].each do |role| %>
|
12
|
+
<% if @config[role] %>
|
13
|
+
<tr><th><%= h(ReVIEW::I18n.t(role)) %></th><td><%= h(join_with_separator(config.names_of(role), ReVIEW::I18n.t('names_splitter'))) %></td></tr>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
16
|
+
<% if @isbn_hyphen %>
|
17
|
+
<tr><th>ISBN</th><td><%= @isbn_hyphen %></td></tr>
|
18
|
+
<% end %>
|
19
|
+
</table>
|
20
|
+
<% if @config['rights'] && !@config['rights'].empty? %>
|
21
|
+
<p class="copyright"><%= join_with_separator(config.names_of('rights').map { |m| h(m) }, '<br />') %></p>
|
22
|
+
<% end %>
|
23
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<% if @coverimage_src %>
|
2
|
+
<div id="cover-image" class="cover-image">
|
3
|
+
<img src="<%= @coverimage_src %>" alt="<%= h(@config.name_of('title')) %>" class="max"/>
|
4
|
+
</div>
|
5
|
+
<% else %>
|
6
|
+
<h1 class="cover-title"><%= h(@config.name_of('title')) %></h1>
|
7
|
+
<% if @config['subtitle'] %>
|
8
|
+
<h2 class="cover-subtitle"><%= h(@config.name_of('subtitle')) %></h2>
|
9
|
+
<% end %>
|
10
|
+
<% end %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<h1 class="tp-title"><%= @title_str %></h1>
|
2
|
+
<% if @subtitle_str %>
|
3
|
+
<h2 class="tp-subtitle"><%= h(@subtitle_str) %></h2>
|
4
|
+
<% end %>
|
5
|
+
<% if @author_str %>
|
6
|
+
<p>
|
7
|
+
<br />
|
8
|
+
<br />
|
9
|
+
</p>
|
10
|
+
<h2 class="tp-author"><%= h(@author_str) %></h2>
|
11
|
+
<% end %>
|
12
|
+
<% if @publisher_str %>
|
13
|
+
<p>
|
14
|
+
<br />
|
15
|
+
<br />
|
16
|
+
<br />
|
17
|
+
<br />
|
18
|
+
</p>
|
19
|
+
<h3 class="tp-publisher"><%= h(@publisher_str) %></h3>
|
20
|
+
<% end %>
|
@@ -3,6 +3,12 @@
|
|
3
3
|
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:ops="http://www.idpf.org/2007/ops" xml:lang="<%= @language %>">
|
4
4
|
<head>
|
5
5
|
<meta charset="UTF-8" />
|
6
|
+
<% if @javascripts.present? %>
|
7
|
+
<% @javascripts.each do |js| %>
|
8
|
+
<%= js %>
|
9
|
+
|
10
|
+
<% end %>
|
11
|
+
<% end %>
|
6
12
|
<% if @stylesheets.present? %>
|
7
13
|
<% @stylesheets.each do |style| %>
|
8
14
|
<link rel="stylesheet" type="text/css" href="<%= style %>" />
|
@@ -4,6 +4,12 @@
|
|
4
4
|
<head>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
|
6
6
|
<meta http-equiv="Content-Style-Type" content="text/css"/>
|
7
|
+
<% if @javascripts.present? %>
|
8
|
+
<% @javascripts.each do |js| %>
|
9
|
+
<%= js %>
|
10
|
+
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
7
13
|
<% if @stylesheets.present? %>
|
8
14
|
<% @stylesheets.each do |style| %>
|
9
15
|
<link rel="stylesheet" type="text/css" href="<%= style %>" />
|
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}
|
@@ -100,6 +101,14 @@
|
|
100
101
|
<%- if @config['use_part'] -%>
|
101
102
|
\def\reviewusepart{true}
|
102
103
|
<%- end -%>
|
104
|
+
<%- if @config['pdfmaker']['bbox'] -%>
|
105
|
+
\def\review@bbox{<%= @config['pdfmaker']['bbox'] %>}
|
106
|
+
<%- end -%>
|
107
|
+
<%- if @boxsetting -%>
|
108
|
+
\newcommand{\reviewboxsetting}{%
|
109
|
+
<%= @boxsetting %>%
|
110
|
+
}
|
111
|
+
<%- end -%>
|
103
112
|
|
104
113
|
\def\reviewbackcompatibilityhook{
|
105
114
|
\ifdefined\reviewimagecaption\else% for 3.0.0 compatibility
|
@@ -112,6 +121,9 @@
|
|
112
121
|
\ifdefined\covermatter\else% for 4.0.0 compatibility
|
113
122
|
\def\covermatter{}
|
114
123
|
\fi
|
124
|
+
\ifdefined\reviewchapref\else% for 5.1.0 compatibility
|
125
|
+
\newcommand{\reviewchapref}[2]{\hyperref[##2]{##1}}
|
126
|
+
\fi
|
115
127
|
}
|
116
128
|
|
117
129
|
\makeatother
|
@@ -38,7 +38,9 @@ texdocumentclass: ["review-jlreq", "クラスオプションたち(省略可
|
|
38
38
|
|
39
39
|
`media` の値によって表紙(config.yml の coverimage に指定した画像)の配置の有無は自動で切り替わりますが、`cover=true` とすれば必ず表紙を入れるようになります。
|
40
40
|
|
41
|
-
|
41
|
+
### 表紙画像のサイズの仕上がり紙面合わせ `cover_fit_page=<trueまたはfalse>`
|
42
|
+
|
43
|
+
上記の coverimage で指定する画像ファイルは、原寸を想定しているため、サイズが異なる場合にははみ出たり、小さすぎたりすることになります。できるだけ原寸で用意することを推奨しますが、`cover_fit_page=true` とすれば表紙画像を紙面の仕上がりサイズに合わせて拡縮します。
|
42
44
|
|
43
45
|
### 特定の用紙サイズ `paper=<用紙サイズ>`
|
44
46
|
|