pandoc2review 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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,310 @@
1
+ %%
2
+ %% This is file `jumoline.sty',
3
+ %% generated with the docstrip utility.
4
+ %%
5
+ %% The original source files were:
6
+ %%
7
+ %% jumoline.dtx (with options: `package')
8
+ %%
9
+ %% IMPORTANT NOTICE:
10
+ %%
11
+ %% For the copyright see the source file.
12
+ %%
13
+ %% Any modified versions of this file must be renamed
14
+ %% with new filenames distinct from jumoline.sty.
15
+ %%
16
+ %% For distribution of the original source see the terms
17
+ %% for copying and modification in the file jumoline.dtx.
18
+ %%
19
+ %% This generated file may be distributed as long as the
20
+ %% original source files, as listed above, are part of the
21
+ %% same distribution. (The sources need not necessarily be
22
+ %% in the same archive or directory.)
23
+ %% Style file `jumoline'.
24
+ %% Copyright (C) 1999-2001 Hiroshi Nakashima
25
+ %% (Toyohashi Univ. of Tech.)
26
+ %%
27
+ %% This program can be redistributed and/or modified under the terms
28
+ %% of the LaTeX Project Public License distributed from CTAN
29
+ %% archives in directory macros/latex/base/lppl.txt; either
30
+ %% version 1 of the License, or any later version.
31
+ %%
32
+ %% \CharacterTable
33
+ %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
34
+ %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
35
+ %% Digits \0\1\2\3\4\5\6\7\8\9
36
+ %% Exclamation \! Double quote \" Hash (number) \#
37
+ %% Dollar \$ Percent \% Ampersand \&
38
+ %% Acute accent \' Left paren \( Right paren \)
39
+ %% Asterisk \* Plus \+ Comma \,
40
+ %% Minus \- Point \. Solidus \/
41
+ %% Colon \: Semicolon \; Less than \<
42
+ %% Equals \= Greater than \> Question mark \?
43
+ %% Commercial at \@ Left bracket \[ Backslash \\
44
+ %% Right bracket \] Circumflex \^ Underscore \_
45
+ %% Grave accent \` Left brace \{ Vertical bar \|
46
+ %% Right brace \} Tilde \~}
47
+ %%
48
+ %%
49
+ \def\next{LaTeX2e}
50
+ \ifx\fmtname\next
51
+ \def\next{
52
+ \NeedsTeXFormat{LaTeX2e}[1994/12/01]
53
+ \ProvidesPackage{jumoline}}
54
+ \else\def\next[#1]{}\fi
55
+ \next
56
+ [2001/05/31 v1.2 ]
57
+
58
+ \ifx\PackageError\undefined
59
+ \def\PackageError#1#2#3{\@latexerr{#1:#2}{#3^^J\@ehc}}
60
+ \fi
61
+
62
+ %%^L
63
+
64
+ %% Register Declaration
65
+
66
+ \newdimen\UnderlineDepth \UnderlineDepth-\maxdimen
67
+ \newdimen\MidlineHeight \MidlineHeight-\maxdimen
68
+ \newdimen\OverlineHeight \OverlineHeight-\maxdimen
69
+ \newdimen\UMOlineThickness \UMOlineThickness.4pt
70
+
71
+ \newdimen\UMO@height \newdimen\UMO@depth
72
+ \newdimen\UMO@dqspace \newdimen\UMO@tempdim
73
+
74
+ \newskip\UMO@prejfmglue \newskip\UMO@postjfmglue
75
+
76
+ \newcount\UMO@mode
77
+ \let\UMO@afterblock\z@
78
+ \let\UMO@afterword\@ne
79
+ \let\UMO@afterchar\tw@
80
+
81
+ \newcount\UMO@spacefactor
82
+ \newcount\UMO@firstxspcode
83
+ \newcount\UMO@lastxspcode
84
+ \newcount\UMO@inhibitxspcode
85
+ \newcount\UMO@prebreakpenalty
86
+ \newcount\UMO@postbreakpenalty
87
+ \newcount\UMO@kpostbreakpenalty
88
+
89
+ \newif\ifUMO@nospace \newif\ifUMO@firstelem
90
+
91
+ %%^L
92
+
93
+ %% User Interface and Initialization
94
+
95
+ \def\Underline{\UMO@line\UnderlineDepth{-\UnderlineDepth}{-\dp\strutbox}}
96
+ \def\Midline{\setbox\@tempboxa\hbox{あ}%
97
+ \UMO@line\MidlineHeight\MidlineHeight{.5\ht\@tempboxa}}
98
+ \def\Overline{\UMO@line\OverlineHeight\OverlineHeight{\ht\strutbox}}
99
+ \def\UMOline{\UMO@line{-\maxdimen}\z@}
100
+
101
+ \def\UMO@line#1#2#3#4{\begingroup \let\\\UMOnewline
102
+ \relax\ifdim#1<\z@ \UMO@height#3\relax
103
+ \else \UMO@height#2\relax \fi
104
+ \UMO@depth-\UMO@height
105
+ \ifdim\UMO@height<\z@ \advance\UMO@depth\UMOlineThickness
106
+ \else \advance\UMO@height\UMOlineThickness \fi
107
+ \settowidth\UMO@dqspace{“}\advance\UMO@dqspace-1zw
108
+ \UMO@dqspace-\UMO@dqspace \divide\UMO@dqspace\tw@
109
+ \UMO@nospacetrue \UMO@firstelemtrue
110
+ \UMO@mode\UMO@afterblock
111
+ \ifvmode\leavevmode\fi
112
+ \def\@tempa{#4 }\edef\@tempb{\noexpand\@nil\space}%
113
+ \expandafter\expandafter\expandafter\UMO@wordloop
114
+ \expandafter\@tempa\@tempb
115
+ \endgroup \UMO@aftergroup}
116
+
117
+ %%^L
118
+
119
+ %% Processing Word Elements
120
+
121
+ \def\UMO@wordloop{\UMO@ifbgroup\UMO@wordblock\UMO@iwordloop}
122
+ \def\UMO@ifbgroup#1#2{\let\@tempa#1\let\@tempb#2\futurelet\@tempc\UMO@ifnc}
123
+ \def\UMO@ifnc{\ifx\@tempc\bgroup \let\next\@tempa \else\let\next\@tempb \fi
124
+ \next}
125
+ \def\UMO@wordblock#1{\UMO@spaceskip
126
+ \UMO@putbox\relax{#1}\UMO@nospacetrue \UMO@mode\UMO@afterblock
127
+ \UMO@spacefactor\@m \UMO@wordloop}
128
+ \def\UMO@iwordloop#1 {\def\@tempa{#1}\ifx\@tempa\@nnil \let\next\UMO@end
129
+ \else
130
+ \ifx\@tempa\empty \UMO@nospacefalse
131
+ \else
132
+ \UMO@spaceskip \UMO@mode\UMO@afterblock
133
+ \def\UMO@theword{}\UMO@firstxspcode\m@ne
134
+ \UMO@charloop#1\@nil \fi
135
+ \let\next\UMO@wordloop \fi
136
+ \next}
137
+
138
+ %%^L
139
+
140
+ %% Interword Spacing
141
+
142
+ \def\UMO@spaceskip{\ifUMO@nospace \UMO@nospacefalse \else
143
+ \ifdim\spaceskip=\z@
144
+ \@tempdima\fontdimen3\font\relax
145
+ \multiply\@tempdima\UMO@spacefactor \divide\@tempdima\@m
146
+ \@tempdimb\fontdimen4\font\relax \multiply\@tempdimb\@m
147
+ \divide\@tempdimb\UMO@spacefactor
148
+ \@tempskipa\fontdimen2\font plus\@tempdima minus\@tempdimb\relax
149
+ \else
150
+ \edef\@tempa{\the\spaceskip\space @ @ @ @ }%
151
+ \expandafter\UMO@setspaceskip\@tempa\@nil
152
+ \fi
153
+ \ifnum\UMO@spacefactor<2000\else
154
+ \ifdim\xspaceskip=\z@ \advance\@tempskipa\fontdimen7\font
155
+ \else \@tempskipa\xspaceskip
156
+ \fi\fi
157
+ \UMO@skip\@tempskipa \fi}
158
+ \def\UMO@setspaceskip#1 #2 #3 #4 #5 #6\@nil{\@tempdima\z@ \@tempdimb\z@
159
+ \def\@tempa{#2}\def\@tempb{#3}%
160
+ \ifx\@tempa\UMO@plus \@tempdima#3\def\@tempa{#4}\def\@tempb{#5}\fi
161
+ \ifx\@tempa\UMO@minus \@tempdimb\@tempb\relax\fi
162
+ \multiply\@tempdima\UMO@specefactor \divide\@tempdima\@m
163
+ \multiply\@tempdimb\@m \divide\UMO@spacefactor
164
+ \@tempskipa#1 plus\@tempdima minus\@tempdimb\relax}
165
+ \def\@tempa#1 #2 #3 #4 #5\@nil{\def\UMO@plus{#2}\def\UMO@minus{#4}}
166
+ \@tempskipa1pt plus 2pt minus 3pt
167
+ \expandafter\@tempa\the\@tempskipa\@nil
168
+
169
+ %%^L
170
+
171
+ %% Processing Characters
172
+
173
+ \def\UMO@charloop{\UMO@ifbgroup\UMO@charblock\UMO@icharloop}
174
+ \def\UMO@charblock#1{\UMO@putword
175
+ \UMO@putbox\relax{#1}\UMO@mode\UMO@afterblock \UMO@spacefactor\@m
176
+ \UMO@charloop}
177
+ \def\UMO@icharloop#1{\def\@tempa{#1}%
178
+ \ifx\@tempa\@nnil \UMO@putword \let\next\relax
179
+ \else\ifx\UMOspace#1\relax \UMO@putword \let\next\UMO@space
180
+ \else\ifx\UMOnewline#1\relax \UMO@putword \let\next\UMO@newline
181
+ \else
182
+ \ifnum`#1<256\relax \edef\UMO@theword{\UMO@theword#1}%
183
+ \ifnum\UMO@firstxspcode<\z@
184
+ \UMO@firstxspcode\xspcode`#1\relax
185
+ \UMO@prebreakpenalty\prebreakpenalty`#1\relax
186
+ \fi
187
+ \UMO@lastxspcode\xspcode`#1\relax
188
+ \UMO@postbreakpenalty\postbreakpenalty`#1\relax
189
+ \else \UMO@putword \UMO@putchar{#1}\UMO@spacefactor\@m\fi
190
+ \let\next\UMO@charloop \fi\fi\fi \next}
191
+ \def\UMOspace{\PackageError{jumoline}%
192
+ {\string\UMOspace\space cannot be used here.}%
193
+ {\string\UMOspace\space can be used only in the argument of
194
+ \string\Underline\space and its relatives.}}
195
+ \def\UMOnewline{\PackageError{jumoline}%
196
+ {\string\UMOnewline\space cannot be used here.}%
197
+ {\string\UMOnewline\space can be used only in the argument of
198
+ \string\Underline\space and its relatives.}}
199
+
200
+ %%^L
201
+
202
+ %% Put ASCII String
203
+
204
+ \def\UMO@putword{\ifx\UMO@theword\empty\else
205
+ \ifnum\UMO@mode=\UMO@afterchar
206
+ \advance\UMO@kpostbreakpenalty\UMO@prebreakpenalty
207
+ \penalty\UMO@kpostbreakpenalty
208
+ \ifdim\UMO@postjfmglue>\z@ \UMO@skip\UMO@postjfmglue
209
+ \else\ifodd\UMO@inhibitxspcode \ifodd\UMO@firstxspcode
210
+ \UMO@skip\xkanjiskip \fi\fi\fi\fi
211
+ \setbox\@tempboxa\hbox{%
212
+ \UMO@theword\global\UMO@spacefactor\spacefactor}%
213
+ \UMO@putbox\relax\UMO@theword \UMO@mode\UMO@afterword
214
+ \def\UMO@theword{}\fi \UMO@firstxspcode\m@ne}
215
+
216
+ %%^L
217
+
218
+ %% Put Kanji Letter
219
+
220
+ \def\UMO@putchar#1{%
221
+ \ifnum\UMO@mode=\UMO@afterchar \UMO@prejfmglue\UMO@postjfmglue
222
+ \else \UMO@prejfmglue\z@ \fi
223
+ \UMO@postjfmglue\z@
224
+ \ifnum`#1<\kuten"1001\relax\UMO@setjfmglue{#1}\fi
225
+ \@tempskipa\UMO@prejfmglue
226
+ \UMO@inhibitxspcode\inhibitxspcode`#1\relax
227
+ \@tempcnta\prebreakpenalty`#1\relax
228
+ \ifnum\UMO@mode=\UMO@afterchar
229
+ \advance\@tempcnta\UMO@kpostbreakpenalty
230
+ \ifdim\UMO@prejfmglue=\z@ \@tempskipa\kanjiskip \fi
231
+ \else\ifnum\UMO@mode=\UMO@afterword
232
+ \advance\@tempcnta\UMO@postbreakpenalty
233
+ \ifdim\UMO@prejfmglue=\z@
234
+ \ifnum\UMO@lastxspcode>\@ne \ifnum\UMO@inhibitxspcode>\@ne
235
+ \@tempskipa\xkanjiskip \fi\fi\fi\fi\fi
236
+ \penalty\@tempcnta
237
+ \edef\@tempa{\the\@tempskipa}\ifx\@tempa\UMO@zskip\else
238
+ \UMO@skip\@tempskipa \fi
239
+ \UMO@putbox\inhibitglue{#1}%
240
+ \UMO@kpostbreakpenalty\postbreakpenalty`#1\relax
241
+ \UMO@mode\UMO@afterchar}
242
+ \@tempskipa\z@
243
+ \edef\UMO@zskip{\the\@tempskipa}
244
+ \def\UMO@setjfmglue#1{%
245
+ \settowidth\@tempdima{あ#1}\settowidth\@tempdimb{あ\inhibitglue#1}%
246
+ \advance\@tempdima-\@tempdimb
247
+ \settowidth\UMO@tempdim{#1あ}\settowidth\@tempdimb{#1\inhibitglue あ}%
248
+ \advance\UMO@tempdim-\@tempdimb
249
+ \ifdim\@tempdima>\z@
250
+ \ifdim\UMO@tempdim>\z@
251
+ \@tempskipa\@tempdima minus\@tempdima\relax
252
+ \UMO@postjfmglue\UMO@tempdim minus\UMO@tempdim\relax
253
+ \else \@tempskipa\@tempdima minus\UMO@dqspace\relax \fi
254
+ \advance\UMO@prejfmglue\@tempskipa
255
+ \else \UMO@postjfmglue\UMO@tempdim minus\UMO@dqspace \fi}
256
+
257
+ %%^L
258
+
259
+ %% Draw Under/Mid/Overline
260
+
261
+ \def\UMO@putbox#1#2{\setbox\@tempboxa\hbox{#1#2#1}\@tempdima\wd\@tempboxa
262
+ \ifUMO@firstelem\else
263
+ \rlap{\vrule\@height\UMO@height\@depth\UMO@depth\@width\@tempdima}\fi
264
+ \box\@tempboxa
265
+ \ifUMO@firstelem \UMO@firstelemfalse
266
+ \llap{\vrule\@height\UMO@height\@depth\UMO@depth\@width\@tempdima}\fi}
267
+ \def\UMO@skip#1{%
268
+ \leaders\hrule\@height\UMO@height\@depth\UMO@depth\hskip#1\relax}
269
+
270
+ %%^L
271
+
272
+ %% Explicit Spacing and Line Breaking
273
+
274
+ \def\UMO@space{\UMO@mode\UMO@afterblock
275
+ \@ifstar\UMO@sspace\UMO@ispace}
276
+ \def\UMO@sspace#1{\vrule width\z@\nobreak\UMO@skip{#1}\UMO@charloop}
277
+ \def\UMO@ispace#1{\@tempskipa#1\relax
278
+ \@ifstar{\@tempswafalse\UMO@iispace}{\@tempswatrue\UMO@iispace}}
279
+ \def\UMO@iispace{\@ifnextchar[%]
280
+ {\UMO@penalty}%
281
+ {\UMO@skip\@tempskipa \UMO@charloop}}
282
+ \def\UMO@penalty[#1]{\@tempcnta#1\relax
283
+ \if@tempswa
284
+ \ifnum\@tempcnta<\z@ \@tempcnta-\@tempcnta \fi
285
+ \ifcase\@tempcnta \or
286
+ \@tempcnta\@lowpenalty \or
287
+ \@tempcnta\@medpenalty \or
288
+ \@tempcnta\@highpenalty \else
289
+ \@tempcnta\@M \fi
290
+ \ifnum#1<\z@ \@tempcnta-\@tempcnta \fi \fi
291
+ \penalty\@tempcnta \UMO@skip\@tempskipa \UMO@charloop}
292
+
293
+ \def\UMO@newline{\UMO@mode\UMO@afterblock
294
+ \@ifstar{\UMO@skip{0pt plus1fil}\break \UMO@charloop}%
295
+ {\hfil \break \UMO@charloop}}
296
+
297
+ %%^L
298
+
299
+ %% Finalization
300
+
301
+ \def\UMO@end{\ifnum\UMO@mode=\UMO@afterchar
302
+ \ifnum\UMO@kpostbreakpenalty>\z@
303
+ \penalty\UMO@kpostbreakpenalty \fi
304
+ \ifdim\UMO@postjfmglue>\z@
305
+ \UMO@skip\UMO@postjfmglue\fi \fi
306
+ \xdef\UMO@aftergroup{\ifnum\UMO@mode=\UMO@afterword
307
+ \spacefactor\number\UMO@spacefactor\fi}}
308
+ \endinput
309
+ %%
310
+ %% End of file `jumoline.sty'.
@@ -0,0 +1,326 @@
1
+ %
2
+ % plistings.sty
3
+ %
4
+ % lltjp-listings.sty ベース,コード未整理
5
+
6
+ \NeedsTeXFormat{LaTeX2e}
7
+ \ProvidesPackage{plistings}[2015/12/07 v0.10 Japanese support of listings package]
8
+
9
+ %%%%%%%% Package options
10
+ \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{listings}}
11
+ \ProcessOptions\relax
12
+ \RequirePackage{listings,etoolbox}
13
+
14
+ %%%%%%%% Japanese support
15
+ %% whether letter-space in a fixed mode box is doubled or not
16
+ \newif\if@ltj@lst@double
17
+ \lst@Key{doubleletterspace}f[t]{\lstKV@SetIf{#1}\if@ltj@lst@double}
18
+
19
+ % override \lst@FillFixed@
20
+ \def\lst@FillFixed@#1{%
21
+ \ifx\@empty#1\else\ltj@lst@hss#1\expandafter\lst@FillFixed@\fi}
22
+ \def\ltj@lst@hss@double{\lst@hss\lst@hss}
23
+
24
+ % 最下層の処理
25
+ \newif\if@ltj@lst@kanji
26
+ \lst@AddToHook{InitVars}{\@ltj@lst@kanjifalse}
27
+
28
+ \def\lst@AppendLetter{%
29
+ \ltj@lst@setletterflag\lst@Append}
30
+ \def\lst@AppendOther{%
31
+ \lst@ifletter\lst@Output\lst@letterfalse\fi\@ltj@lst@kanjifalse
32
+ \futurelet\lst@lastother\lst@Append}
33
+
34
+ \def\ltj@lst@setletterflag{%
35
+ \lst@ifletter
36
+ \if@ltj@lst@kanji\lst@Output\@ltj@lst@kanjifalse\fi
37
+ \else
38
+ \lst@lettertrue\if@ltj@lst@kanji\@ltj@lst@kanjifalse\else\lst@OutputOther\fi
39
+ \fi}
40
+
41
+ \def\ltj@lst@setkanjiflag{%
42
+ \lst@ifletter
43
+ \lst@Output
44
+ \else
45
+ \if@ltj@lst@kanji\else\lst@OutputOther\fi\lst@lettertrue
46
+ \fi\@ltj@lst@kanjitrue}
47
+
48
+ \def\ltj@lst@setopenflag{%
49
+ \lst@ifletter
50
+ \lst@letterfalse\lst@Output
51
+ \else
52
+ \if@ltj@lst@kanji\else\lst@OutputOther\fi
53
+ \fi\@ltj@lst@kanjitrue}
54
+
55
+ \def\ltj@lst@setcloseflag{%
56
+ \lst@ifletter\else\lst@lettertrue\fi\@ltj@lst@kanjitrue}
57
+
58
+ %%%% 和文文字の出力命令.
59
+ %%%% 和文文字の前にこれが前置されることになる.
60
+ \def\ltj@lst@ProcessJALetter#1{%
61
+ \lst@whitespacefalse
62
+ \ifnum`#1>255
63
+ \ifnum\postbreakpenalty`#1>0
64
+ \ltj@lst@setopenflag % 開き括弧類
65
+ \else
66
+ \ifnum\prebreakpenalty`#1>0
67
+ \ltj@lst@setcloseflag % 閉じ括弧類,句読点
68
+ \else
69
+ \ltj@lst@setkanjiflag % 通常の和文文字
70
+ \fi\fi
71
+ \advance\lst@length\@ne % 和文文字は通常の2倍の幅
72
+ \else
73
+ \ltj@lst@setletterflag
74
+ \fi
75
+ \lst@Append#1}
76
+
77
+
78
+ %%%% \lst@InsideConvert の処理内容変更
79
+ %%%% active 文字化に加え,^^@ を和文文字の前に前置
80
+ \def\ltj@lst@MakeActive#1{%
81
+ \let\lst@temp\@empty \ltj@lst@MakeActive@#1\relax}
82
+ \begingroup
83
+ \catcode`\^^A=\active
84
+ \catcode`\^^@=\active
85
+ \lowercase{%
86
+ \gdef\ltj@lst@MakeActive@#1{\let\lst@next\relax%
87
+ \ifx#1\relax
88
+ \else\let\lst@next\ltj@lst@MakeActive@
89
+ \ifnum`#1>255
90
+ \lst@lAddTo\lst@temp{^^@#1}%
91
+ \else
92
+ \lccode`\^^A=`#1
93
+ \lowercase{\lst@lAddTo\lst@temp{^^A}}%
94
+ \fi\fi\lst@next}}
95
+ \endgroup
96
+ \begingroup \lccode`\~=`\ \relax \lowercase{%
97
+ \gdef\lst@InsideConvert@#1 #2{%
98
+ \ltj@lst@MakeActive{#1}%
99
+ \ifx\@empty#2%
100
+ \lst@lExtend\lst@arg{\lst@temp}%
101
+ \else
102
+ \lst@lExtend\lst@arg{\lst@temp~}%
103
+ \expandafter\lst@InsideConvert@
104
+ \fi #2}
105
+ }\endgroup
106
+
107
+
108
+ %%%%%%%% \lstinline の再定義.
109
+ %%%% 引数を全部読み込み,\lst@InsideConvert で変換
110
+ \renewcommand\lstinline[1][]{%
111
+ \leavevmode\bgroup % \hbox\bgroup --> \bgroup
112
+ \def\lst@boxpos{b}%
113
+ \lsthk@PreSet\lstset{flexiblecolumns,#1}%
114
+ \lsthk@TextStyle
115
+ \@ifnextchar\bgroup \ltj@lst@InlineG \ltj@lstinline@}
116
+ \def\ltj@lstinline@#1{%
117
+ \edef\ltj@lst@temp{\the\catcode`#1}\lst@Init\relax\catcode`#1\ltj@lst@temp
118
+ \lst@Def{13}{\lst@DeInit\egroup \global\let\lst@inlinechars\@empty
119
+ \PackageError{Listings}{lstinline ended by EOL}\@ehc}%
120
+ \lst@InlineJ#1}
121
+ \def\ltj@lst@InlineG{%
122
+ \lst@Init\relax\edef\ltj@lst@temp{\the\catcode`\}}%
123
+ \catcode`\}=2 \catcode`\ =12\relax
124
+ \lst@Def{13}{\lst@DeInit\egroup \global\let\lst@inlinechars\@empty
125
+ \PackageError{Listings}{lstinline ended by EOL}\@ehc}%
126
+ \let\lst@arg\@empty\afterassignment\ltj@lst@InlineG@@\@temptokena}
127
+ \def\ltj@lst@InlineG@@{%
128
+ \catcode`\}=\ltj@lst@temp
129
+ \expandafter\expandafter\expandafter\lst@InsideConvert%
130
+ \expandafter{\the\@temptokena}\lst@arg\lst@DeInit\egroup}
131
+
132
+ %%%%%%%% \lstenv@process の再定義
133
+ %%%% 基本的にはインライン時と同様に全トークンを読み込み→\lst@InsideConvert で変換
134
+ %%%% その後,変換した中身は \scantokens で読み込み直される
135
+ \begingroup \lccode`\~=`\^^M\lowercase{%
136
+ \gdef\lstenv@Process#1{%
137
+ \ifx~#1%
138
+ \lstenv@DroppedWarning \let\lst@next\ltj@lstenv@ProcessM
139
+ \else\ifx^^J#1%
140
+ \lstenv@DroppedWarning \let\lst@next\lstenv@ProcessJ
141
+ \else
142
+ \let\lst@dropped#1\let\lst@next\lstenv@Process
143
+ \fi \fi
144
+ \lst@next}
145
+ }\endgroup
146
+ \begingroup\lccode`\[=`\{\lccode`\]=`\}\lccode`|=`\\\lowercase{%
147
+ \gdef\ltj@lstenv@ProcessM{%
148
+ \let\lst@arg\@empty
149
+ \edef\lst@temp{|end[\lstenv@name]}%
150
+ \expandafter\expandafter\expandafter\lst@InsideConvert%
151
+ \expandafter{\lst@temp}%
152
+ \@temptokena{%
153
+ \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
154
+ \lst@SkipToFirst\expandafter\expandafter\expandafter\scantokens\expandafter{\lst@arg}%
155
+ }
156
+ \expandafter\expandafter\expandafter\toks@\expandafter{\lst@arg}
157
+ \expandafter\edef\expandafter\lst@temp\expandafter##\expandafter1\lst@arg
158
+ {%
159
+ \noexpand\let\noexpand\lst@arg\noexpand\@empty%
160
+ \noexpand\lst@InsideConvert{\noexpand##1}
161
+ \the\@temptokena\the\toks@
162
+ }%
163
+ \lst@temp}
164
+ }\endgroup
165
+
166
+ \def\lst@BeginDropInput#1{%
167
+ \lst@EnterMode{#1}%
168
+ {\lst@modetrue
169
+ \let\lst@OutputBox\@gobble
170
+ \let\lst@ifdropinput\iftrue
171
+ \let\lst@ProcessLetter\@gobble
172
+ \let\lst@ProcessDigit\@gobble
173
+ \let\lst@ProcessOther\@gobble
174
+ \let\lst@ProcessSpace\@empty
175
+ \let\lst@ProcessTabulator\@empty
176
+ \let\lst@ProcessFormFeed\@empty
177
+ \let\ltj@lst@ProcessJALetter\@gobble % added
178
+ }}
179
+
180
+
181
+ %%%% ^^@ を active 文字化 (\ltj@lst@ProcessJALetter)
182
+ \begingroup\catcode`\^^@=\active
183
+ \lst@AddTo\lst@SelectStdCharTable{\def^^@{\ltj@lst@ProcessJALetter}}
184
+ \endgroup
185
+ \lst@AddToHook{InitVars}{%
186
+ \catcode`\^^@=\active
187
+ \if@ltj@lst@double
188
+ \let\ltj@lst@hss=\ltj@lst@hss@double
189
+ \else
190
+ \let\ltj@lst@hss=\lst@hss
191
+ \fi
192
+ }
193
+
194
+ %%%% 白線対策のため,\lineskiplimit を負の値にする
195
+ \newif\ifltj@lst@frame@top
196
+ \newdimen\ltj@lst@frame@lslimit
197
+ \gdef\lst@frameInit{%
198
+ \ltj@lst@frame@toptrue
199
+ \ifx\lst@framelshape\@empty \let\lst@frameL\@empty \fi
200
+ \ifx\lst@framershape\@empty \let\lst@frameR\@empty \fi
201
+ \def\lst@framevrule{\vrule\@width\lst@framerulewidth\relax}%
202
+ \lst@ifframeround
203
+ \lst@frameCalcDimA\z@ \@getcirc\@tempdima
204
+ \@tempdimb\@tempdima \divide\@tempdimb\tw@
205
+ \advance\@tempdimb -\@wholewidth
206
+ \edef\lst@frametextsep{\the\@tempdimb}%
207
+ \edef\lst@framerulewidth{\the\@wholewidth}%
208
+ \lst@frameCalcDimA\@ne \@getcirc\@tempdima
209
+ \@tempdimb\@tempdima \divide\@tempdimb\tw@
210
+ \advance\@tempdimb -\tw@\@wholewidth
211
+ \advance\@tempdimb -\lst@frametextsep
212
+ \edef\lst@rulesep{\the\@tempdimb}%
213
+ \fi
214
+ \lst@frameMakeBoxV\lst@framebox{\ht\strutbox}{\dp\strutbox}%
215
+ %%%% ここから
216
+ \@tempdima\z@
217
+ \ifdim\ht\strutbox<\cht\@tempdima=\dimexpr\cht-\ht\strutbox\relax\fi
218
+ \ifdim\dp\strutbox<\cdp\advance\@tempdima=\dimexpr\cdp-\dp\strutbox\relax\fi
219
+ \ltj@lst@frame@lslimit=-\@tempdima
220
+ \def\lst@framelr{%
221
+ \ifltj@lst@frame@top\ltj@lst@frame@topfalse\else\lineskiplimit\ltj@lst@frame@lslimit\fi
222
+ \copy\lst@framebox}%
223
+ %%%% ここまで
224
+ \ifx\lst@frametshape\@empty\else
225
+ \lst@frameH T\lst@frametshape
226
+ \ifvoid\z@\else
227
+ \par\lst@parshape
228
+ \@tempdima-\baselineskip \advance\@tempdima\ht\z@
229
+ \ifdim\prevdepth<\@cclvi\p@\else
230
+ \advance\@tempdima\prevdepth
231
+ \fi
232
+ \ifdim\@tempdima<\z@
233
+ \vskip\@tempdima\vskip\lineskip
234
+ \fi
235
+ \noindent\box\z@\par
236
+ \lineskiplimit\maxdimen \lineskip\z@
237
+ \fi
238
+ \lst@frameSpreadV\lst@framextopmargin
239
+ \fi}
240
+
241
+ % lstinputlisting
242
+ % modified from jlisting.sty
243
+ \def\lst@InputListing#1{%
244
+ \begingroup
245
+ \lsthk@PreSet \gdef\lst@intname{#1}%
246
+ \expandafter\lstset\expandafter{\lst@set}%
247
+ \lsthk@DisplayStyle
248
+ \catcode\active=\active
249
+ \lst@Init\relax \let\lst@gobble\z@
250
+ \lst@SkipToFirst
251
+ \lst@ifprint \def\lst@next{\lst@get@filecontents{#1}}%
252
+ \else \let\lst@next\@empty
253
+ \fi
254
+ \lst@next
255
+ \lst@DeInit
256
+ \endgroup}
257
+ \newread\lst@inputfile
258
+ \def\lst@get@filecontents#1{%
259
+ \let\lst@filecontents\@empty
260
+ \openin\lst@inputfile=#1\relax
261
+ \let\@lst@get@filecontents@prevline\relax
262
+ \lst@get@filecontents@loop
263
+ \closein\lst@inputfile
264
+ \lst@filecontents\empty}
265
+ \def\lst@get@filecontents@loop{%
266
+ \read\lst@inputfile to\lst@temp
267
+ \let\lst@arg\@empty\expandafter\expandafter\expandafter\lst@InsideConvert\expandafter{\lst@temp}%
268
+ \ifx\@lst@get@filecontents@prevline\relax\else
269
+ \expandafter\expandafter\expandafter\def
270
+ \expandafter\expandafter\expandafter\lst@filecontents
271
+ \expandafter\expandafter\expandafter{%
272
+ \expandafter\lst@filecontents\@lst@get@filecontents@prevline}%
273
+ \fi
274
+ \let\@lst@get@filecontents@prevline\lst@arg
275
+ \ifeof\lst@inputfile\else
276
+ \expandafter\lst@get@filecontents@loop
277
+ \fi}
278
+
279
+ %%%%%%%% escape to \LaTeX
280
+ %%%% 一旦中身を全部取得した後で,^^@ ( = \ltj@lst@ProcessJALetter) を
281
+ %%%% トークン列から削除,その後 \scantokens で再読み込み
282
+ \lstloadaspects{escape}
283
+ \gdef\lst@Escape#1#2#3#4{%
284
+ \lst@CArgX #1\relax\lst@CDefX
285
+ {}%
286
+ {\lst@ifdropinput\else
287
+ \lst@TrackNewLines\lst@OutputLostSpace \lst@XPrintToken
288
+ \lst@InterruptModes
289
+ \lst@EnterMode{\lst@TeXmode}{\lst@modetrue}%
290
+ \ifx\^^M#2%
291
+ \lst@CArg #2\relax\lst@ActiveCDefX
292
+ {}%
293
+ {\lst@escapeend #4\lst@LeaveAllModes\lst@ReenterModes}%
294
+ {\ltj@lst@MProcessListing}%
295
+ \else
296
+ \lst@CArg #2\relax\lst@ActiveCDefX
297
+ {}%
298
+ {\lst@escapeend #4\lst@LeaveAllModes\lst@ReenterModes
299
+ \lst@newlines\z@ \lst@whitespacefalse}%
300
+ {}%
301
+ \fi%
302
+ \ltj@lst@escape@setup#2
303
+ #3\lst@escapebegin\expandafter\lst@next%
304
+ \fi}%
305
+ {}}
306
+ \def\ltj@lst@escape@setup#1{%
307
+ \begingroup\lccode`\~=`#1\lowercase{%
308
+ \gdef\lst@next##1~{%
309
+ \let\lst@arg\@empty\ltj@lst@remove@jacmd{##1}%
310
+ \expandafter\expandafter\expandafter\scantokens\expandafter{\lst@arg}%
311
+ ~}%
312
+ }\endgroup
313
+ }
314
+
315
+ \begingroup
316
+ \catcode`\^^@=12 %
317
+ \gdef\ltj@lst@remove@jacmd#1{%
318
+ \expandafter\ltj@lst@remove@jacmd@\detokenize{#1}^^@\@nil^^@}
319
+ \gdef\ltj@lst@remove@jacmd@#1^^@{%
320
+ \ifx#1\@nil\else
321
+ \lst@lAddTo\lst@arg{#1}%
322
+ \expandafter\ltj@lst@remove@jacmd@
323
+ \fi}
324
+ \endgroup
325
+
326
+ \endinput