review-retrovert 0.3.3 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/retrovert.yml +39 -0
  3. data/.gitignore +2 -2
  4. data/.ruby-version +1 -0
  5. data/Gemfile +1 -0
  6. data/Gemfile.lock +67 -1
  7. data/README.md +6 -3
  8. data/lib/review/retrovert/converter.rb +231 -6
  9. data/lib/review/retrovert/version.rb +1 -1
  10. data/review-retrovert.gemspec +1 -1
  11. data/testdata/mybook/.gitignore +7 -0
  12. data/testdata/mybook/README.md +43 -0
  13. data/testdata/mybook/Rakefile +16 -0
  14. data/testdata/mybook/catalog.yml +33 -0
  15. data/testdata/mybook/config-starter.yml +139 -0
  16. data/testdata/mybook/config.yml +375 -0
  17. data/testdata/mybook/contents/00-preface.re +83 -0
  18. data/testdata/mybook/contents/01-install.re +272 -0
  19. data/testdata/mybook/contents/02-tutorial.re +1008 -0
  20. data/testdata/mybook/contents/03-syntax.re +2613 -0
  21. data/testdata/mybook/contents/04-customize.re +728 -0
  22. data/testdata/mybook/contents/05-faq.re +328 -0
  23. data/testdata/mybook/contents/06-bestpractice.re +971 -0
  24. data/testdata/mybook/contents/91-compare.re +18 -0
  25. data/testdata/mybook/contents/92-filelist.re +119 -0
  26. data/testdata/mybook/contents/93-background.re +267 -0
  27. data/testdata/mybook/contents/99-postface.re +38 -0
  28. data/testdata/mybook/css/normalize.css +349 -0
  29. data/testdata/mybook/css/webstyle.css +514 -0
  30. data/testdata/mybook/images/03-syntax/favicon-16x16.png +0 -0
  31. data/testdata/mybook/images/03-syntax/figure_heretop.png +0 -0
  32. data/testdata/mybook/images/03-syntax/tw-icon1.jpg +0 -0
  33. data/testdata/mybook/images/03-syntax/tw-icon2.jpg +0 -0
  34. data/testdata/mybook/images/03-syntax/tw-icon3.jpg +0 -0
  35. data/testdata/mybook/images/03-syntax/tw-icon4.jpg +0 -0
  36. data/testdata/mybook/images/04-customize/caption_pagebreak.png +0 -0
  37. data/testdata/mybook/images/04-customize/chaptitlepage_sample.png +0 -0
  38. data/testdata/mybook/images/05-faq/codeblock_rpadding1.png +0 -0
  39. data/testdata/mybook/images/05-faq/codeblock_rpadding2.png +0 -0
  40. data/testdata/mybook/images/06-bestpractice/figure_heretop.png +0 -0
  41. data/testdata/mybook/images/06-bestpractice/font_beramono.png +0 -0
  42. data/testdata/mybook/images/06-bestpractice/heading_design1.png +0 -0
  43. data/testdata/mybook/images/06-bestpractice/heading_design2.png +0 -0
  44. data/testdata/mybook/images/06-bestpractice/margin_book.png +0 -0
  45. data/testdata/mybook/images/06-bestpractice/multiline-title.png +0 -0
  46. data/testdata/mybook/images/06-bestpractice/preface_numbered.png +0 -0
  47. data/testdata/mybook/images/06-bestpractice/program_border.png +0 -0
  48. data/testdata/mybook/images/06-bestpractice/sechead_design_4.png +0 -0
  49. data/testdata/mybook/images/06-bestpractice/titlepage-samples.png +0 -0
  50. data/testdata/mybook/images/93-background/bug913.png +0 -0
  51. data/testdata/mybook/images/93-background/slide2.png +0 -0
  52. data/testdata/mybook/images/cover_a5.pdf +0 -0
  53. data/testdata/mybook/images/cover_b5.pdf +0 -0
  54. data/testdata/mybook/images/tw-icon.jpg +0 -0
  55. data/testdata/mybook/layouts/layout.epub.erb +29 -0
  56. data/testdata/mybook/layouts/layout.html5.erb +106 -0
  57. data/testdata/mybook/layouts/layout.tex.erb +546 -0
  58. data/testdata/mybook/lib/hooks/beforetexcompile.rb +55 -0
  59. data/testdata/mybook/lib/ruby/review-builder.rb +503 -0
  60. data/testdata/mybook/lib/ruby/review-cli.rb +58 -0
  61. data/testdata/mybook/lib/ruby/review-compiler.rb +523 -0
  62. data/testdata/mybook/lib/ruby/review-epubmaker.rb +606 -0
  63. data/testdata/mybook/lib/ruby/review-htmlbuilder.rb +661 -0
  64. data/testdata/mybook/lib/ruby/review-latexbuilder.rb +782 -0
  65. data/testdata/mybook/lib/ruby/review-maker.rb +235 -0
  66. data/testdata/mybook/lib/ruby/review-monkeypatch.rb +91 -0
  67. data/testdata/mybook/lib/ruby/review-pdfmaker.rb +468 -0
  68. data/testdata/mybook/lib/ruby/review-textbuilder.rb +36 -0
  69. data/testdata/mybook/lib/ruby/review-tocparser.rb +285 -0
  70. data/testdata/mybook/lib/ruby/review-webmaker.rb +433 -0
  71. data/testdata/mybook/lib/tasks/mytasks.rake +31 -0
  72. data/testdata/mybook/lib/tasks/review.rake +142 -0
  73. data/testdata/mybook/lib/tasks/review.rake.orig +72 -0
  74. data/testdata/mybook/lib/tasks/starter.rake +326 -0
  75. data/testdata/mybook/locale.yml +6 -0
  76. data/testdata/mybook/review-ext.rb +206 -0
  77. data/testdata/mybook/sty/jumoline.sty +310 -0
  78. data/testdata/mybook/sty/mycolophon.sty +81 -0
  79. data/testdata/mybook/sty/mystyle.sty +8 -0
  80. data/testdata/mybook/sty/mytextsize.sty +61 -0
  81. data/testdata/mybook/sty/mytitlepage.sty +103 -0
  82. data/testdata/mybook/sty/reviewmacro.sty +60 -0
  83. data/testdata/mybook/sty/starter-codeblock.sty +332 -0
  84. data/testdata/mybook/sty/starter-color.sty +79 -0
  85. data/testdata/mybook/sty/starter-font.sty +112 -0
  86. data/testdata/mybook/sty/starter-heading.sty +514 -0
  87. data/testdata/mybook/sty/starter-note.sty +127 -0
  88. data/testdata/mybook/sty/starter-section.sty +262 -0
  89. data/testdata/mybook/sty/starter-toc.sty +72 -0
  90. data/testdata/mybook/sty/starter.sty +554 -0
  91. data/testdata/mybook/style.css +597 -0
  92. metadata +100 -3
@@ -0,0 +1,29 @@
1
+ <%
2
+ use_html5 = @config['htmlversion'].to_i == 5
3
+ %><?xml version="1.0" encoding="UTF-8"?>
4
+ <% if use_html5 %>
5
+ <!DOCTYPE html>
6
+ <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 %>">
7
+ <% else %>
8
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
9
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ops="http://www.idpf.org/2007/ops" xml:lang="<%= @language %>">
10
+ <% end %>
11
+ <head>
12
+ <% if use_html5 %>
13
+ <meta charset="UTF-8" />
14
+ <% else %>
15
+ <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
16
+ <meta http-equiv="Content-Style-Type" content="text/css"/>
17
+ <% end %>
18
+ <% if @stylesheets.present? %>
19
+ <% @stylesheets.each do |style| %>
20
+ <link rel="stylesheet" type="text/css" href="<%= style %>" />
21
+ <% end %>
22
+ <% end%>
23
+ <meta name="generator" content="Re:VIEW" />
24
+ <title><%= @title %></title>
25
+ </head>
26
+ <body<%= @body_ext %>>
27
+ <%= @body %>
28
+ </body>
29
+ </html>
@@ -0,0 +1,106 @@
1
+ <% # -*- coding: utf-8 -*-
2
+
3
+ prev_page = @prev ? "#{@prev.id}.#{@book.config['htmlext']}" : nil
4
+ next_page = @next ? "#{@next.id}.#{@book.config['htmlext']}" : nil
5
+
6
+ rebuild_js = ENV['STARTER_REBUILD_JS']
7
+
8
+ body_ext = @body_ext || (@error ? ' class="has-compile-error"' : nil)
9
+
10
+ %>
11
+ <!doctype html>
12
+ <html lang="<%=h @language %>">
13
+ <head>
14
+ <meta charset="utf-8">
15
+ <meta name="viewport" content="width=device-width">
16
+ <title><%=h @title %> | <%=h @book.config.name_of("booktitle")%></title>
17
+ <% @stylesheets.each do |style| %>
18
+ <link rel="stylesheet" type="text/css" href="css/<%=h style %>" />
19
+ <% end if @stylesheets.present? %>
20
+ <% if next_page %>
21
+ <link rel="next" title="<%=h @next_title %>" href="<%=h next_page %>">
22
+ <% end %>
23
+ <% if prev_page %>
24
+ <link rel="prev" title="<%=h @prev_title %>" href="<%=h prev_page %>">
25
+ <% end %>
26
+ <meta name="generator" content="Re:VIEW Starter">
27
+ </head>
28
+ <body<%= body_ext %>>
29
+ <div class="page-outer">
30
+ <% if @chapter || @error %>
31
+ <nav class="side-content">
32
+ <% if rebuild_js %>
33
+ <div class="rebuild">
34
+ <a href="javascript:void(0)" onclick="rebuildAndReloadForcedly()">Rebuild and Reload</a>
35
+ </div>
36
+ <% end %>
37
+ <a class="nav-title" href="index.html"><%=h @book.config.name_of("booktitle") %></a>
38
+ <%= @toc %>
39
+ </nav>
40
+ <% end %>
41
+ <div class="page-inner">
42
+ <header class="page-header">
43
+ </header>
44
+ <main class="page-main">
45
+ <% if @chapter %>
46
+ <%= @body %>
47
+
48
+ <% elsif @error %>
49
+ <h2>Error</h2>
50
+ <div class="compile-error-message">
51
+ <dl>
52
+ <dt>File:</dt>
53
+ <dd><%= @textfile ? h(@textfile) : '&nbsp;' %></dd>
54
+ <dt>Error:</dt>
55
+ <dd><%=h @error.message %>
56
+ <i>(<%=h @error.class.name %>)</i>
57
+ </dd>
58
+ </dl>
59
+ </div>
60
+ <p>Traceback:</p>
61
+ <pre class="compile-error-backtrace"><% @error.backtrace.each do |x| %><%=h x %><%= "\n" %><% end %></pre>
62
+
63
+ <% else %>
64
+ <h1><%=h @book.config.name_of("booktitle") %></h1>
65
+ <%= @toc %>
66
+ <% end %>
67
+ </main>
68
+ <nav class="page-navi">
69
+ <% if prev_page %>
70
+ <a href="<%=h prev_page %>" class="page-prev">&#9664;</a>
71
+ <% end %>
72
+ <% if next_page %>
73
+ <a href="<%=h next_page %>" class="page-next">&#9654;</a>
74
+ <% end %>
75
+ </nav>
76
+ <footer>
77
+ <% if @book.config["copyright"].present? %>
78
+ <p class="copyright"><%=h @config["copyright"] %></p>
79
+ <% end %>
80
+ </footer>
81
+ </div>
82
+ </div>
83
+ <% @javascripts.each do |script| %>
84
+ <script src="<%=h script %>"></script>
85
+ <% end if @javascripts.present? %>
86
+ <% ##### %>
87
+ <% if rebuild_js %>
88
+ <script>
89
+ function rebuildAndReloadForcedly() {
90
+ fetch('<%= rebuild_js %>').then((resp)=>{
91
+ resp.text().then((text)=>{ eval(text); });
92
+ });
93
+ }
94
+ </script>
95
+ <% #textfile = @textfile || @chapter.name #=> NoMethodError (why?) %>
96
+ <% textfile = @textfile || @chapter.instance_eval { @name } %>
97
+ <% if textfile && !textfile.empty? %>
98
+ <script src="<%=h rebuild_js %>?file=<%= textfile %>"></script>
99
+ <% else %>
100
+ <!--script src="<%=h rebuild_js %>?file=<%= textfile %>"></script-->
101
+ <% end %>
102
+ <% end %>
103
+ <% ##### %>
104
+ </body>
105
+ </html>
106
+ <!-- layout.html5.erb -->
@@ -0,0 +1,546 @@
1
+ <% # -*- coding: utf-8 -*-
2
+
3
+ ## based on Re:VIEW 2.4
4
+
5
+ def xelatex?()
6
+ @texcompiler == 'xelatex'
7
+ end
8
+
9
+ case @dvicommand
10
+ when 'dvipdfmx'
11
+ dvipdfmx = 'dvipdfmx'
12
+ dvipdfmx_ = 'dvipdfmx,'
13
+ when nil, ''
14
+ dvipdfmx = ''
15
+ dvipdfmx_ = ''
16
+ else
17
+ dvipdfmx = 'dvipdfmx'
18
+ dvipdfmx_ = 'dvipdfmx,'
19
+ end
20
+
21
+ pagesize = @config['starter']['pagesize'] # A5 or B5
22
+ fontsize = @config['starter']['fontsize'] # 9pt or 10pt
23
+ docopts = [@documentclassoption]
24
+ docopts << "#{pagesize.downcase}paper" # a5paper or b5paper
25
+ docopts << fontsize # 9pt or 10pt
26
+
27
+ %>
28
+ \documentclass[<%= docopts.join(',') %>]{<%= @documentclass %>}
29
+ % %% fixes to LaTeX2e
30
+ % \usepackage{fix-cm}[2006/09/13 v1.1m]
31
+ % \usepackage{fixltx2e}[2006/09/13 v1.1m]
32
+
33
+
34
+ %% copy values from 'config-starter.yml'
35
+ \makeatletter
36
+ <%- length_keys = ['caption_needspace', 'program_widen', 'terminal_widen'] -%>
37
+ <%- @config['starter'].each do |k, v| -%>
38
+ <%- if k == 'target' -%>
39
+ <%- target = ENV['STARTER_TARGET'].to_s -%>
40
+ <%- v = target unless target.empty? -%>
41
+ <%- else -%>
42
+ <%- v = v == true ? 'Y' : v == false ? '' : v.to_s -%>
43
+ <%- end -%>
44
+ <%- if v =~ /\A[-a-zA-Z0-9!'`*+,.\/:;=?@\[\]()]*\z/ -%>
45
+ <%- x = 'starter@' + k.gsub('_', '@') -%>
46
+ <%- if length_keys.include?(k) -%>
47
+ <%- #v = v.sub(/\b(z[wh])$/, '\\zw') -%>
48
+ %\def\<%= x %>{<%= v %>}
49
+ \newlength{\<%= x %>}
50
+ \setlength{\<%= x %>}{<%= v %>}
51
+ <%- else -%>
52
+ \def\<%= x %>{<%= v %>}
53
+ <%- end -%>
54
+ <%- end -%>
55
+ <%- end -%>
56
+ \makeatother
57
+
58
+
59
+ %% environment values for Starter
60
+ \makeatletter
61
+ <%- ENV.each do |key, val| -%>
62
+ <%- if key =~ /^STARTER_\w+$/ -%>
63
+ \def\<%= key.gsub('_', '@') %>{<%= val %>}%
64
+ <%- end -%>
65
+ <%- end -%>
66
+ \makeatother
67
+
68
+ \usepackage{mytextsize}
69
+
70
+ <%- if @texcompiler == "uplatex" -%>
71
+ \usepackage[deluxe,uplatex]{otf}
72
+ <%- elsif @texcompiler == "xelatex" -%>
73
+ %\usepackage[deluxe]{otf}
74
+ <%- else -%>
75
+ \usepackage[deluxe]{otf}
76
+ <%- end -%>
77
+ \usepackage{caption}
78
+ \usepackage{suffix}
79
+ \usepackage[T1]{fontenc}\usepackage{textcomp}%T1/TS1
80
+ %\usepackage{lmodern}
81
+ <%- if ! ENV['STARTER_DRAFT'].to_s.empty? || @config['starter']['draft'] -%>
82
+ \usepackage[<%= dvipdfmx_ %>draft]{graphicx}
83
+ <%- else -%>
84
+ \usepackage[<%= dvipdfmx %>]{graphicx}
85
+ <%- end -%>
86
+ \usepackage[<%= dvipdfmx_ %>table]{xcolor}%requires colortbl, array
87
+ \usepackage{framed}
88
+ \usepackage{wrapfig}
89
+ \definecolor{shadecolor}{gray}{0.9}
90
+ \definecolor{shadecolorb}{gray}{0.1}
91
+ \definecolor{reviewgreen}{rgb}{0,0.4,0}
92
+ \definecolor{reviewblue}{rgb}{0.2,0.2,0.4}
93
+ \definecolor{reviewred}{rgb}{0.7,0,0}
94
+ \definecolor{reviewdarkred}{rgb}{0.3,0,0}
95
+ \usepackage[utf8]{inputenc}
96
+ \usepackage{ascmac}
97
+ \usepackage{float}
98
+ \usepackage{alltt}
99
+ \usepackage{amsmath}
100
+ \usepackage{pdfpages} % provides '\includepdf' command
101
+
102
+ %% if you use @<u>{} (underline), use jumoline.sty
103
+ \IfFileExists{jumoline.sty}{
104
+ \usepackage{jumoline}
105
+ }
106
+
107
+ \newenvironment{shadedb}{%
108
+ \def\FrameCommand{\fboxsep=\FrameSep \colorbox{shadecolorb}}%
109
+ \MakeFramed {\FrameRestore}}%
110
+ {\endMakeFramed}
111
+
112
+ <%- unless ["utbook", "tbook"].include?(@documentclass) -%>
113
+ %\usepackage[top=10zw,bottom=12zw,left=10zw,right=10zw]{geometry}
114
+ %\usepackage[top=5zw,bottom=5zw,left=1zw,right=1zw]{geometry}
115
+ <%- end -%>
116
+
117
+ \newcommand{\parasep}{\vspace*{3zh}}
118
+ \setlength{\footskip}{30pt}
119
+
120
+ %% Bookmarkの文字化け対策(日本語向け)
121
+ \usepackage[<%= dvipdfmx_ %>bookmarks=true,bookmarksnumbered=true,colorlinks=true,%
122
+ pdftitle={<%= escape_latex(@config.name_of("booktitle")) %>},%
123
+ pdfauthor={<%= escape_latex(@config.names_of("aut").join(I18n.t("names_splitter"))) %>}]{hyperref}
124
+ <%- if xelatex?() -%>
125
+ %\usepackage[<%= dvipdfmx %>]{pxjahyper}
126
+ <%- else -%>
127
+ \usepackage[<%= dvipdfmx %>]{pxjahyper}
128
+ <%- end -%>
129
+
130
+ <%- if ["utbook", "tbook"].include?(@documentclass) -%>
131
+ \newcommand{\headfont}{\gtfamily\sffamily\bfseries}
132
+ \usepackage{plext}
133
+ <%- end -%>
134
+
135
+ <%- if @config["highlight"] && @config["highlight"]["latex"] == "listings" -%>
136
+ <%- if @config["language"] == "ja" -%>
137
+ \usepackage{listings,jlisting}
138
+ <%- else -%>
139
+ \usepackage{listings}
140
+ <%- end -%>
141
+ \renewcommand{\lstlistingname}{<%= escape_latex(I18n.t("list")) %>}
142
+ \lstset{%
143
+ breaklines=true,%
144
+ breakautoindent=false,%
145
+ breakindent=0pt,%
146
+ fontadjust=true,%
147
+ backgroundcolor=\color{shadecolor},%
148
+ frame=single,%
149
+ framerule=0pt,%
150
+ basicstyle=\ttfamily\scriptsize,%
151
+ commentstyle=\color{reviewgreen},%
152
+ identifierstyle=\color{reviewblue},%
153
+ stringstyle=\color{reviewred},%
154
+ keywordstyle=\bfseries\color{reviewdarkred},%
155
+ }
156
+
157
+ \lstnewenvironment{reviewemlistlst}[1][]{\lstset{#1}}{}
158
+ \lstnewenvironment{reviewemlistnumlst}[1][]{\lstset{numbers=left, #1}}{}
159
+ \lstnewenvironment{reviewlistlst}[1][]{\lstset{#1}}{}
160
+ \lstnewenvironment{reviewlistnumlst}[1][]{\lstset{numbers=left, #1}}{}
161
+ \lstnewenvironment{reviewsourcelst}[1][]{\lstset{#1}}{}
162
+ \lstnewenvironment{reviewsourcenumlst}[1][]{\lstset{numbers=left, #1}}{}
163
+ \lstnewenvironment{reviewcmdlst}[1][]{\lstset{backgroundcolor=\color{white}, frameround=tttt, frame=trbl, #1}}{}
164
+ <%- end -%>
165
+
166
+ \newenvironment{reviewimage}{%
167
+ \begin{figure}[H]
168
+ \begin{center}}{%
169
+ \end{center}
170
+ \end{figure}}
171
+
172
+ \newenvironment{reviewdummyimage}{%
173
+ \begin{figure}[H]
174
+ \begin{center}\begin{alltt}}{%
175
+ \end{alltt}\end{center}
176
+ \end{figure}}
177
+
178
+ \newcommand{\reviewimagecaption}[1]{%
179
+ \caption{#1}}
180
+
181
+ \newenvironment{reviewemlist}{%
182
+ \medskip\small\begin{shaded}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
183
+ \end{alltt}\end{shaded}}
184
+
185
+ \newenvironment{reviewlist}{%
186
+ \begin{shaded}\small\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
187
+ \end{alltt}\end{shaded}\par\vspace*{0.5zw}}
188
+
189
+ \newenvironment{reviewsource}{%
190
+ \begin{shaded}\small\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
191
+ \end{alltt}\end{shaded}\par\vspace*{0.5zw}}
192
+
193
+ \newenvironment{reviewcmd}{%
194
+ \color{white}\medskip\small\begin{shadedb}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
195
+ \end{alltt}\end{shadedb}}
196
+
197
+ \newenvironment{reviewbox}{%
198
+ \medskip\small\begin{framed}\setlength{\baselineskip}{1.3zw}\begin{alltt}}{%
199
+ \end{alltt}\end{framed}}
200
+
201
+ %\newenvironment{reviewtable}[1]{%
202
+ % \begin{center}\small\setlength{\baselineskip}{1.2zw}
203
+ % \begin{tabular}{#1}}{%
204
+ % \end{tabular}
205
+ % \end{center}}
206
+ \newenvironment{reviewtable}[1]{%
207
+ \small\setlength{\baselineskip}{1.2zw}%
208
+ \begin{tabular}{#1}%
209
+ }{%
210
+ \end{tabular}%
211
+ }
212
+
213
+ \newenvironment{reviewcolumn}{%
214
+ \begin{framed}
215
+ }{%
216
+ \end{framed}
217
+ \vspace{2zw}}
218
+
219
+ \newcommand{\reviewcolumnhead}[2]{%
220
+ {\noindent\large <%= escape_latex(I18n.t("column_head"))%>: #2}}
221
+
222
+ \newcommand{\reviewtablecaption}[1]{%
223
+ \caption{#1}}
224
+
225
+ \WithSuffix\newcommand\reviewtablecaption*[1]{%
226
+ \caption*{#1}}
227
+
228
+ \newcommand{\reviewimgtablecaption}[1]{%
229
+ \caption{#1}\vspace{-3mm}}
230
+
231
+ \newcommand{\reviewbackslash}[0]{%
232
+ \textbackslash{}}
233
+
234
+ \newcommand{\reviewlistcaption}[1]{%
235
+ \medskip{\small\noindent #1}\vspace*{-1.3zw}}
236
+
237
+ \newcommand{\reviewemlistcaption}[1]{%
238
+ \medskip{\small\noindent #1}\vspace*{-1.3zw}}
239
+
240
+ \newcommand{\reviewsourcecaption}[1]{%
241
+ \medskip{\small\noindent #1}\vspace*{-1.3zw}}
242
+
243
+ \newcommand{\reviewcmdcaption}[1]{%
244
+ \medskip{\small\noindent #1}\vspace*{-1.3zw}}
245
+
246
+ \newcommand{\reviewindepimagecaption}[1]{%
247
+ \begin{center}#1\end{center}}
248
+
249
+ \newcommand{\reviewboxcaption}[1]{%
250
+ \medskip{\small\noindent #1}\vspace*{-1.3zw}}
251
+
252
+ \newcommand{\reviewimageref}[2]{<%= escape_latex(I18n.t("image"))%> #1}
253
+ \newcommand{\reviewtableref}[2]{<%= escape_latex(I18n.t("table"))%> #1}
254
+ \newcommand{\reviewlistref}[1]{<%= escape_latex(I18n.t("list"))%> #1}
255
+ \newcommand{\reviewbibref}[2]{#1}
256
+ \newcommand{\reviewcolumnref}[2]{<%= escape_latex(I18n.t("columnname"))%> #1}
257
+ \newcommand{\reviewsecref}[2]{#1}
258
+
259
+ \newcommand{\reviewminicolumntitle}[1]{%
260
+ {\large <%= escape_latex(I18n.t("memo_head"))%>: #1}\\}
261
+
262
+ <%- if @config["toctitle"].present? -%>
263
+ \renewcommand{\contentsname}{<%= escape_latex(@config["toctitle"]) %>}
264
+ <%- elsif I18n.t("toctitle") -%>
265
+ \renewcommand{\contentsname}{<%= escape_latex(I18n.t("toctitle")) %>}
266
+ <%- end -%>
267
+
268
+ \newenvironment{reviewminicolumn}{%
269
+ \vspace{1.5zw}\begin{screen}}{%
270
+ \end{screen}\vspace{2zw}}
271
+
272
+ \newcommand{\reviewkw}[1]{\textbf{\textgt{#1}}}
273
+ \newcommand{\reviewami}[1]{\mask{#1}{A}}
274
+ \newcommand{\reviewem}[1]{\textbf{#1}}
275
+ \newcommand{\reviewstrong}[1]{\textbf{#1}}
276
+ \newcommand{\reviewunderline}{\Underline}
277
+
278
+ %% @<del> is ignored in LaTeX with default style
279
+ \newcommand{\reviewstrike}[1]{#1}
280
+
281
+ %%%% for ulem.sty:
282
+ %%\renewcommand{\reviewstrike}[1]{\sout{#1}}
283
+ %%
284
+ %%%% for jumoline.sty:
285
+ %%\renewcommand{\reviewstrike}[1]{\Middleline{#1}}
286
+
287
+ \newcommand{\reviewth}[1]{{\gtfamily\sffamily\bfseries #1}}
288
+ \newcommand{\reviewtitlefont}[0]{\usefont{T1}{phv}{b}{n}\gtfamily}
289
+ \newcommand{\reviewmainfont}[0]{}
290
+ \newcommand{\reviewcolophon}[0]{\clearpage}
291
+ \newcommand{\reviewappendix}[0]{\appendix}
292
+
293
+ \newcommand{\reviewprepartname}{<%= escape_latex(@locale_latex["prepartname"]) %>}
294
+ \newcommand{\reviewpostpartname}{<%= escape_latex(@locale_latex["postpartname"]) %>}
295
+ \newcommand{\reviewprechaptername}{<%= escape_latex(@locale_latex["prechaptername"]) %>}
296
+ \newcommand{\reviewpostchaptername}{<%= escape_latex(@locale_latex["postchaptername"]) %>}
297
+ \newcommand{\reviewfigurename}{<%= escape_latex(I18n.t("image")) %>}
298
+ \newcommand{\reviewtablename}{<%= escape_latex(I18n.t("table")) %>}
299
+ \newcommand{\reviewappendixname}{<%= escape_latex(@locale_latex["preappendixname"]) %>}
300
+
301
+ \ifdefined\prepartname
302
+ \renewcommand{\prepartname}{\reviewprepartname}
303
+ \fi
304
+ \ifdefined\postpartname
305
+ \renewcommand{\postpartname}{\reviewpostpartname}
306
+ \fi
307
+ \ifdefined\prechaptername
308
+ \renewcommand{\prechaptername}{\reviewprechaptername}
309
+ \fi
310
+ \ifdefined\postchaptername
311
+ \renewcommand{\postchaptername}{\reviewpostchaptername}
312
+ \fi
313
+ \ifdefined\figurename
314
+ \renewcommand{\figurename}{\reviewfigurename}
315
+ \fi
316
+ \ifdefined\tablename
317
+ \renewcommand{\tablename}{\reviewtablename}
318
+ \fi
319
+ \ifdefined\appendixname
320
+ \renewcommand{\appendixname}{\reviewappendixname}
321
+ \fi
322
+
323
+
324
+ \makeatletter
325
+ %% maxwidth is the original width if it is less than linewidth
326
+ %% otherwise use linewidth (to make sure the graphics do not exceed the margin)
327
+ \def\maxwidth{%
328
+ \ifdim\Gin@nat@width>\linewidth
329
+ \linewidth
330
+ \else
331
+ \Gin@nat@width
332
+ \fi
333
+ }
334
+
335
+ %% true between '\appendix' and ''
336
+ \newif\if@appendix
337
+ \@appendixfalse
338
+
339
+ \makeatother
340
+
341
+ <%- if @config["texstyle"] -%>
342
+ <%- [@config["texstyle"]].flatten.each do |x| -%>
343
+ \usepackage{<%= x %>}
344
+ <%- end -%>
345
+ <%- end -%>
346
+ <%- if @config["makeindex"] -%>
347
+ \usepackage{makeidx}
348
+ \makeindex
349
+ <%- end -%>
350
+
351
+ <% if @config['secnolevel'] %>
352
+ \setcounter{secnumdepth}{<%= @config['secnolevel'] - 1 %>}
353
+ <% end %>
354
+
355
+
356
+ \begin{document}
357
+
358
+ \reviewmainfont
359
+
360
+ <%-
361
+ ## 表紙用PDFファイルを読み込む
362
+ include_pdffiles = proc do |pdf_files|
363
+ if ENV['STARTER_CHAPTER'].to_s.empty?
364
+ target = ENV['STARTER_TARGET']; target = nil if target.to_s.empty?
365
+ target ||= (@config['starter'] || {})['target']
366
+ p = target == "ebook" ? '' : '%'
367
+ [pdf_files].flatten.compact.each do |pdf_file|
368
+ -%>
369
+ <%= p %>\includepdf[<%= @config["coverpdf_option"] %>]{./<%= @config["imagedir"] %>/<%= pdf_file %>}
370
+ <%= p %>\addtocounter{page}{-1}
371
+ <%-
372
+ end
373
+ end
374
+ end
375
+ -%>
376
+ <%- include_pdffiles.call(@config["coverpdf_files"]) -%>
377
+
378
+ %
379
+
380
+ <%- if @config["titlepage"] -%>
381
+ %%%
382
+ \title{<%= escape_latex(@config.name_of("booktitle").to_s).gsub(/\n/) { "\\\\\n" } %>}
383
+ \makeatletter
384
+ \def\@subtitle{<%= escape_latex(@config.name_of("subtitle").to_s).gsub(/\n/) { "\\\\\n" } %>}
385
+ \def\@pubevent{<%= escape_latex(@config["pubevent_name"].to_s) %>}
386
+ \def\@latestpubhistory{<%= escape_latex(@config["pubhistory"].to_s.lines[-1]) %>}
387
+ \makeatother
388
+ \author{<%= @authors %>}
389
+ \date{<%= escape_latex(@config["date"].to_s) %> <%= escape_latex(I18n.t("edition")) %>\hspace{2zw}<%= escape_latex(I18n.t("published_by", @config.names_of("pbl").join(I18n.t("names_splitter"))))%>}
390
+ %%%
391
+ <%- if @custom_titlepage -%>
392
+ <%= @custom_titlepage %>
393
+ <%- else -%>
394
+ \begin{titlepage}
395
+ <%- if @config["coverimage"] -%>
396
+ \begin{center}
397
+ \includegraphics[<%= @coverimageoption%>]{./<%= @config["imagedir"] %>/<%= @config["coverimage"] %>}
398
+ \end{center}
399
+ \clearpage
400
+ <%- end -%>
401
+ \ifdefined\mytitlepage %%%%%%%%%%
402
+ \mytitlepage % defined in 'sty/mytitlepage.sty'
403
+ \else %%%%%%%%%%
404
+ \thispagestyle{empty}
405
+ \begin{center}%
406
+ \mbox{} \vskip5zw
407
+ \reviewtitlefont%
408
+ {\HUGE\bfseries <%= escape_latex(@config.name_of("booktitle")) %> \par}%
409
+ <%- if @config["subtitle"] -%>
410
+ \vskip 1em%
411
+ {\Large {\rmfamily --- } <%= escape_latex(@config.name_of("subtitle")) %> {\rmfamily --- } \par}%
412
+ <%- end -%>
413
+ \vskip 15em%
414
+ {\LARGE
415
+ \lineskip .75em
416
+ \begin{tabular}[t]{c}%
417
+ <%= @authors %>
418
+ \end{tabular}\par}%
419
+ \vfill
420
+ {\large <%= escape_latex(@config["date"].to_s) %> <%= escape_latex(I18n.t("edition")) %>\hspace{2zw}<%= escape_latex(I18n.t("published_by", @config.names_of("pbl").join(I18n.t("names_splitter"))))%>\par}%
421
+ \vskip4zw\mbox{}
422
+ \end{center}%
423
+ \fi %%%%%%%%%%
424
+ \end{titlepage}
425
+ \ifdefined\mytitlenextpage
426
+ \mytitlenextpage
427
+ \fi
428
+ <%- end -%>
429
+ <%- end -%>
430
+
431
+ %\renewcommand{\chaptermark}[1]{{}}
432
+ \frontmatter
433
+
434
+ %%% originaltitle
435
+ <%- if @config["originaltitlefile"] -%>
436
+ <%= @custom_originaltitlepage %>
437
+ <%- end -%>
438
+
439
+ %%% credit
440
+ <%- if @config["creditfile"] -%>
441
+ <%= @custom_creditpage %>
442
+ <%- end -%>
443
+
444
+ %% preface
445
+ <%= @input_files["PREDEF"] %>
446
+
447
+ <%- if @config["toc"] -%>
448
+ \setcounter{tocdepth}{<%= @config["toclevel"] - 1 %>}
449
+ \tableofcontents
450
+ <%- end -%>
451
+
452
+ %\renewcommand{\chaptermark}[1]{\markboth{\prechaptername\thechapter\postchaptername~#1}{}}
453
+ \mainmatter
454
+ <%= @input_files["CHAPS"] %>
455
+ %\renewcommand{\chaptermark}[1]{\markboth{\appendixname\thechapter~#1}{}}
456
+ \reviewappendix
457
+ \makeatletter\@appendixtrue\makeatother
458
+ <%= @input_files["APPENDIX"] %>
459
+ \makeatletter\@appendixfalse\makeatother
460
+
461
+ %% backmatter begins
462
+ <%- if @input_files["POSTDEF"].present? # or @config["colophon"] -%>
463
+ \backmatter
464
+ <%- end -%>
465
+
466
+ <%- if @input_files["POSTDEF"] -%>
467
+ <%= @input_files["POSTDEF"] %>
468
+ <%- end -%>
469
+ <%- if @config["pdfmaker"]["makeindex"] -%>
470
+ \printindex
471
+ <%- end -%>
472
+
473
+ %%% profile
474
+ <%- if @config["profile"] -%>
475
+ <%= @custom_profilepage %>
476
+ <%- end -%>
477
+
478
+ %%% advfile
479
+ <%- if @config["advfile"] -%>
480
+ <%= @custom_advfilepage %>
481
+ <%- end -%>
482
+
483
+ %%% colophon
484
+ <%- if @config["colophon"] -%>
485
+ <%- if @custom_colophonpage -%>
486
+ <%= @custom_colophonpage %>
487
+ <%- else -%>
488
+ %% okuduke
489
+ \ifdefined\mycolophon %%%%%%%%%%
490
+ \title{<%= escape_latex(@config.name_of("booktitle")) %>}
491
+ \makeatletter
492
+ \def\@subtitle{<%= escape_latex(@config.name_of("subtitle")) %>}
493
+ \makeatother
494
+ \def\colophonpubhistory{%
495
+ <%= @config["pubhistory"].to_s.gsub(/\n/){ "\n\n\\noindent\n" } %>%
496
+ }
497
+ \def\colophonokuduke{%
498
+ <%= @okuduke %>%
499
+ }
500
+ \def\colophonrights{%
501
+ <% @config.names_of("rights").each do |s| %>
502
+ <%= escape_latex(s).sub(/^\(C\)/i, '{\textcopyright}') %>\\
503
+ <% end if @config["rights"] %>
504
+ }
505
+ \mycolophon % defined in 'sty/mycolophon.sty'
506
+ \else %%%%%%%%%%
507
+ \reviewcolophon
508
+ \thispagestyle{empty}
509
+
510
+ \vspace*{\fill}
511
+
512
+ {\noindent\reviewtitlefont\Large <%= escape_latex(@config.name_of("booktitle")) %>} \\
513
+ <%- if @config["subtitle"] -%>
514
+ \medskip
515
+ {\noindent\reviewtitlefont <%= escape_latex(@config.name_of("subtitle")) %>} \\
516
+ <%- end -%>
517
+ \rule[8pt]{\textwidth}{1pt} \\
518
+ {\noindent
519
+ <%= @config["pubhistory"].to_s.gsub(/\n/){"\n\n\\noindent\n"} %>
520
+ }
521
+ \medskip
522
+
523
+ \begin{tabular}{ll}
524
+ <%= @okuduke %>
525
+ \end{tabular}
526
+ % \\
527
+
528
+ \medskip
529
+ \noindent
530
+ \rule[0pt]{\textwidth}{1pt} \\
531
+ <%- if @config["rights"] -%>
532
+ <%= @config.names_of("rights").map{|s| escape_latex(s)}.join('\\' + '\\') %> \\
533
+ <%- end -%>
534
+ <%- end -%>
535
+ \fi %%%%%%%%%%
536
+ <%- end -%>
537
+
538
+ %%% backcover
539
+ <%- if @config["backcover"] -%>
540
+ <%= @custom_backcoverpage %>
541
+ <%- end -%>
542
+
543
+ <%- ## 裏表紙用PDFファイルを読み込む -%>
544
+ <%- include_pdffiles.call(@config["backcoverpdf_files"]) -%>
545
+
546
+ \end{document}