review 2.5.0 → 3.0.0.preview1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +28 -10
- data/.travis.yml +11 -2
- data/NEWS.ja.md +89 -17
- data/NEWS.md +92 -0
- data/README.md +1 -1
- data/Rakefile +0 -13
- data/bin/review-catalog-converter +83 -37
- data/bin/review-check +17 -5
- data/bin/review-compile +1 -1
- data/bin/review-index +6 -0
- data/bin/review-init +3 -155
- data/bin/review-preproc +0 -5
- data/bin/review-validate +21 -7
- data/bin/review-vol +13 -5
- data/doc/config.yml.sample +12 -7
- data/doc/config.yml.sample-simple +1 -1
- data/doc/format.ja.md +39 -3
- data/doc/format.md +39 -3
- data/doc/format_idg.ja.md +0 -4
- data/doc/pdfmaker.ja.md +1 -1
- data/doc/pdfmaker.md +1 -1
- data/doc/sample.css +7 -0
- data/lib/epubmaker/content.rb +31 -12
- data/lib/epubmaker/epubcommon.rb +10 -3
- data/lib/epubmaker/epubv2.rb +11 -3
- data/lib/epubmaker/epubv3.rb +11 -3
- data/lib/epubmaker/producer.rb +55 -20
- data/lib/review/book/base.rb +63 -48
- data/lib/review/book/chapter.rb +19 -7
- data/lib/review/book/compilable.rb +5 -20
- data/lib/review/book/image_finder.rb +10 -3
- data/lib/review/book/index.rb +30 -9
- data/lib/review/book/part.rb +9 -6
- data/lib/review/book.rb +0 -14
- data/lib/review/builder.rb +110 -18
- data/lib/review/catalog.rb +24 -4
- data/lib/review/compiler.rb +3 -1
- data/lib/review/configure.rb +43 -9
- data/lib/review/epubmaker/reviewheaderlistener.rb +57 -0
- data/lib/review/epubmaker.rb +129 -85
- data/lib/review/htmlbuilder.rb +76 -58
- data/lib/review/htmlutils.rb +20 -13
- data/lib/review/i18n.rb +6 -2
- data/lib/review/idgxmlbuilder.rb +52 -41
- data/lib/review/init.rb +194 -0
- data/lib/review/latexbuilder.rb +118 -34
- data/lib/review/latexutils.rb +5 -5
- data/lib/review/logger.rb +2 -1
- data/lib/review/makerhelper.rb +1 -1
- data/lib/review/markdownbuilder.rb +66 -6
- data/lib/review/md2inaobuilder.rb +2 -2
- data/lib/review/pdfmaker.rb +74 -22
- data/lib/review/plaintextbuilder.rb +8 -4
- data/lib/review/preprocessor.rb +14 -17
- data/lib/review/sec_counter.rb +8 -2
- data/lib/review/textmaker.rb +2 -2
- data/lib/review/textutils.rb +9 -2
- data/lib/review/tocparser.rb +7 -4
- data/lib/review/tocprinter.rb +3 -1
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +19 -7
- data/lib/review/webtocprinter.rb +8 -4
- data/review.gemspec +4 -3
- data/templates/latex/config.erb +84 -0
- data/templates/latex/layout.tex.erb +76 -361
- data/templates/latex/review-jlreq/README.md +22 -0
- data/templates/latex/review-jlreq/review-base.sty +178 -0
- data/templates/latex/review-jlreq/review-custom.sty +1 -0
- data/templates/latex/review-jlreq/review-jlreq.cls +141 -0
- data/templates/latex/review-jlreq/review-style.sty +149 -0
- data/templates/latex/review-jlreq/reviewmacro.sty +8 -0
- data/templates/latex/review-jsbook/jumoline.sty +310 -0
- data/templates/latex/review-jsbook/plistings.sty +326 -0
- data/templates/latex/review-jsbook/review-base.sty +405 -0
- data/templates/latex/review-jsbook/review-custom.sty +1 -0
- data/templates/latex/review-jsbook/review-style.sty +38 -0
- data/templates/latex/review-jsbook/reviewmacro.sty +8 -0
- data/templates/latex-compat2/layout.tex.erb +387 -0
- data/test/assets/test_template.tex +105 -235
- data/test/assets/test_template_backmatter.tex +133 -14
- data/test/book_test_helper.rb +1 -1
- data/test/run_test.rb +2 -0
- data/test/sample-book/src/Rakefile +11 -6
- data/test/sample-book/src/config.yml +2 -2
- data/test/sample-book/src/sty/reviewmacro.sty +1 -39
- data/test/sample-book/src/style.css +6 -0
- data/test/syntax-book/config.yml +1 -1
- data/test/test_book.rb +13 -16
- data/test/test_book_chapter.rb +4 -10
- data/test/test_book_part.rb +4 -3
- data/test/test_catalog.rb +15 -4
- data/test/test_helper.rb +2 -2
- data/test/test_htmlbuilder.rb +78 -10
- data/test/test_htmlutils.rb +12 -5
- data/test/test_idgxmlbuilder.rb +1 -1
- data/test/test_latexbuilder.rb +94 -49
- data/test/test_latexbuilder_v2.rb +1077 -0
- data/test/test_logger.rb +20 -0
- data/test/test_markdownbuilder.rb +10 -0
- data/test/test_pdfmaker.rb +6 -7
- data/test/test_plaintextbuilder.rb +1 -1
- data/test/test_review_ext.rb +0 -1
- data/test/test_rstbuilder.rb +1 -1
- data/test/test_topbuilder.rb +19 -7
- data/test/test_webtocprinter.rb +14 -14
- data/{test/sample-book/src/vendor → vendor}/jumoline/README +0 -0
- data/{test/sample-book/src/vendor → vendor}/jumoline/jumoline.dtx +0 -0
- data/{test/sample-book/src/vendor → vendor}/jumoline/jumoline.ins +0 -0
- data/{test/sample-book/src/vendor → vendor}/jumoline/lppl.txt +0 -0
- data/vendor/plistings/.gitignore +9 -0
- data/vendor/plistings/LICENSE +21 -0
- data/vendor/plistings/README.md +18 -0
- data/vendor/plistings/plistings.sty +326 -0
- data/vendor/plistings/test1.tex +174 -0
- data/vendor/plistings/test2.tex +54 -0
- metadata +48 -19
- data/lib/review/unfold.rb +0 -129
- data/test/CHAPS +0 -2
- data/test/bib.re +0 -13
- data/test/test.re +0 -43
@@ -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
|