pandoc2review 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 (39) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/pandoc.yml +18 -0
  3. data/.gitignore +47 -0
  4. data/Gemfile +6 -0
  5. data/LICENSE +339 -0
  6. data/README.md +105 -0
  7. data/Rakefile +13 -0
  8. data/exe/pandoc2review +12 -0
  9. data/lib/pandoc2review.rb +99 -0
  10. data/lua/filters.lua +163 -0
  11. data/lua/review.lua +620 -0
  12. data/markdown-format.ja.md +721 -0
  13. data/pandoc2review.gemspec +29 -0
  14. data/samples/format.md +276 -0
  15. data/samples/reviewsample/.gitignore +154 -0
  16. data/samples/reviewsample/Gemfile +4 -0
  17. data/samples/reviewsample/Rakefile +3 -0
  18. data/samples/reviewsample/catalog.yml +10 -0
  19. data/samples/reviewsample/ch01.md +38 -0
  20. data/samples/reviewsample/ch02.re +3 -0
  21. data/samples/reviewsample/config-ebook.yml +6 -0
  22. data/samples/reviewsample/config.yml +20 -0
  23. data/samples/reviewsample/images/cover-a5.ai +5836 -16
  24. data/samples/reviewsample/images/cover.jpg +0 -0
  25. data/samples/reviewsample/images/pandoc2review.png +0 -0
  26. data/samples/reviewsample/lib/tasks/review.rake +128 -0
  27. data/samples/reviewsample/lib/tasks/z01_pandoc2review.rake +69 -0
  28. data/samples/reviewsample/sty/README.md +168 -0
  29. data/samples/reviewsample/sty/gentombow.sty +769 -0
  30. data/samples/reviewsample/sty/jsbook.cls +2072 -0
  31. data/samples/reviewsample/sty/jumoline.sty +310 -0
  32. data/samples/reviewsample/sty/plistings.sty +326 -0
  33. data/samples/reviewsample/sty/review-base.sty +530 -0
  34. data/samples/reviewsample/sty/review-custom.sty +1 -0
  35. data/samples/reviewsample/sty/review-jsbook.cls +503 -0
  36. data/samples/reviewsample/sty/review-style.sty +49 -0
  37. data/samples/reviewsample/sty/reviewmacro.sty +15 -0
  38. data/samples/reviewsample/style.css +494 -0
  39. metadata +128 -0
@@ -0,0 +1 @@
1
+ % for user-defined macro
@@ -0,0 +1,503 @@
1
+ %#!ptex2pdf -l -u -ot '-synctex=1' test-rejsbk
2
+ % Copyright (c) 2018-2020 Munehiro Yamamoto, Kenshi Muto.
3
+ %
4
+ % Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ % of this software and associated documentation files (the "Software"), to deal
6
+ % in the Software without restriction, including without limitation the rights
7
+ % to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ % copies of the Software, and to permit persons to whom the Software is
9
+ % furnished to do so, subject to the following conditions:
10
+ %
11
+ % The above copyright notice and this permission notice shall be included in
12
+ % all copies or substantial portions of the Software.
13
+ %
14
+ % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ % IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ % FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ % AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ % LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ % THE SOFTWARE.
21
+
22
+ \NeedsTeXFormat{pLaTeX2e}
23
+ \ProvidesClass{review-jsbook}
24
+ [2020/12/12 v5.1 Re:VIEW pLaTeX class modified for jsbook.cls]
25
+
26
+ \def\recls@error{\ClassError{review-jsbook}}
27
+ \def\recls@warning{\ClassWarning{review-jsbook}}
28
+ \def\recls@warningnoline{\ClassWarningNoLine{review-jsbook}}
29
+ \def\recls@info{\ClassInfo{review-jsbook}}
30
+
31
+ %% hook at end of reviewmacro
32
+ \let\@endofreviewmacrohook\@empty
33
+ \def\AtEndOfReVIEWMacro{%
34
+ \g@addto@macro\@endofreviewmacrohook}
35
+ \@onlypreamble\AtEndOfReVIEWMacro
36
+
37
+ %% fixes to LaTeX2e
38
+ \RequirePackage{fix-cm}%%\RequirePackage{fix-cm,exscale}
39
+ \IfFileExists{latexrelease.sty}{}{\RequirePackage{fixltx2e}}
40
+
41
+ %% graphicx: added nosetpagesize
42
+ \IfFileExists{platexrelease.sty}{%% is bundled in TL16 or higher release version
43
+ \PassOptionsToPackage{nosetpagesize}{graphicx}%%for TL16 or higher version
44
+ }{}
45
+
46
+ \RequirePackage{xkeyval,everypage}%%,etoolbox
47
+
48
+ %% useful helpers
49
+ \newcommand\recls@get@p@[2]{%
50
+ \edef#2{\expandafter\@recls@GET@P@\the#1}}
51
+ {\catcode`p=12\catcode`t=12\gdef\@recls@GET@P@#1pt{#1}}%
52
+
53
+ \long\def\recls@ifempty#1{%
54
+ \expandafter\ifx\expandafter\relax\detokenize{#1}\relax\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
55
+ % \long\def\recls@ifempty#1{\recls@xifempty#1@@..\@nil}
56
+ % \long\def\recls@xifempty#1#2@#3#4#5\@nil{%
57
+ % \ifx#3#4\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
58
+ \long\def\recls@ifnotempty#1{\recls@ifempty{#1}{}}
59
+
60
+ \newcommand*{\recls@DeclareOption}[2]{%
61
+ \DeclareOptionX{#1}{%
62
+ \recls@ifempty{##1}{}{%
63
+ \ClassError{recls}{The option #1 should have no value}{\@ehc}}%
64
+ #2}}
65
+
66
+ %% define/set specific paper(s) for review-jsbook.cls
67
+ \def\recls@define@paper#1#2{%
68
+ %% \paper@<papername>=> <size>:<width>x<height>+<cutoffset>
69
+ \@namedef{recls@paper@#1}{#1#2}%
70
+ }
71
+
72
+ \def\recls@set@paper#1{%
73
+ \@ifundefined{recls@paper@#1}{%
74
+ \recls@error{Not define such paper: #1}}\relax
75
+ \expandafter\expandafter\expandafter
76
+ \@recls@set@paper\expandafter\expandafter\expandafter
77
+ {\csname recls@paper@#1\endcsname}}
78
+ \def\@recls@set@paper#1{%
79
+ \edef\recls@set@js@paper{#1}%
80
+ \PassOptionsToClass{\recls@set@js@paper}{jsbook}}
81
+
82
+ \recls@define@paper{a3}{paper}
83
+ \recls@define@paper{a4}{paper}
84
+ \recls@define@paper{a5}{paper}
85
+ \recls@define@paper{a6}{paper}
86
+ \recls@define@paper{b4}{paper}
87
+ \recls@define@paper{b5}{paper}
88
+ \recls@define@paper{b6}{paper}
89
+ \recls@define@paper{a4var}{}
90
+ \recls@define@paper{b5var}{}
91
+ \recls@define@paper{letter}{paper}
92
+ \recls@define@paper{legal}{paper}
93
+ \recls@define@paper{executive}{paper}
94
+
95
+ %% define/set specific fontsize
96
+ \def\recls@define@fontsize#1{%
97
+ \@namedef{recls@fontsize@#1}{#1}}
98
+
99
+ \def\recls@set@fontsize#1{%
100
+ \@ifundefined{recls@fontsize@#1}{%
101
+ \recls@set@customfontsize{#1}}{\@recls@set@fontsize{#1}}}
102
+ \def\@recls@set@fontsize#1{%
103
+ \expandafter\expandafter\expandafter
104
+ \@@recls@set@fontsize\expandafter\expandafter\expandafter
105
+ {\csname recls@fontsize@#1\endcsname}}
106
+ \def\@@recls@set@fontsize#1{%
107
+ \edef\recls@jsfontsize{#1}%
108
+ \ifdim\recls@jsfontsize=\recls@fontsize\else
109
+ \recls@warning{jsbook.cls has no such fontsize '\recls@fontsize'.^^J
110
+ pass through '\recls@jsfontsize' option to jsbook.cls}%
111
+ \fi
112
+ \PassOptionsToClass{\recls@jsfontsize}{jsbook}}
113
+
114
+ %% NOTE: カスタムフォントサイズの対応は、事実上、止めることにしました。
115
+ \def\recls@set@customfontsize#1{%
116
+ \setlength{\@tempdima}{#1}%
117
+ \ifdim\@tempdima<8.5pt\recls@set@fontsize{8pt}%
118
+ \else\ifdim\@tempdima<9.5pt\recls@set@fontsize{9pt}%
119
+ \else\ifdim\@tempdima<10.5pt\recls@set@fontsize{10pt}%
120
+ \else\ifdim\@tempdima<11.5pt\recls@set@fontsize{11pt}%
121
+ \else\ifdim\@tempdima<12.5pt\recls@set@fontsize{12pt}%
122
+ \else\ifdim\@tempdima<13pt\recls@set@fontsize{14pt}%
123
+ \else\ifdim\@tempdima<18.5pt\recls@set@fontsize{17pt}%
124
+ \else\ifdim\@tempdima<20.5pt\recls@set@fontsize{20pt}%
125
+ \else\ifdim\@tempdima<23pt\recls@set@fontsize{21pt}%
126
+ \else\ifdim\@tempdima<27.5pt\recls@set@fontsize{25pt}%
127
+ \else\ifdim\@tempdima<33pt\recls@set@fontsize{30pt}%
128
+ \else\ifdim\@tempdima<39.5pt\recls@set@fontsize{36pt}%
129
+ \else\recls@set@fontsize{43pt}%
130
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
131
+ }
132
+
133
+ \@for\recls@tmp:={%
134
+ 8pt,9pt,10pt,11pt,12pt,14pt,17pt,20pt,21pt,25pt,30pt,36pt,43pt,12Q,14Q,%
135
+ 10ptj,10.5ptj,11ptj,12ptj}\do{%
136
+ \expandafter\recls@define@fontsize\expandafter{\recls@tmp}}
137
+
138
+ %% disable some options of jsbook.cls
139
+ \def\recls@disable@jsopt#1{%
140
+ \recls@DeclareOption{#1}{\recls@error{option #1: not available}}}
141
+
142
+ \@for\recls@tmp:={%
143
+ a4j,a5j,b4j,b5j,winjis,mingoth}\do{%
144
+ \expandafter\recls@disable@jsopt\expandafter{\recls@tmp}}
145
+
146
+ %% \recls@set@tombowpaper{<papersize>}
147
+ \def\recls@set@tombowpaper#1{%
148
+ \xdef#1{\ifx\recls@hiddenfolio\@empty tombo,\fi#1}}
149
+
150
+ %% \recls@set@hiddenfolio{<preset>}
151
+ %% <preset>: default, marusho-ink (丸正インキ), nikko-pc (日光企画),
152
+ %% shippo (ねこのしっぽ)
153
+ \def\recls@set@hiddenfolio#1{\ifx#1\@empty\else
154
+ \@ifundefined{@makehiddenfolio@#1}{%
155
+ \recls@error{Not define such hiddenfolio: #1}}\relax
156
+ %% set hiddenfolio preset
157
+ \expandafter\let\expandafter\@makehiddenfolio\csname @makehiddenfolio@#1\endcsname
158
+ %% redefine to output \@makehiddenfolio for every page
159
+ \settombowbanner{\hskip-5mm\smash{\hiddenfolio@font\@makehiddenfolio}}%
160
+ \AddEverypageHook{\maketombowbox}%
161
+ \fi}
162
+
163
+ \def\hiddenfolio@font{\reset@font
164
+ \scriptsize\sffamily\baselineskip.8\baselineskip}
165
+
166
+ %% hiddenfolio=default
167
+ \@namedef{@makehiddenfolio@default}{%
168
+ \ifodd\c@page
169
+ \llap{\thepage\hspace{\dimexpr\@tombowbleed}}%
170
+ \else
171
+ \rlap{\hspace{\dimexpr\paperwidth+\@tombowbleed}\thepage}%
172
+ \fi}
173
+
174
+ %% hiddenfolio=marusho-ink
175
+ \@namedef{@makehiddenfolio@marusho-ink}{%
176
+ \gdef\recls@tombobleed{5mm}%
177
+ \@nameuse{@makehiddenfolio@nikko-pc}}
178
+
179
+ %% hiddenfolio=nikko-pc
180
+ \@namedef{@makehiddenfolio@nikko-pc}{%
181
+ \def\recls@hiddfolio{%
182
+ \edef\recls@tmp{\thepage}%
183
+ \lower\dimexpr4pt+\@tombowbleed+.5\paperheight+5\p@\hbox{%
184
+ \vbox{\expandafter\@tfor\expandafter\recls@x\expandafter:\expandafter=\recls@tmp\do{%
185
+ \hbox to 1zw{\hss\recls@x\hss}}}}}%
186
+ \ifodd\c@page
187
+ \rlap{\recls@hiddfolio}%
188
+ \else
189
+ \llap{\recls@hiddfolio\hspace{-\paperwidth}}%
190
+ \fi}
191
+
192
+ %% hiddenfolio=shippo
193
+ \@namedef{@makehiddenfolio@shippo}{%
194
+ \@nameuse{@makehiddenfolio@nikko-pc}}
195
+
196
+
197
+ %% media=print,ebook,preview
198
+ \newif\if@cameraready \@camerareadyfalse
199
+ \newif\if@pdfhyperlink \@pdfhyperlinkfalse
200
+ \DeclareOptionX{cameraready}[print]{\gdef\recls@cameraready{#1}}
201
+ \DeclareOptionX{media}[print]{\gdef\recls@cameraready{#1}}
202
+
203
+ %% 用紙
204
+ \DeclareOptionX{paper}[a4]{\gdef\recls@paper{#1}}
205
+ \DeclareOptionX{tombopaper}{%
206
+ \gdef\recls@tombowopts{}%%default: auto-detect
207
+ \ifx#1\@empty\else\gdef\recls@tombowopts{tombow-#1}\fi}
208
+ \DeclareOptionX{bleed_margin}[3mm]{\gdef\recls@tombobleed{#1}}
209
+ %% 隠しノンブルプリセット
210
+ \DeclareOptionX{hiddenfolio}{\gdef\recls@hiddenfolio{#1}}%%default: (none)
211
+ %% カスタム用紙サイズ
212
+ \DeclareOptionX{paperwidth}{\gdef\recls@paperwidth{#1}}
213
+ \DeclareOptionX{paperheight}{\gdef\recls@paperheight{#1}}
214
+ %% 基本版面、天、ノド
215
+ \DeclareOptionX{fontsize}[10pt]{\gdef\recls@fontsize{#1}}
216
+ \DeclareOptionX{line_length}{\gdef\recls@line@length{#1}}%%ベタ組みになるように調整
217
+ \DeclareOptionX{number_of_lines}{\gdef\recls@number@of@lines{#1}}
218
+ \DeclareOptionX{baselineskip}{\def\recls@baselineskip{#1}}
219
+ \DeclareOptionX{linegap}{\def\recls@linegap{#1}}
220
+ \DeclareOptionX{head_space}{\gdef\recls@head@space{#1}}
221
+ \DeclareOptionX{gutter}{\gdef\recls@gutter{#1}}
222
+ %% headheight,headsep,footskip
223
+ \DeclareOptionX{headheight}{\gdef\recls@headheight{#1}}
224
+ \DeclareOptionX{headsep}{\gdef\recls@headsep{#1}}
225
+ \DeclareOptionX{footskip}{\gdef\recls@footskip{#1}}
226
+
227
+ %% 表紙・開始番号・通しノンブル
228
+ \newif\if@reclscover \@reclscovertrue
229
+ \newif\ifrecls@coverfitpage \recls@coverfitpagefalse
230
+ \newif\ifrecls@serialpage \recls@serialpagefalse
231
+ \DeclareOptionX{cover}[\@empty]{\gdef\recls@forcecover{#1}}
232
+ \DeclareOptionX{cover_fit_page}[false]{\csname recls@coverfitpage#1\endcsname}
233
+ \DeclareOptionX{startpage}[1]{\gdef\recls@startpage{\numexpr#1}}
234
+ \DeclareOptionX{serial_pagination}[false]{\csname recls@serialpage#1\endcsname}
235
+
236
+ \PassOptionsToClass{dvipdfmx,nomag}{jsbook}
237
+ \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{jsbook}}%
238
+ \ExecuteOptionsX{cameraready,media,hiddenfolio,%
239
+ paper,tombopaper,bleed_margin,paperwidth,paperheight,%
240
+ fontsize,line_length,number_of_lines,baselineskip,linegap,head_space,%
241
+ gutter,headheight,headsep,footskip,%
242
+ cover,startpage,serial_pagination}
243
+ \ProcessOptionsX\relax
244
+
245
+ %% set specific papersize, fontsize
246
+ \recls@set@paper{\recls@paper}
247
+ \recls@set@tombowpaper{\recls@tombowopts}
248
+ \recls@set@fontsize{\recls@fontsize}
249
+
250
+ %% camera-ready PDF file preparation for each print, ebook
251
+ \def\recls@tmp{preview}\ifx\recls@cameraready\recls@tmp
252
+ \@camerareadyfalse\@pdfhyperlinkfalse\@reclscovertrue
253
+ \PassOptionsToClass{papersize}{jsbook}%
254
+ \else\def\recls@tmp{print}\ifx\recls@cameraready\recls@tmp
255
+ \@camerareadytrue\@pdfhyperlinkfalse\@reclscoverfalse
256
+ \IfFileExists{gentombow.sty}{%
257
+ \AtEndOfClass{%
258
+ \RequirePackage[pdfbox,\recls@tombowopts]{gentombow}%
259
+ \settombowbleed{\recls@tombobleed}%
260
+ \recls@set@hiddenfolio{\recls@hiddenfolio}}%
261
+ }{\recls@warning{%
262
+ package gentombow: not installed^^J
263
+ option tombopaper: not available}%
264
+ \PassOptionsToClass{tombo}{jsbook}%
265
+ }%
266
+ \else\def\recls@tmp{ebook}\ifx\recls@cameraready\recls@tmp
267
+ \@camerareadytrue\@pdfhyperlinktrue\@reclscovertrue
268
+ \PassOptionsToClass{papersize}{jsbook}%
269
+ \else
270
+ \recls@error{No such value of media: \recls@cameraready}%
271
+ \fi\fi\fi
272
+
273
+ %% 内部Unicode動作の時だけupTeXとみなす
274
+ \newif\if@recls@uptex \@recls@uptexfalse
275
+ \ifx\ucs\@undefined\else \ifnum\ucs"3000="3000
276
+ \@recls@uptextrue
277
+ \PassOptionsToClass{uplatex}{jsbook}
278
+ \PassOptionsToPackage{uplatex}{otf}
279
+ \fi\fi
280
+
281
+ \LoadClass{jsbook}
282
+
283
+ % \typeout{!!! magscale: \jsc@magscale}
284
+ % \typeout{!!! mag: \the\mag}%%=> 1000 -> OK
285
+
286
+ %% override papersize with custom papersize
287
+ \ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else
288
+ \setlength{\paperwidth}{\recls@paperwidth}
289
+ \setlength{\paperheight}{\recls@paperheight}
290
+ \def\recls@tmp{print}\ifx\recls@cameraready\recls@tmp\else
291
+ \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
292
+ \fi
293
+ \fi\fi
294
+
295
+ %% baseline
296
+ \ifx\recls@linegap\@empty\else
297
+ \setlength{\baselineskip}{\dimexpr\Cwd+\recls@linegap}
298
+ \renewcommand{\normalsize}{%
299
+ \jsc@setfontsize\normalsize\@xpt\baselineskip% \@xiipt
300
+ \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
301
+ \abovedisplayshortskip \z@ \@plus3\jsc@mpt
302
+ \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
303
+ \belowdisplayshortskip \belowdisplayskip
304
+ \let\@listi\@listI}
305
+ \normalsize
306
+ \fi
307
+ \ifx\recls@baselineskip\@empty\else
308
+ \setlength{\baselineskip}{\recls@baselineskip}
309
+ \renewcommand{\normalsize}{%
310
+ \jsc@setfontsize\normalsize\@xpt\baselineskip% \@xiipt
311
+ \abovedisplayskip 11\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
312
+ \abovedisplayshortskip \z@ \@plus3\jsc@mpt
313
+ \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
314
+ \belowdisplayshortskip \belowdisplayskip
315
+ \let\@listi\@listI}
316
+ \normalsize
317
+ \fi
318
+ \setlength{\Cvs}{\baselineskip}
319
+
320
+ %% headheight, headsep, footskip
321
+ % \setlength\topskip{\Cht}%%<= カスタムにしても、jsbook.clsのままにしとく
322
+ \ifx\recls@headheight\@empty\else\setlength\headheight{\recls@headheight}\fi
323
+ \ifx\recls@headsep\@empty\else\setlength\headsep{\recls@headsep}\fi
324
+ \ifx\recls@footskip\@empty\else\setlength\footskip{\recls@footskip}\fi
325
+ % \setlength\maxdepth{.5\topskip}%%<= カスタムにしても、jsbook.clsのままにしとく
326
+
327
+ %% 字詰め数、行数
328
+ \ifx\recls@line@length\@empty\else
329
+ \@tempcnta\dimexpr\recls@line@length/\Cwd\relax
330
+ \setlength\textwidth{\@tempcnta\Cwd}
331
+ \setlength\fullwidth{\textwidth}
332
+ \fi
333
+ \ifx\recls@number@of@lines\@empty\else
334
+ \setlength\textheight{\recls@number@of@lines\Cvs}
335
+ \addtolength\textheight{-\Cvs}\addtolength\textheight{\Cwd}
336
+ \addtolength\textheight{\dimexpr\topskip-\Cht}%%adjustment for jsbook.cls's \topskip
337
+ \fi
338
+
339
+ %% ノド、小口
340
+ %% gutterがあればそれに基づいて設定。
341
+ %% line_lengthが指定されていればtextwidth基準にして設定。
342
+ %% どちらも指定がなければjsbookをそのまま使用。
343
+ \ifx\recls@gutter\@empty
344
+ \ifx\recls@line@length\@empty\else
345
+ \setlength\oddsidemargin{\paperwidth}
346
+ \addtolength\oddsidemargin{-\fullwidth}%%line_lengthを与えたとき\textwidth
347
+ \setlength\oddsidemargin{.5\oddsidemargin}
348
+ \addtolength\oddsidemargin{-1in}
349
+ \setlength\evensidemargin{\oddsidemargin}
350
+ \edef\recls@gutter{\evensidemargin}
351
+ \fi
352
+ \else
353
+ \setlength\oddsidemargin{\recls@gutter}%ノド
354
+ \addtolength\oddsidemargin{-1in}
355
+ \setlength\evensidemargin{\paperwidth}
356
+ \addtolength\evensidemargin{-2in}
357
+ \addtolength\evensidemargin{-\oddsidemargin}
358
+ \addtolength\evensidemargin{-\textwidth}
359
+ \fi
360
+
361
+ %% 天、地
362
+ \ifx\recls@head@space\@empty
363
+ \ifx\recls@paperwidth\@empty\else\ifx\recls@paperheight\@empty\else
364
+ \setlength\topmargin\paperheight
365
+ \addtolength\topmargin{-\textheight}
366
+ \setlength\topmargin{.5\topmargin}
367
+ \addtolength\topmargin{-1in}
368
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
369
+ \fi\fi
370
+ \ifx\recls@number@of@lines\@empty\else
371
+ \setlength\topmargin\paperheight
372
+ \addtolength\topmargin{-\textheight}
373
+ \setlength\topmargin{.5\topmargin}
374
+ \addtolength\topmargin{-1in}
375
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
376
+ \fi
377
+ \edef\recls@head@space{\dimexpr\topmargin+1in+\headheight+\headsep}
378
+ \else
379
+ \setlength\topmargin{\recls@head@space}%天
380
+ \addtolength\topmargin{-1in}
381
+ \addtolength\topmargin{-\headheight}\addtolength\topmargin{-\headsep}
382
+ \fi
383
+
384
+ %% load hyperref package
385
+ \RequirePackage[dvipdfmx, \if@pdfhyperlink\else draft,\fi
386
+ bookmarks=true,
387
+ bookmarksnumbered=true,
388
+ hidelinks,
389
+ setpagesize=false,
390
+ ]{hyperref}
391
+ \RequirePackage[dvipdfmx]{pxjahyper}
392
+
393
+ %% more useful macros
394
+ %% ----------
395
+ %% include fullpage graphics
396
+ \let\grnchry@head\recls@head@space
397
+ \let\grnchry@gutter\recls@gutter
398
+ \newcommand*\includefullpagegraphics{%
399
+ \clearpage
400
+ \@ifstar
401
+ {\@includefullpagegraphics}%
402
+ {\thispagestyle{empty}\@includefullpagegraphics}
403
+ }
404
+
405
+ \newcommand*\@includefullpagegraphics[2][]{%
406
+ \vbox to \textheight{%
407
+ \vskip-\grnchry@head
408
+ \vbox to \paperheight{\vss
409
+ \hbox to \textwidth{%
410
+ \ifodd\c@page
411
+ \hskip-\dimexpr\oddsidemargin + 1in\relax
412
+ \else
413
+ \hskip-\dimexpr\evensidemargin + 1in\relax
414
+ \fi
415
+ \hbox to \paperwidth{\hss
416
+ \includegraphics[#1]{#2}%
417
+ \hss}%
418
+ \hss}%
419
+ \vss}%
420
+ \vss}%
421
+ \clearpage
422
+ }
423
+
424
+ %% 空ページ
425
+ \newcommand\oneblankpage{\clearpage\thispagestyle{empty}%
426
+ \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi}
427
+
428
+ %% 横書き向けの、奇数ページまでの改丁(\cleardoublepage)・偶数ページまでの改丁(\clearoddpage)
429
+ \let\cleardoublepage@right\cleardoublepage
430
+ \def\cleardoublepage@left{\clearpage\if@twoside\ifodd\c@page
431
+ \hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
432
+ \let\clearoddpage\cleardoublepage@left
433
+
434
+ %% 行のサンプル。\makelines{行数} で「■□■□…」からなる行を指定行数配置する
435
+ \def\makelines#1{%
436
+ \@tempcnta\z@\relax
437
+ \def\@makeline@f@size{\f@size}%
438
+ \@whilenum\@tempcnta<#1\do{%
439
+ \advance\@tempcnta\@ne\relax
440
+ \noindent\rlap{\the\@tempcnta}\nobreak
441
+ \makelines@neline\par}%
442
+ }
443
+ \def\makelines@unit@#10#2\relax{%
444
+ \ifx!#2!\relax □\else\relax ■\fi}%
445
+ \newcounter{makelines@unit}
446
+ \def\makelines@neline{%
447
+ \c@makelines@unit\@ne
448
+ \@whilenum\c@makelines@unit<\dimexpr(\textwidth + \Cwd)/\Cwd\do{%
449
+ \expandafter\makelines@unit@\the\c@makelines@unit0\relax
450
+ \advance\c@makelines@unit\@ne}%
451
+ }
452
+
453
+ %% coverオプションによる表紙判定の上書き
454
+ \def\recls@tmp{true}\ifx\recls@forcecover\recls@tmp
455
+ \@reclscovertrue
456
+ \else\def\recls@tmp{false}\ifx\recls@forcecover\recls@tmp
457
+ \@reclscoverfalse
458
+ \else% それ以外の値は単に無視
459
+ \fi\fi
460
+
461
+ %% シンプルな通しノンブル
462
+ \ifrecls@serialpage
463
+ \def\pagenumbering#1{%
464
+ \gdef\thepage{\csname @arabic\endcsname\c@page}}
465
+ \fi
466
+
467
+ %% 開始ページを変更
468
+ \g@addto@macro\frontmatter{\setcounter{page}{\the\recls@startpage}}
469
+
470
+ %% titlepageのsetcounterを使わない
471
+ \renewenvironment{titlepage}{%
472
+ \clearpage
473
+ \if@twoside\ifodd\c@page\else
474
+ \hbox{}\thispagestyle{empty}\newpage
475
+ \if@twocolumn\hbox{}\newpage\fi
476
+ \fi\fi
477
+ \if@twocolumn
478
+ \@restonecoltrue\onecolumn
479
+ \else
480
+ \@restonecolfalse\newpage
481
+ \fi
482
+ \thispagestyle{empty}%
483
+ \ifodd\c@page\relax%% \setcounter{page}\@ne
484
+ \else\setcounter{page}\z@\fi %% 2017-02-24
485
+ }%
486
+ {\if@restonecol\twocolumn \else \newpage \fi
487
+ \if@twoside\else
488
+ %% \setcounter{page}\@ne
489
+ \fi}
490
+
491
+ %% 表紙のノンブル
492
+ \def\coverpagezero#1{\expandafter\@coverpagezero\csname c@#1\endcsname}
493
+ \def\@coverpagezero#1{cover}
494
+
495
+ %% 脚注がページをまたいで泣き別れさせない
496
+ \interfootnotelinepenalty\@M
497
+
498
+ %% 代替定義
499
+ \def\reviewleftcurlybrace{\{}
500
+ \def\reviewrightcurlybrace{\}}
501
+
502
+ \listfiles
503
+ \endinput