review 1.0.0 → 1.1.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.
- data/.travis.yml +1 -2
- data/ChangeLog +65 -0
- data/Gemfile +5 -0
- data/README.rdoc +6 -1
- data/Rakefile +14 -28
- data/bin/review-check +9 -21
- data/bin/review-compile +45 -12
- data/bin/review-epubmaker +477 -220
- data/bin/review-epubmaker-ng +5 -14
- data/bin/review-index +4 -2
- data/bin/review-init +94 -0
- data/bin/review-pdfmaker +70 -287
- data/bin/review-preproc +5 -2
- data/bin/review-vol +4 -11
- data/debian/changelog +3 -3
- data/debian/copyright +5 -3
- data/debian/docs +1 -0
- data/doc/format.rdoc +57 -11
- data/doc/quickstart.rdoc +4 -4
- data/doc/sample.yaml +11 -7
- data/lib/epubmaker.rb +1 -1
- data/lib/epubmaker/epubv2.rb +26 -27
- data/lib/epubmaker/epubv3.rb +13 -13
- data/lib/epubmaker/producer.rb +1 -1
- data/lib/review.rb +3 -4
- data/lib/review/book.rb +17 -581
- data/lib/review/book/base.rb +247 -0
- data/lib/review/book/chapter.rb +81 -0
- data/lib/review/book/compilable.rb +163 -0
- data/lib/review/book/index.rb +339 -0
- data/lib/review/book/page_metric.rb +38 -0
- data/lib/review/book/parameters.rb +97 -0
- data/lib/review/book/part.rb +44 -0
- data/lib/review/book/volume.rb +65 -0
- data/lib/review/builder.rb +34 -40
- data/lib/review/compiler.rb +32 -13
- data/lib/review/configure.rb +38 -0
- data/lib/review/ewbbuilder.rb +23 -21
- data/lib/review/extentions.rb +3 -0
- data/lib/review/extentions/object.rb +9 -0
- data/lib/review/{compat.rb → extentions/string.rb} +11 -0
- data/lib/review/htmlbuilder.rb +162 -74
- data/lib/review/htmlutils.rb +28 -1
- data/lib/review/i18n.yaml +11 -0
- data/lib/review/idgxmlbuilder.rb +119 -35
- data/lib/review/inaobuilder.rb +355 -0
- data/lib/review/latexbuilder.rb +133 -59
- data/lib/review/latexutils.rb +15 -6
- data/lib/review/makerhelper.rb +59 -0
- data/lib/review/markdownbuilder.rb +129 -0
- data/lib/review/preprocessor.rb +20 -7
- data/lib/review/review.tex.erb +250 -0
- data/lib/review/textutils.rb +28 -3
- data/lib/review/tocparser.rb +20 -12
- data/lib/review/tocprinter.rb +7 -3
- data/lib/review/topbuilder.rb +44 -27
- data/lib/review/version.rb +3 -0
- data/review.gemspec +20 -117
- data/test/book_test_helper.rb +35 -0
- data/test/sample-book/README.md +5 -0
- data/test/sample-book/src/CHAPS +2 -0
- data/test/sample-book/src/PREDEF +1 -0
- data/test/sample-book/src/Rakefile +26 -0
- data/test/sample-book/src/_cover.html +3 -0
- data/test/sample-book/src/ch01.re +71 -0
- data/test/sample-book/src/ch02.re +3 -0
- data/test/sample-book/src/config.yml +55 -0
- data/test/sample-book/src/images/ch01-imgsample.jpg +0 -0
- data/test/sample-book/src/images/cover.jpg +0 -0
- data/test/sample-book/src/main.css +251 -0
- data/test/sample-book/src/preface.re +15 -0
- data/test/sample-book/src/sty/jumoline.sty +310 -0
- data/test/sample-book/src/sty/samplemacro.sty +21 -0
- data/test/sample-book/src/vendor/jumoline/README +29 -0
- data/test/sample-book/src/vendor/jumoline/jumoline.dtx +2988 -0
- data/test/sample-book/src/vendor/jumoline/jumoline.ins +6 -0
- data/test/test_book.rb +26 -646
- data/test/test_book_chapter.rb +418 -0
- data/test/test_book_parameter.rb +42 -0
- data/test/test_book_part.rb +53 -0
- data/test/test_builder.rb +17 -10
- data/test/test_compiler.rb +46 -0
- data/test/test_epubmaker.rb +1 -1
- data/test/test_epubmaker_cmd.rb +36 -0
- data/test/test_helper.rb +17 -0
- data/test/test_htmlbuilder.rb +156 -24
- data/test/test_htmlutils.rb +4 -0
- data/test/test_i18n.rb +6 -2
- data/test/test_idgxmlbuilder.rb +33 -11
- data/test/test_inaobuilder.rb +247 -0
- data/test/test_index.rb +31 -0
- data/test/test_latexbuilder.rb +115 -35
- data/test/test_makerhelper.rb +50 -0
- data/test/test_pdfmaker_cmd.rb +36 -0
- data/test/test_preprocessor.rb +7 -7
- data/test/test_topbuilder.rb +6 -7
- data/test/test_uuid.rb +1 -0
- metadata +117 -12
- data/lib/review/index.rb +0 -323
- data/lib/review/volume.rb +0 -66
data/lib/review/latexutils.rb
CHANGED
@@ -10,11 +10,13 @@
|
|
10
10
|
# For details of the GNU LGPL, see the file "COPYING".
|
11
11
|
#
|
12
12
|
|
13
|
+
require 'nkf'
|
14
|
+
|
13
15
|
module ReVIEW
|
14
16
|
|
15
17
|
module LaTeXUtils
|
16
18
|
|
17
|
-
|
19
|
+
METACHARS = {
|
18
20
|
'#' => '\#',
|
19
21
|
"$" => '\textdollar{}',
|
20
22
|
'%' => '\%',
|
@@ -28,6 +30,7 @@ module ReVIEW
|
|
28
30
|
'<' => '\textless{}',
|
29
31
|
'>' => '\textgreater{}',
|
30
32
|
"\\" => '\reviewbackslash{}',
|
33
|
+
"-" => '{-}',
|
31
34
|
|
32
35
|
'⓪' => '\UTF{24EA}',
|
33
36
|
'①' => '\UTF{2460}',
|
@@ -42,22 +45,28 @@ module ReVIEW
|
|
42
45
|
'⑩' => '\UTF{2469}',
|
43
46
|
}
|
44
47
|
|
45
|
-
|
48
|
+
kanalist = %w{。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙ ゚}
|
49
|
+
kanalist.each do |char|
|
50
|
+
char_jisx0208 = NKF::nkf('-WwX',char)
|
51
|
+
METACHARS[char] = "\\aj半角{#{char_jisx0208}}"
|
52
|
+
end
|
53
|
+
|
54
|
+
METACHARS_RE = /[#{Regexp.escape(METACHARS.keys.join(''))}]/u
|
46
55
|
|
47
|
-
|
56
|
+
METACHARS_INVERT = METACHARS.invert
|
48
57
|
|
49
58
|
def escape_latex(str)
|
50
59
|
str.gsub(METACHARS_RE) {|s|
|
51
|
-
|
60
|
+
METACHARS[s] or raise "unknown trans char: #{s}"
|
52
61
|
}
|
53
62
|
end
|
54
63
|
|
55
64
|
alias escape escape_latex
|
56
65
|
|
57
66
|
def unescape_latex(str)
|
58
|
-
metachars_invert_re = Regexp.new(
|
67
|
+
metachars_invert_re = Regexp.new(METACHARS_INVERT.keys.collect{|key| Regexp.escape(key)}.join('|'))
|
59
68
|
str.gsub(metachars_invert_re) {|s|
|
60
|
-
|
69
|
+
METACHARS_INVERT[s] or raise "unknown trans char: #{s}"
|
61
70
|
}
|
62
71
|
end
|
63
72
|
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# Copyright (c) 2012 Yuto HAYAMIZU
|
4
|
+
#
|
5
|
+
# This program is free software.
|
6
|
+
# You can distribute or modify this program under the terms of
|
7
|
+
# the GNU LGPL, Lesser General Public License version 2.1.
|
8
|
+
# For details of the GNU LGPL, see the file "COPYING".
|
9
|
+
#
|
10
|
+
|
11
|
+
module ReVIEW
|
12
|
+
class MakerHelper
|
13
|
+
|
14
|
+
# Copy image files under from_dir to to_dir recursively
|
15
|
+
# ==== Args
|
16
|
+
# from_dir :: path to the directory which has image files to be copied
|
17
|
+
# to_dir :: path to the directory to which the image files are copied
|
18
|
+
# options :: used to specify optional operations during copy
|
19
|
+
# ==== Returns
|
20
|
+
# list of image files
|
21
|
+
# ==== Options
|
22
|
+
# :convert :: Conversion rule
|
23
|
+
# ==== Examples
|
24
|
+
#
|
25
|
+
# copy_images_to_dir("/path/to/foo", "/path/to/bar", :convert => {:eps => :png})
|
26
|
+
#
|
27
|
+
# Image files are copied recursively, and each '.eps' file is converted into '.eps.png'
|
28
|
+
#
|
29
|
+
|
30
|
+
def self.copy_images_to_dir(from_dir, to_dir, options = {})
|
31
|
+
image_files = []
|
32
|
+
|
33
|
+
Dir.open(from_dir) do |dir|
|
34
|
+
dir.each do |fname|
|
35
|
+
next if fname =~ /^\./
|
36
|
+
if FileTest.directory?("#{from_dir}/#{fname}")
|
37
|
+
image_files += copy_images_to_dir("#{from_dir}/#{fname}", "#{to_dir}/#{fname}")
|
38
|
+
else
|
39
|
+
Dir.mkdir(to_dir) unless File.exist?(to_dir)
|
40
|
+
|
41
|
+
is_converted = false
|
42
|
+
(options[:convert] || {}).each do |orig_type, conv_type|
|
43
|
+
next unless /\.#{orig_type}$/ =~ fname
|
44
|
+
is_converted = system("convert #{from_dir}/#{fname} #{to_dir}/#{fname}.#{conv_type}")
|
45
|
+
image_files << "#{from_dir}/#{fname}.#{conv_type}"
|
46
|
+
end
|
47
|
+
|
48
|
+
if !is_converted && fname =~ /\.(png|gif|jpg|jpeg|svg|pdf|eps)$/i
|
49
|
+
FileUtils.cp "#{from_dir}/#{fname}", to_dir
|
50
|
+
image_files << "#{from_dir}/#{fname}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
image_files
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# This program is free software.
|
3
|
+
# You can distribute or modify this program under the terms of
|
4
|
+
# the GNU LGPL, Lesser General Public License version 2.1.
|
5
|
+
|
6
|
+
require 'review/builder'
|
7
|
+
require 'review/textutils'
|
8
|
+
|
9
|
+
module ReVIEW
|
10
|
+
|
11
|
+
class MARKDOWNBuilder < Builder
|
12
|
+
include TextUtils
|
13
|
+
|
14
|
+
def extname
|
15
|
+
'.md'
|
16
|
+
end
|
17
|
+
|
18
|
+
def puts(str)
|
19
|
+
@blank_seen = false
|
20
|
+
super
|
21
|
+
end
|
22
|
+
|
23
|
+
def blank
|
24
|
+
@output.puts unless @blank_seen
|
25
|
+
@blank_seen = true
|
26
|
+
end
|
27
|
+
|
28
|
+
def headline(level, label, caption)
|
29
|
+
prefix = "#" * level
|
30
|
+
puts "#{prefix} #{caption}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def quote(lines)
|
34
|
+
blank
|
35
|
+
puts split_paragraph(lines).map{|line| "> #{line}"}.join("\n> \n")
|
36
|
+
blank
|
37
|
+
end
|
38
|
+
|
39
|
+
def paragraph(lines)
|
40
|
+
puts lines.join
|
41
|
+
puts "\n"
|
42
|
+
end
|
43
|
+
|
44
|
+
def ul_begin
|
45
|
+
blank
|
46
|
+
end
|
47
|
+
|
48
|
+
def ul_item(lines)
|
49
|
+
puts "- #{lines.join}"
|
50
|
+
end
|
51
|
+
|
52
|
+
def ul_end
|
53
|
+
blank
|
54
|
+
end
|
55
|
+
|
56
|
+
def ol_begin
|
57
|
+
blank
|
58
|
+
end
|
59
|
+
|
60
|
+
def ol_item(lines, num)
|
61
|
+
puts "#{num}. #{lines.join}"
|
62
|
+
end
|
63
|
+
|
64
|
+
def ol_end
|
65
|
+
blank
|
66
|
+
end
|
67
|
+
|
68
|
+
def emlist(lines, caption = nil)
|
69
|
+
blank
|
70
|
+
puts "```"
|
71
|
+
lines.each do |line|
|
72
|
+
puts detab(line)
|
73
|
+
end
|
74
|
+
puts "```"
|
75
|
+
blank
|
76
|
+
end
|
77
|
+
|
78
|
+
def hr
|
79
|
+
puts "----"
|
80
|
+
end
|
81
|
+
|
82
|
+
def compile_href(url, label)
|
83
|
+
label = url if label.blank?
|
84
|
+
"[#{label}](#{url})"
|
85
|
+
end
|
86
|
+
|
87
|
+
def inline_i(str)
|
88
|
+
"*#{str.gsub(/\*/, '\*')}*"
|
89
|
+
end
|
90
|
+
|
91
|
+
def inline_b(str)
|
92
|
+
"**#{str.gsub(/\*/, '\*')}**"
|
93
|
+
end
|
94
|
+
|
95
|
+
def inline_code(str)
|
96
|
+
"`#{str}`"
|
97
|
+
end
|
98
|
+
|
99
|
+
def image_image(id, caption, metric)
|
100
|
+
blank
|
101
|
+
puts ""
|
102
|
+
blank
|
103
|
+
end
|
104
|
+
|
105
|
+
def image_dummy(id, caption, lines)
|
106
|
+
puts lines.join
|
107
|
+
end
|
108
|
+
|
109
|
+
def inline_img(id)
|
110
|
+
"#{I18n.t("image")}#{@chapter.image(id).number}"
|
111
|
+
rescue KeyError
|
112
|
+
error "unknown image: #{id}"
|
113
|
+
nofunc_text("[UnknownImage:#{id}]")
|
114
|
+
end
|
115
|
+
|
116
|
+
def pagebreak
|
117
|
+
puts "{pagebreak}"
|
118
|
+
end
|
119
|
+
|
120
|
+
def image_ext
|
121
|
+
"jpg"
|
122
|
+
end
|
123
|
+
|
124
|
+
def nofunc_text(str)
|
125
|
+
str
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
end # module ReVIEW
|
data/lib/review/preprocessor.rb
CHANGED
@@ -88,7 +88,11 @@ module ReVIEW
|
|
88
88
|
|
89
89
|
def gets
|
90
90
|
while line = @f.gets
|
91
|
-
|
91
|
+
if /\A\#@/ =~ line
|
92
|
+
return "\#@\#\n"
|
93
|
+
else
|
94
|
+
return line
|
95
|
+
end
|
92
96
|
end
|
93
97
|
nil
|
94
98
|
end
|
@@ -192,13 +196,13 @@ module ReVIEW
|
|
192
196
|
end
|
193
197
|
|
194
198
|
if @param["outencoding"] =~ /^EUC$/i
|
195
|
-
NKF.nkf("#{ine} -e", *s)
|
199
|
+
NKF.nkf("#{ine} -m0x -e", *s)
|
196
200
|
elsif @param["outencoding"] =~ /^SJIS$/i
|
197
|
-
NKF.nkf("#{ine} -s", *s)
|
201
|
+
NKF.nkf("#{ine} -m0x -s", *s)
|
198
202
|
elsif @param["outencoding"] =~ /^JIS$/i
|
199
|
-
NKF.nkf("#{ine} -j", *s)
|
203
|
+
NKF.nkf("#{ine} -m0x -j", *s)
|
200
204
|
else
|
201
|
-
NKF.nkf("#{ine} -w", *s)
|
205
|
+
NKF.nkf("#{ine} -m0x -w", *s)
|
202
206
|
end
|
203
207
|
end
|
204
208
|
|
@@ -412,8 +416,9 @@ module ReVIEW
|
|
412
416
|
include TextUtils
|
413
417
|
include ErrorUtils
|
414
418
|
|
415
|
-
def initialize
|
419
|
+
def initialize(param)
|
416
420
|
@repository = {}
|
421
|
+
@param = param
|
417
422
|
end
|
418
423
|
|
419
424
|
def fetch_file(file)
|
@@ -532,7 +537,15 @@ module ReVIEW
|
|
532
537
|
end
|
533
538
|
|
534
539
|
def canonical(line)
|
535
|
-
|
540
|
+
tabwidth = 8
|
541
|
+
if @param['tabwidth']
|
542
|
+
tabwidth = @param['tabwidth']
|
543
|
+
end
|
544
|
+
if tabwidth > 0
|
545
|
+
detab(line, tabwidth).rstrip + "\n"
|
546
|
+
else
|
547
|
+
line
|
548
|
+
end
|
536
549
|
end
|
537
550
|
|
538
551
|
def check_type(type)
|
@@ -0,0 +1,250 @@
|
|
1
|
+
\documentclass[<%= documentclassoption %>]{<%= documentclass %>}
|
2
|
+
\usepackage[deluxe]{otf}
|
3
|
+
\usepackage[dvipdfmx]{color}
|
4
|
+
\usepackage[dvipdfmx]{graphicx}
|
5
|
+
\usepackage{framed}
|
6
|
+
\usepackage{wrapfig}
|
7
|
+
\definecolor{shadecolor}{gray}{0.9}
|
8
|
+
\definecolor{shadecolorb}{gray}{0.1}
|
9
|
+
\usepackage[utf8]{inputenc}
|
10
|
+
\usepackage{ascmac}
|
11
|
+
\usepackage{float}
|
12
|
+
\usepackage{alltt}
|
13
|
+
\usepackage{amsmath}
|
14
|
+
|
15
|
+
%% if you use @<u>{} (underline), use jumoline.sty
|
16
|
+
%%\usepackage{jumoline}
|
17
|
+
|
18
|
+
\newenvironment{shadedb}{%
|
19
|
+
\def\FrameCommand{\fboxsep=\FrameSep \colorbox{shadecolorb}}%
|
20
|
+
\MakeFramed {\FrameRestore}}%
|
21
|
+
{\endMakeFramed}
|
22
|
+
|
23
|
+
\usepackage[top=10zw,bottom=12zw,left=10zw,right=10zw]{geometry}
|
24
|
+
%\usepackage[top=5zw,bottom=5zw,left=1zw,right=1zw]{geometry}
|
25
|
+
|
26
|
+
|
27
|
+
\newcommand{\parasep}{\vspace*{3zh}}
|
28
|
+
\setlength{\footskip}{30pt}
|
29
|
+
|
30
|
+
%% Bookmarkの文字化け対策(日本語向け)
|
31
|
+
\ifnum 46273=\euc"B4C1 % 46273 == 0xB4C1 == 漢(EUC-JP)
|
32
|
+
\usepackage{atbegshi}%
|
33
|
+
\AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}%
|
34
|
+
%%\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}%
|
35
|
+
\else
|
36
|
+
\usepackage{atbegshi}%
|
37
|
+
\AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}}%
|
38
|
+
%%\AtBeginDvi{\special{pdf:tounicode 90ms-RKSJ-UCS2}}%
|
39
|
+
\fi
|
40
|
+
|
41
|
+
\usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,colorlinks=true,%
|
42
|
+
pdftitle={<%= values["booktitle"] %>},%
|
43
|
+
pdfauthor={<%= values["aut"] %>}]{hyperref}
|
44
|
+
|
45
|
+
\newenvironment{reviewimage}{%
|
46
|
+
\begin{figure}[H]
|
47
|
+
\begin{center}}{%
|
48
|
+
\end{center}
|
49
|
+
\end{figure}}
|
50
|
+
|
51
|
+
\newenvironment{reviewdummyimage}{%
|
52
|
+
\begin{figure}[H]
|
53
|
+
\begin{center}\begin{alltt}}{%
|
54
|
+
\end{alltt}\end{center}
|
55
|
+
\end{figure}}
|
56
|
+
|
57
|
+
\newenvironment{reviewemlist}{%
|
58
|
+
\medskip\small\begin{shaded}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
59
|
+
\end{alltt}\end{shaded}}
|
60
|
+
|
61
|
+
\newenvironment{reviewlist}{%
|
62
|
+
\begin{shaded}\small\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
63
|
+
\end{alltt}\end{shaded}\par\vspace*{0.5zw}}
|
64
|
+
|
65
|
+
\newenvironment{reviewcmd}{%
|
66
|
+
\color{white}\medskip\small\begin{shadedb}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
67
|
+
\end{alltt}\end{shadedb}}
|
68
|
+
|
69
|
+
\newenvironment{reviewbox}{%
|
70
|
+
\medskip\small\begin{framed}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
|
71
|
+
\end{alltt}\end{framed}}
|
72
|
+
|
73
|
+
\newenvironment{reviewtable}[1]{%
|
74
|
+
\begin{center}\small\setlength{\baselineskip}{1.2zw}
|
75
|
+
\begin{tabular}{#1}}{%
|
76
|
+
\end{tabular}
|
77
|
+
\end{center}}
|
78
|
+
|
79
|
+
\newenvironment{reviewcolumn}{%
|
80
|
+
\begin{framed}
|
81
|
+
}{%
|
82
|
+
\end{framed}
|
83
|
+
\vspace{2zw}}
|
84
|
+
|
85
|
+
\newcommand{\reviewcolumnhead}[2]{%
|
86
|
+
{\noindent\large ■コラム: #2}}
|
87
|
+
|
88
|
+
\newcommand{\reviewtablecaption}[1]{%
|
89
|
+
\caption{#1}}
|
90
|
+
|
91
|
+
\newcommand{\reviewbackslash}[0]{%
|
92
|
+
\textbackslash{}}
|
93
|
+
|
94
|
+
\newcommand{\reviewlistcaption}[1]{%
|
95
|
+
\medskip{\small\noindent #1}\vspace*{-1.3zw}}
|
96
|
+
|
97
|
+
\newcommand{\reviewemlistcaption}[1]{%
|
98
|
+
\medskip{\small\noindent #1}\vspace*{-1.3zw}}
|
99
|
+
|
100
|
+
\newcommand{\reviewcmdcaption}[1]{%
|
101
|
+
\medskip{\small\noindent #1}\vspace*{-1.3zw}}
|
102
|
+
|
103
|
+
\newcommand{\reviewindepimagecaption}[1]{%
|
104
|
+
\begin{center}#1\end{center}}
|
105
|
+
|
106
|
+
\newcommand{\reviewboxcaption}[1]{%
|
107
|
+
\medskip{\small\noindent #1}\vspace*{-1.3zw}}
|
108
|
+
|
109
|
+
\newcommand{\reviewimageref}[2]{%
|
110
|
+
図 #1}
|
111
|
+
\newcommand{\reviewtableref}[2]{%
|
112
|
+
表 #1}
|
113
|
+
\newcommand{\reviewlistref}[1]{%
|
114
|
+
リスト #1}
|
115
|
+
\newcommand{\reviewbibref}[2]{%
|
116
|
+
#1}
|
117
|
+
|
118
|
+
\newcommand{\reviewminicolumntitle}[1]{%
|
119
|
+
{\large ■メモ:#1}\\}
|
120
|
+
|
121
|
+
\newenvironment{reviewminicolumn}{%
|
122
|
+
\vspace{1.5zw}\begin{screen}}{%
|
123
|
+
\end{screen}\vspace{2zw}}
|
124
|
+
|
125
|
+
\newcommand{\reviewkw}[1]{%
|
126
|
+
\textbf{\textgt{#1}}}
|
127
|
+
|
128
|
+
\newcommand{\reviewami}[1]{%
|
129
|
+
\mask{#1}{A}}
|
130
|
+
|
131
|
+
\newcommand{\reviewem}[1]{%
|
132
|
+
\textbf{#1}}
|
133
|
+
|
134
|
+
\newcommand{\reviewstrong}[1]{%
|
135
|
+
\textbf{#1}}
|
136
|
+
|
137
|
+
%% @<del> is ignored in LaTeX with default style
|
138
|
+
\newcommand{\reviewstrike}[1]{#1}
|
139
|
+
|
140
|
+
%%%% for ulem.sty:
|
141
|
+
%%\renewcommand{\reviewstrike}[1]{\sout{#1}}
|
142
|
+
%%
|
143
|
+
%%%% for jumoline.sty:
|
144
|
+
%%\renewcommand{\reviewstrike}[1]{\Middleline{#1}}
|
145
|
+
|
146
|
+
\newcommand{\reviewth}[1]{%
|
147
|
+
\textgt{#1}}
|
148
|
+
|
149
|
+
\newcommand{\reviewtitlefont}[0]{%
|
150
|
+
\usefont{T1}{phv}{b}{n}\gtfamily}
|
151
|
+
|
152
|
+
\newcommand{\reviewmainfont}[0]{%
|
153
|
+
}
|
154
|
+
|
155
|
+
\newcommand{\reviewcolophon}[0]{%
|
156
|
+
\backmatter
|
157
|
+
\clearpage}
|
158
|
+
\newcommand{\reviewappendix}[0]{%
|
159
|
+
\appendix}
|
160
|
+
|
161
|
+
\makeatletter
|
162
|
+
\def\maxwidth{%
|
163
|
+
\ifdim\Gin@nat@width>\linewidth
|
164
|
+
\linewidth
|
165
|
+
\else
|
166
|
+
\Gin@nat@width
|
167
|
+
\fi
|
168
|
+
}
|
169
|
+
\makeatother
|
170
|
+
|
171
|
+
<%= values["usepackage"] %>
|
172
|
+
|
173
|
+
\usepackage[T1]{fontenc}
|
174
|
+
|
175
|
+
\begin{document}
|
176
|
+
|
177
|
+
\reviewmainfont
|
178
|
+
|
179
|
+
<% if values["titlepage"] %>
|
180
|
+
<% if custom_titlepage %>
|
181
|
+
<%= custom_titlepage %>
|
182
|
+
<% else %>
|
183
|
+
\begin{titlepage}
|
184
|
+
<% if values["coverimage"] %>
|
185
|
+
\begin{center}
|
186
|
+
%%%\mbox{}\vskip5zw%
|
187
|
+
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{./images/<%= values["coverimage"] %>}
|
188
|
+
\end{center}
|
189
|
+
\clearpage
|
190
|
+
<% end %>
|
191
|
+
\thispagestyle{empty}
|
192
|
+
\begin{center}%
|
193
|
+
\mbox{} \vskip5zw
|
194
|
+
\reviewtitlefont%
|
195
|
+
{\Huge <%= values["booktitle"] %> \par}%
|
196
|
+
\vskip 15em%
|
197
|
+
{\huge
|
198
|
+
\lineskip .75em
|
199
|
+
\begin{tabular}[t]{c}%
|
200
|
+
<%= authors %>
|
201
|
+
\end{tabular}\par}%
|
202
|
+
\vfill
|
203
|
+
{\large <%= values["date"] %> 版\hspace{2zw}<%= values["prt"] %> 発行\par}%
|
204
|
+
\vskip4zw\mbox{}
|
205
|
+
\end{center}%
|
206
|
+
\end{titlepage}
|
207
|
+
<% end %>
|
208
|
+
<% end %>
|
209
|
+
|
210
|
+
\renewcommand{\chaptermark}[1]{{}}
|
211
|
+
\frontmatter
|
212
|
+
|
213
|
+
%% preface
|
214
|
+
<%= values["pre_str"] %>
|
215
|
+
|
216
|
+
<% if values["toc"] %>
|
217
|
+
\setcounter{tocdepth}{<%= values["toclevel"] %>}
|
218
|
+
\tableofcontents
|
219
|
+
<% end %>
|
220
|
+
|
221
|
+
\renewcommand{\chaptermark}[1]{\markboth{\prechaptername\thechapter\postchaptername~#1}{}}
|
222
|
+
\mainmatter
|
223
|
+
<%= values["chap_str"] %>
|
224
|
+
\renewcommand{\chaptermark}[1]{\markboth{\appendixname\thechapter~#1}{}}
|
225
|
+
\reviewappendix
|
226
|
+
<%= values["post_str"] %>
|
227
|
+
|
228
|
+
<% if values["colophon"] %>
|
229
|
+
%% okuduke
|
230
|
+
\reviewcolophon
|
231
|
+
\thispagestyle{empty}
|
232
|
+
|
233
|
+
\vspace*{\fill}
|
234
|
+
|
235
|
+
{\noindent\reviewtitlefont\Large <%= values["booktitle"] %>} \\
|
236
|
+
\rule[8pt]{14cm}{1pt} \\
|
237
|
+
{\noindent
|
238
|
+
<%= values["pubhistory"].to_s.gsub(/\n/){"\n\n\\noindent"} %>
|
239
|
+
}
|
240
|
+
|
241
|
+
\begin{tabular}{ll}
|
242
|
+
<%= okuduke %>
|
243
|
+
\end{tabular}
|
244
|
+
\\
|
245
|
+
\rule[0pt]{14cm}{1pt} \\
|
246
|
+
<%= values["rights"] %> \\
|
247
|
+
<% end %>
|
248
|
+
|
249
|
+
|
250
|
+
\end{document}
|