review 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +1 -0
  3. data/ChangeLog +100 -0
  4. data/README.rdoc +11 -12
  5. data/Rakefile +6 -2
  6. data/bin/review-check +1 -1
  7. data/bin/review-compile +13 -4
  8. data/bin/review-epubmaker +172 -24
  9. data/bin/review-epubmaker-ng +8 -161
  10. data/bin/review-index +1 -1
  11. data/bin/review-init +17 -5
  12. data/bin/review-pdfmaker +40 -19
  13. data/bin/review-preproc +1 -1
  14. data/bin/review-validate +2 -2
  15. data/bin/review-vol +1 -1
  16. data/debian/control +2 -2
  17. data/doc/format.rdoc +23 -6
  18. data/doc/format_idg.rdoc +3 -3
  19. data/doc/libepubmaker/config.yaml +163 -0
  20. data/doc/quickstart.rdoc +27 -27
  21. data/doc/sample.yaml +10 -5
  22. data/lib/epubmaker.rb +2 -5
  23. data/lib/epubmaker/content.rb +9 -6
  24. data/lib/epubmaker/epubv2.rb +233 -109
  25. data/lib/epubmaker/epubv3.rb +83 -119
  26. data/lib/epubmaker/producer.rb +50 -20
  27. data/lib/epubmaker/resource.rb +22 -8
  28. data/lib/review/book/base.rb +1 -0
  29. data/lib/review/book/chapter.rb +2 -2
  30. data/lib/review/book/compilable.rb +1 -1
  31. data/lib/review/book/index.rb +33 -27
  32. data/lib/review/book/parameters.rb +3 -2
  33. data/lib/review/book/part.rb +1 -1
  34. data/lib/review/builder.rb +10 -42
  35. data/lib/review/compiler.rb +1 -1
  36. data/lib/review/configure.rb +3 -3
  37. data/lib/review/epubmaker.rb +428 -0
  38. data/lib/review/htmlbuilder.rb +45 -95
  39. data/lib/review/htmlutils.rb +2 -0
  40. data/lib/review/i18n.yaml +25 -0
  41. data/lib/review/idgxmlbuilder.rb +11 -9
  42. data/lib/review/inaobuilder.rb +1 -1
  43. data/lib/review/latexbuilder.rb +7 -6
  44. data/lib/review/latexutils.rb +6 -0
  45. data/lib/review/makerhelper.rb +4 -2
  46. data/lib/review/markdownbuilder.rb +8 -0
  47. data/lib/review/sec_counter.rb +71 -0
  48. data/lib/review/topbuilder.rb +0 -1
  49. data/lib/review/version.rb +2 -2
  50. data/review.gemspec +4 -4
  51. data/test/sample-book/README.md +2 -2
  52. data/test/sample-book/src/Rakefile +2 -2
  53. data/test/sample-book/src/config.yml +4 -4
  54. data/test/sample-book/src/images/cover.jpg +0 -0
  55. data/test/sample-book/src/sty/{samplemacro.sty → reviewmacro.sty} +1 -1
  56. data/test/test_book_parameter.rb +1 -1
  57. data/test/test_epubmaker.rb +77 -15
  58. data/test/test_epubmaker_cmd.rb +11 -7
  59. data/test/test_helper.rb +7 -0
  60. data/test/test_htmlbuilder.rb +39 -6
  61. data/test/test_idgxmlbuilder.rb +14 -2
  62. data/test/test_inaobuilder.rb +2 -1
  63. data/test/test_latexbuilder.rb +23 -2
  64. data/test/test_makerhelper.rb +19 -3
  65. data/test/test_markdownbuilder.rb +35 -0
  66. data/test/test_pdfmaker_cmd.rb +11 -7
  67. data/test/test_topbuilder.rb +36 -2
  68. metadata +18 -18
  69. data/VERSION +0 -1
  70. data/doc/libepubmaker/sample.yaml +0 -90
@@ -1,176 +1,23 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
3
  #
4
- # Copyright (c) 2010 Kenshi Muto and Masayoshi Takahashi
4
+ # Copyright (c) 2010-2013 Kenshi Muto and Masayoshi Takahashi
5
5
  #
6
6
  # This program is free software.
7
7
  # You can distribute or modify this program under the terms of
8
8
  # the GNU LGPL, Lesser General Public License version 2.1.
9
9
  # For details of the GNU LGPL, see the file "COPYING".
10
10
  #
11
-
12
11
  require 'pathname'
13
12
  bindir = Pathname.new(__FILE__).realpath.dirname
14
13
  $LOAD_PATH.unshift((bindir + '../lib').realpath)
15
- require 'review'
16
- require 'epubmaker'
17
- include EPUBMaker
18
-
19
- def main
20
- if ARGV.size != 1
21
- puts "Usage: #{$0} configfile"
22
- exit 0
23
- end
24
-
25
- yamlfile = ARGV[0]
26
- @params = ReVIEW::Configure.values.merge(YAML.load_file(yamlfile))
27
- @epub = Producer.new(@params)
28
- @epub.load(yamlfile)
29
- @params = @epub.params
30
-
31
- bookname = @params["bookname"]
32
-
33
- if File.exist?("#{bookname}.epub")
34
- STDERR.puts "#{bookname}.epub exists. Please remove or rename it first."
35
- exit 1
36
- end
37
- if @params["debug"] && File.exist?("#{bookname}")
38
- STDERR.puts "#{bookname} debug directory exists. Please remove or rename it first."
39
- exit 1
40
- end
41
-
42
- basetmp = Dir.mktmpdir
43
-
44
- FileUtils.cp(@params["cover"], "#{basetmp}/#{@params["cover"]}") if !@params["cover"].nil? && File.exist?(@params["cover"])
45
-
46
- if @params["titlepage"] # FIXME
47
- FileUtils.cp(@params["titlepage"], "#{basetmp}/#{@params["titlepage"]}")
48
- @epub.contents.push(Content.new("id" => "title", "file" => @params["titlepage"], "title" => @epub.res.v("titlepagetitle")))
49
- end
50
-
51
- makeBody(basetmp, yamlfile)
52
-
53
- if @params["colophon"]
54
- if @params["colophon"].instance_of?(String)
55
- FileUtils.cp(@params["colophon"], "#{basetmp}/colophon.#{@params["htmlext"]}")
56
- else
57
- File.open("#{basetmp}/colophon.#{@params["htmlext"]}", "w") {|f| @epub.colophon(f) }
58
- end
59
- @epub.contents.push(Content.new("id" => "colophon", "file" => "colophon.#{@params["htmlext"]}", "title" => @epub.res.v("colophontitle")))
60
- end
61
-
62
- epubtmpdir = @params["debug"].nil? ? nil : "#{Dir.pwd}/#{bookname}"
63
- unless @params["debug"].nil?
64
- Dir.mkdir(bookname)
65
- end
66
- @epub.produce("#{bookname}.epub", basetmp, epubtmpdir)
67
-
68
- FileUtils.rm_r(basetmp)
69
- end
70
-
71
- def makeBody(basetmp, yamlfile)
72
- pre = 0
73
- body = 0
74
- post = 0
75
- @manifeststr = ""
76
- @ncxstr = ""
77
- @tocdesc = Array.new
78
- toccount = 2
79
-
80
- if File.exists?("PREDEF")
81
- File.open("PREDEF") do |chaps|
82
- chaps.each_line do |l|
83
- pre += 1
84
- next if l =~ /\A#/
85
- fork {
86
- STDOUT.reopen("#{basetmp}/pre#{pre}.#{@params["htmlext"]}")
87
- exec("review-compile --target=html --yaml=#{yamlfile} #{l}")
88
- }
89
- Process.waitall
90
- getanchors(basetmp, "pre#{pre}.#{@params["htmlext"]}")
91
- end
92
- end
93
- end
94
-
95
- if File.exists?("CHAPS")
96
- File.open("CHAPS") do |chaps|
97
- chaps.each_line do |l|
98
- body += 1
99
- next if l =~ /\A#/
100
- fork {
101
- STDOUT.reopen("#{basetmp}/chap#{body}.#{@params["htmlext"]}")
102
- exec("review-compile --target=html --yaml=#{yamlfile} #{l}")
103
- }
104
- Process.waitall
105
- getanchors(basetmp, "chap#{body}.#{@params["htmlext"]}")
106
- end
107
- end
108
- end
109
-
110
- if File.exists?("POSTDEF")
111
- File.open("POSTDEF") do |chaps|
112
- chaps.each_line do |l|
113
- post += 1
114
- next if l =~ /^#/
115
- fork {
116
- STDOUT.reopen("#{basetmp}/post#{post}.#{@params["htmlext"]}")
117
- exec("review-compile --target=html --yaml=#{yamlfile} #{l}")
118
- }
119
- Process.waitall
120
- getanchors(basetmp, "post#{post}.#{@params["htmlext"]}")
121
- end
122
- end
123
- end
124
- if File.exist?("images")
125
- Dir.mkdir("#{basetmp}/images")
126
- copyImagesToDir("images", "#{basetmp}/images")
127
- end
128
- end
129
-
130
- def getanchors(basetmp, filename)
131
- File.open("#{basetmp}/#{filename}") do |f|
132
- firsttime = true
133
- f.each_line do |l|
134
- if l =~ /\A<h(\d)><a id=\"(.+?)\" \/>(.+?)<\/h/
135
- # level, ID, content
136
- level = $1.to_i
137
- id = $2
138
- title = $3
139
- if level == 1 && !firsttime.nil?
140
- @epub.contents.push(Content.new({
141
- "id" => "#{filename.sub(".#{@params["htmlext"]}", '')}",
142
- "file" => "#{filename}",
143
- "level" => level,
144
- "title" => title
145
- }))
146
- firsttime = nil
147
- else
148
- @epub.contents.push(Content.new({
149
- "id" => "#{filename.sub(".#{@params["htmlext"]}", '')}-#{id}",
150
- "file" => "#{filename}##{id}",
151
- "level" => level,
152
- "title" => title
153
- }))
154
- end
155
- end
156
- end
157
- end
158
- end
14
+ require 'review/epubmaker'
159
15
 
160
- def copyImagesToDir(dirname, copybase)
161
- Dir.open(dirname) do |dir|
162
- dir.each do |fname|
163
- next if fname =~ /\A\./
164
- if FileTest.directory?("#{dirname}/#{fname}")
165
- copyImagesToDir("#{dirname}/#{fname}", "#{copybase}/#{fname}")
166
- else
167
- if fname =~ /\.(png|gif|jpg|jpeg|svg)\Z/i
168
- Dir.mkdir(copybase) unless File.exist?(copybase)
169
- FileUtils.cp "#{dirname}/#{fname}", copybase
170
- end
171
- end
172
- end
173
- end
16
+ rv = ReVIEW::EPUBMaker.new
17
+ if ARGV.size < 1 || !File.exist?(ARGV[0])
18
+ STDERR.puts "Usage: #{$0} YAML_filename [export_filename]"
19
+ exit 0
174
20
  end
175
21
 
176
- main
22
+ bookname = (ARGV.size > 1) ? ARGV[1] : nil
23
+ rv.produce(ARGV[0], bookname)
data/bin/review-index CHANGED
@@ -2,7 +2,7 @@
2
2
  #
3
3
  #
4
4
  # Copyright (c) 1999-2007 Minero Aoki
5
- # 2008-2010 Minero Aoki, Kenshi Muto
5
+ # 2008-2014 Minero Aoki, Kenshi Muto
6
6
  #
7
7
  # This program is free software.
8
8
  # You can distribute or modify this program under the terms of
data/bin/review-init CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # Copyright (c) 2013 Masanori Kado
3
+ # Copyright (c) 2013-2014 Masanori Kado
4
4
  #
5
5
  # This program is free software.
6
6
  # You can distribute or modify this program under the terms of
@@ -15,14 +15,16 @@ def main
15
15
  exit
16
16
  end
17
17
 
18
- dir = File.expand_path(ARGV.shift)
18
+ initdir = File.expand_path(ARGV.shift)
19
19
  @review_dir = File.dirname(File.expand_path(__FILE__ + "./../"))
20
20
 
21
- generate_dir(dir) do |dir|
21
+ generate_dir(initdir) do |dir|
22
22
  generate_review_setting_files(dir)
23
23
  generate_sample(dir)
24
24
  generate_images_dir(dir)
25
+ generate_cover_image(dir)
25
26
  generate_layout(dir)
27
+ generate_texmacro(dir)
26
28
  generate_config(dir)
27
29
  generate_rakefile(dir)
28
30
  end
@@ -54,7 +56,7 @@ def generate_layout(dir)
54
56
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
55
57
  <meta http-equiv="Content-Style-Type" content="text/css" />
56
58
  <link rel="stylesheet" type="text/css" href="style.css" />
57
- <meta name="generator" content="ReVIEW" />
59
+ <meta name="generator" content="Re:VIEW" />
58
60
  <title><%= title %></title>
59
61
  </head>
60
62
  <body>
@@ -77,6 +79,10 @@ def generate_images_dir(dir)
77
79
  Dir.mkdir dir + '/images'
78
80
  end
79
81
 
82
+ def generate_cover_image(dir)
83
+ FileUtils.cp @review_dir + "/test/sample-book/src/images/cover.jpg", dir + '/images/'
84
+ end
85
+
80
86
  def generate_config(dir)
81
87
  FileUtils.cp @review_dir + "/test/sample-book/src/config.yml", dir
82
88
  end
@@ -85,10 +91,16 @@ def generate_style(dir)
85
91
  File.open(dir + "/style.css", "w")
86
92
  end
87
93
 
94
+ def generate_texmacro(dir)
95
+ texmacrodir = dir + '/sty'
96
+ Dir.mkdir texmacrodir
97
+ FileUtils.cp @review_dir + "/test/sample-book/src/sty/reviewmacro.sty", texmacrodir
98
+ end
99
+
88
100
  def generate_rakefile(dir)
89
101
  FileUtils.cp @review_dir + "/test/sample-book/src/Rakefile", dir
90
102
  end
91
103
 
92
- if $0 == __FILE__
104
+ if File.basename($0) == File.basename(__FILE__)
93
105
  main()
94
106
  end
data/bin/review-pdfmaker CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # encoding: utf-8
3
3
  #
4
- # Copyright (c) 2010 Kenshi Muto and Masayoshi Takahashi
4
+ # Copyright (c) 2010-2014 Kenshi Muto and Masayoshi Takahashi
5
5
  #
6
6
  # This program is free software.
7
7
  # You can distribute or modify this program under the terms of
@@ -19,6 +19,7 @@ bindir = Pathname.new(__FILE__).realpath.dirname
19
19
  $LOAD_PATH.unshift((bindir + '../lib').realpath)
20
20
 
21
21
  require 'review'
22
+ require 'review/i18n'
22
23
 
23
24
  def error(msg)
24
25
  $stderr.puts "#{File.basename($0, '.*')}: error: #{msg}"
@@ -32,7 +33,7 @@ end
32
33
 
33
34
  def check_book(values)
34
35
  pdf_file = values["bookname"]+".pdf"
35
- if File.exists? pdf_file
36
+ if File.exist? pdf_file
36
37
  error "file already exists:#{pdf_file}"
37
38
  end
38
39
  end
@@ -86,6 +87,10 @@ def main
86
87
  values["usepackage"] = "\\usepackage{#{values['texstyle']}}"
87
88
  end
88
89
 
90
+ %w[aut csl trl dsr ill cov edt].each do |item|
91
+ values[item] = [values[item]] if !values[item].nil? && values[item].instance_of?(String)
92
+ end
93
+
89
94
  copy_images("./images", "#{@path}/images")
90
95
  copyStyToDir(Dir.pwd + "/sty", @path)
91
96
  copyStyToDir(Dir.pwd, @path, "tex")
@@ -97,22 +102,25 @@ def main
97
102
  ## do compile
98
103
  enc = values["params"].to_s.split(/\s+/).find{|i| i =~ /\A--outencoding=/ }
99
104
  kanji = enc ? enc.split(/=/).last.gsub(/-/, '').downcase : 'utf8'
105
+ texcommand = values["texcommand"] || "platex"
100
106
  fork {
101
- exec("platex -kanji=#{kanji} book.tex")
107
+ exec("#{texcommand} -kanji=#{kanji} book.tex")
102
108
  }
103
109
  Process.waitall
104
110
  fork {
105
- exec("platex -kanji=#{kanji} book.tex")
111
+ exec("#{texcommand} -kanji=#{kanji} book.tex")
106
112
  }
107
113
  Process.waitall
108
114
  fork {
109
- exec("platex -kanji=#{kanji} book.tex")
115
+ exec("#{texcommand} -kanji=#{kanji} book.tex")
110
116
  }
111
- Process.waitall
112
- fork {
113
- exec("dvipdfmx -d 5 book.dvi")
114
- }
115
- Process.waitall
117
+ if texcommand != "lualatex"
118
+ Process.waitall
119
+ fork {
120
+ exec("dvipdfmx -d 5 book.dvi")
121
+ }
122
+ Process.waitall
123
+ end
116
124
  }
117
125
  FileUtils.cp("#{@path}/book.pdf", "#{@basedir}/#{bookname}.pdf")
118
126
  end
@@ -170,16 +178,29 @@ def get_template(values)
170
178
 
171
179
  okuduke = ""
172
180
  authors = ""
173
- if values["aut"]
174
- okuduke += "著 者 & #{values["aut"]} \\\\\n"
175
- authors = values["aut"]+ "\\vspace*{1zh} 著"
181
+ if !values["aut"].nil? && !values["aut"].empty?
182
+ okuduke += "著 者 & #{values["aut"].join(ReVIEW::I18n.t("names_splitter"))} \\\\\n"
183
+ authors = values["aut"].join(ReVIEW::I18n.t("names_splitter")) + ReVIEW::I18n.t("author_postfix")
184
+ end
185
+ if !values["csl"].nil? && !values["csl"].empty?
186
+ okuduke += "監 修 & #{values["csl"].join(ReVIEW::I18n.t("names_splitter"))} \\\\\n"
187
+ authors += " \\\\\n"+values["csl"].join(ReVIEW::I18n.t("names_splitter")) + ReVIEW::I18n.t("supervisor_postfix")
188
+ end
189
+ if !values["trl"].nil? && !values["trl"].empty?
190
+ okuduke += "翻 訳 & #{values["trl"].join(ReVIEW::I18n.t("names_splitter"))} \\\\\n"
191
+ authors += " \\\\\n"+values["trl"].join(ReVIEW::I18n.t("names_splitter")) + ReVIEW::I18n.t("translator_postfix")
192
+ end
193
+ if !values["dsr"].nil? && !values["dsr"].empty?
194
+ okuduke += "デザイン & #{values["dsr"].join(ReVIEW::I18n.t("names_splitter"))} \\\\\n"
195
+ end
196
+ if !values["ill"].nil? && !values["ill"].empty?
197
+ okuduke += "イラスト & #{values["ill"].join(ReVIEW::I18n.t("names_splitter"))} \\\\\n"
176
198
  end
177
- if values["trl"]
178
- authors += " \\\\\n"+values["trl"]+ "\\vspace*{1zh} "
179
- okuduke += "翻 訳 & #{values["trl"]} \\\\\n"
199
+ if !values["cov"].nil? && !values["cov"].empty?
200
+ okuduke += "表 紙 & #{values["cov"].join(ReVIEW::I18n.t("names_splitter"))} \\\\\n"
180
201
  end
181
- if values["edt"]
182
- okuduke += "編集者 & #{values["edt"]} \\\\\n"
202
+ if !values["edt"].nil? && !values["edt"].empty?
203
+ okuduke += "編集者 & #{values["edt"].join(ReVIEW::I18n.t("names_splitter"))} \\\\\n"
183
204
  end
184
205
  okuduke += <<EOB
185
206
  発行所 & #{values["prt"]} \\\\
@@ -190,7 +211,7 @@ EOB
190
211
  template = File.expand_path(File.dirname(__FILE__) +
191
212
  '/../lib/review/review.tex.erb')
192
213
  layout_file = File.join(@basedir, "layouts", "layout.tex.erb")
193
- if File.exists?(layout_file)
214
+ if File.exist?(layout_file)
194
215
  template = layout_file
195
216
  end
196
217
 
data/bin/review-preproc CHANGED
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # $Id: review-preproc 3761 2007-12-31 07:20:09Z aamine $
4
4
  #
5
- # Copyright (c) 2010 Minero Aoki, Kenshi Muto
5
+ # Copyright (c) 2010-2014 Minero Aoki, Kenshi Muto
6
6
  # Copyright (c) 1999-2007 Minero Aoki
7
7
  #
8
8
  # This program is free software.
data/bin/review-validate CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- # Copyright (c) 2010 Kenshi Muto
2
+ # Copyright (c) 2010-2014 Kenshi Muto
3
3
  #
4
4
  # This program is free software
5
5
  # You can distribute or modify this program under the terms of
@@ -7,7 +7,7 @@
7
7
  # For details of the GNU LGPL, see the file "COPYING".
8
8
  #
9
9
 
10
- # simple validator for ReVIEW
10
+ # simple validator for Re:VIEW
11
11
 
12
12
  block = nil
13
13
  maxcolcount = 0
data/bin/review-vol CHANGED
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # $Id: review-vol 3901 2008-02-11 20:04:59Z aamine $
4
4
  #
5
- # Copyright (c) 2003-2007 Minero Aoki
5
+ # Copyright (c) 2003-2014 Minero Aoki
6
6
  #
7
7
  # This program is free software.
8
8
  # You can distribute or modify this program under the terms of
data/debian/control CHANGED
@@ -13,10 +13,10 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ruby
13
13
  Recommends: zip
14
14
  Suggests: ptex-bin, okumura-clsfiles, libmathml-ruby
15
15
  Description: easy-to-use digital publishing system for Japanese books and ebooks
16
- ReVIEW is a digital publishing system for books and ebooks.
16
+ Re:VIEW is a digital publishing system for books and ebooks.
17
17
  It is aimed professional Japanese editorial use.
18
18
  .
19
- ReVIEW generates HTML, LaTeX, plain text, and Adobe InDesign XML
19
+ Re:VIEW generates HTML, LaTeX, plain text, and Adobe InDesign XML
20
20
  from a text file with simple and extensible tags.
21
21
  .
22
22
  This package provides the builders for EPUB and PDF.
data/doc/format.rdoc CHANGED
@@ -1,6 +1,6 @@
1
- = ReVIEW フォーマット
1
+ = Re:VIEW フォーマット
2
2
 
3
- ReVIEW フォーマットの文法について解説します。ReVIEW
3
+ Re:VIEW フォーマットの文法について解説します。Re:VIEW
4
4
  フォーマットは ASCII の EWB を基本としながら、一部に
5
5
  RD や各種 Wiki の文法をとりいれて簡素化しています。
6
6
 
@@ -226,6 +226,21 @@ RD や各種 Wiki の文法をとりいれて簡素化しています。
226
226
 
227
227
  なお、後述しますが、インラインで図を出力するには@<icon>を使用します。
228
228
 
229
+ 図として貼り込む画像ファイルは、次の順序で探索され、最初に発見されたものが利用されます。
230
+
231
+ 1. <imgdir>/<builder>/<chapid>/<id>.<ext>
232
+ 2. <imgdir>/<builder>/<chapid>-<id>.<ext>
233
+ 3. <imgdir>/<builder>/<id>.<ext>
234
+ 4. <imgdir>/<chapid>/<id>.<ext>
235
+ 5. <imgdir>/<chapid>-<id>.<ext>
236
+ 6. <imgdir>/<id>.<ext>
237
+
238
+ * <imgdir> はデフォルトでは images ディレクトリです。
239
+ * <builder> は利用しているビルダ名 (ターゲット名) で、たとえば --target=html としているのであれば、images/html ディレクトリとなります。
240
+ * <chapid> は re ファイルの名前に相当します。たとえば ch01.re という名前であれば「ch01」です。
241
+ * <id> は //image[〜] の最初に入れた「〜」のことです (つまり、ID に日本語や空白交じりの文字を使ってしまうと、後で画像ファイル名の名付けに苦労することになります!)。
242
+ * <ext> は Re:VIEW が自動で判別する拡張子です。ビルダによってサポートおよび優先する拡張子は異なります。
243
+
229
244
  == 番号が振られていない図
230
245
 
231
246
  //indepimage[ファイル名][キャプション] で番号が振られていない画像ファイルを生成します。キャプションは省略できます。
@@ -317,7 +332,9 @@ footnotetextオプションを使うには、YAMLファイルのparamsに「--fo
317
332
 
318
333
  これでPDFのコラムや表のなかでも脚注が使えるようになります。
319
334
 
320
- ただし、通常の脚注(footnote)ではなく、footnotemarkとfootnotetextを使うため、本文と脚注が別ページに分かれる可能性があるなど、いろいろな制約があります。
335
+ ただし、通常の脚注(footnote)ではなく、footnotemarkとfootnotetextを使うため、
336
+ 本文と脚注が別ページに分かれる可能性があるなど、いろいろな制約があります。
337
+ なお、採番が別々になるためfootnoteとfootnotemark/footnotetextを両立させることはできません。
321
338
 
322
339
  == 参考文献の定義
323
340
 
@@ -393,7 +410,7 @@ LaTeX の式を挿入するには、//texequation{ 〜 //} を使います。
393
410
 
394
411
  == 生データ行
395
412
 
396
- ReVIEW のタグ範囲を越えて何か特別な行を挿入したい場合、//raw を使います。
413
+ Re:VIEW のタグ範囲を越えて何か特別な行を挿入したい場合、//raw を使います。
397
414
 
398
415
  例:
399
416
 
@@ -419,7 +436,7 @@ ReVIEW のタグ範囲を越えて何か特別な行を挿入したい場合、/
419
436
 
420
437
  == その他の文法
421
438
 
422
- ReVIEW は任意のブロックを追加可能なので、本によって専用ブロックを
439
+ Re:VIEW は任意のブロックを追加可能なので、本によって専用ブロックを
423
440
  使う場合があります。これまでに使った例を以下に示します。
424
441
 
425
442
  //prototype:: 関数プロトタイプ。『ふつうのLinuxプログラミング』で使用。
@@ -568,7 +585,7 @@ Web ハイパーリンクを記述するには、リンクに @<href>、アン
568
585
 
569
586
  == 国際化(i18n)
570
587
 
571
- ReVIEWが出力する文字列(「第◯章」「図」「表」など)を、指定した言語に
588
+ Re:VIEWが出力する文字列(「第◯章」「図」「表」など)を、指定した言語に
572
589
  合わせて出力することができます。デフォルトは日本語です。
573
590
 
574
591
  CHAPS などと同じディレクトリに locale.yaml というファイルを用意して、