review-retrovert 0.2.2 → 0.9.1
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.
- checksums.yaml +4 -4
- data/.github/workflows/retrovert.yml +39 -0
- data/.gitignore +2 -2
- data/.ruby-version +1 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +68 -2
- data/README.md +6 -3
- data/lib/review/retrovert/cli.rb +2 -0
- data/lib/review/retrovert/converter.rb +255 -16
- data/lib/review/retrovert/version.rb +1 -1
- data/review-retrovert.gemspec +1 -1
- data/testdata/mybook/.gitignore +7 -0
- data/testdata/mybook/README.md +43 -0
- data/testdata/mybook/Rakefile +16 -0
- data/testdata/mybook/catalog.yml +33 -0
- data/testdata/mybook/config-starter.yml +139 -0
- data/testdata/mybook/config.yml +375 -0
- data/testdata/mybook/contents/00-preface.re +83 -0
- data/testdata/mybook/contents/01-install.re +272 -0
- data/testdata/mybook/contents/02-tutorial.re +1008 -0
- data/testdata/mybook/contents/03-syntax.re +2613 -0
- data/testdata/mybook/contents/04-customize.re +728 -0
- data/testdata/mybook/contents/05-faq.re +328 -0
- data/testdata/mybook/contents/06-bestpractice.re +971 -0
- data/testdata/mybook/contents/91-compare.re +18 -0
- data/testdata/mybook/contents/92-filelist.re +119 -0
- data/testdata/mybook/contents/93-background.re +267 -0
- data/testdata/mybook/contents/99-postface.re +38 -0
- data/testdata/mybook/css/normalize.css +349 -0
- data/testdata/mybook/css/webstyle.css +514 -0
- data/testdata/mybook/images/03-syntax/favicon-16x16.png +0 -0
- data/testdata/mybook/images/03-syntax/figure_heretop.png +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon1.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon2.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon3.jpg +0 -0
- data/testdata/mybook/images/03-syntax/tw-icon4.jpg +0 -0
- data/testdata/mybook/images/04-customize/caption_pagebreak.png +0 -0
- data/testdata/mybook/images/04-customize/chaptitlepage_sample.png +0 -0
- data/testdata/mybook/images/05-faq/codeblock_rpadding1.png +0 -0
- data/testdata/mybook/images/05-faq/codeblock_rpadding2.png +0 -0
- data/testdata/mybook/images/06-bestpractice/figure_heretop.png +0 -0
- data/testdata/mybook/images/06-bestpractice/font_beramono.png +0 -0
- data/testdata/mybook/images/06-bestpractice/heading_design1.png +0 -0
- data/testdata/mybook/images/06-bestpractice/heading_design2.png +0 -0
- data/testdata/mybook/images/06-bestpractice/margin_book.png +0 -0
- data/testdata/mybook/images/06-bestpractice/multiline-title.png +0 -0
- data/testdata/mybook/images/06-bestpractice/preface_numbered.png +0 -0
- data/testdata/mybook/images/06-bestpractice/program_border.png +0 -0
- data/testdata/mybook/images/06-bestpractice/sechead_design_4.png +0 -0
- data/testdata/mybook/images/06-bestpractice/titlepage-samples.png +0 -0
- data/testdata/mybook/images/93-background/bug913.png +0 -0
- data/testdata/mybook/images/93-background/slide2.png +0 -0
- data/testdata/mybook/images/cover_a5.pdf +0 -0
- data/testdata/mybook/images/cover_b5.pdf +0 -0
- data/testdata/mybook/images/tw-icon.jpg +0 -0
- data/testdata/mybook/layouts/layout.epub.erb +29 -0
- data/testdata/mybook/layouts/layout.html5.erb +106 -0
- data/testdata/mybook/layouts/layout.tex.erb +546 -0
- data/testdata/mybook/lib/hooks/beforetexcompile.rb +55 -0
- data/testdata/mybook/lib/ruby/review-builder.rb +503 -0
- data/testdata/mybook/lib/ruby/review-cli.rb +58 -0
- data/testdata/mybook/lib/ruby/review-compiler.rb +523 -0
- data/testdata/mybook/lib/ruby/review-epubmaker.rb +606 -0
- data/testdata/mybook/lib/ruby/review-htmlbuilder.rb +661 -0
- data/testdata/mybook/lib/ruby/review-latexbuilder.rb +782 -0
- data/testdata/mybook/lib/ruby/review-maker.rb +235 -0
- data/testdata/mybook/lib/ruby/review-monkeypatch.rb +91 -0
- data/testdata/mybook/lib/ruby/review-pdfmaker.rb +468 -0
- data/testdata/mybook/lib/ruby/review-textbuilder.rb +36 -0
- data/testdata/mybook/lib/ruby/review-tocparser.rb +285 -0
- data/testdata/mybook/lib/ruby/review-webmaker.rb +433 -0
- data/testdata/mybook/lib/tasks/mytasks.rake +31 -0
- data/testdata/mybook/lib/tasks/review.rake +142 -0
- data/testdata/mybook/lib/tasks/review.rake.orig +72 -0
- data/testdata/mybook/lib/tasks/starter.rake +326 -0
- data/testdata/mybook/locale.yml +6 -0
- data/testdata/mybook/review-ext.rb +206 -0
- data/testdata/mybook/sty/jumoline.sty +310 -0
- data/testdata/mybook/sty/mycolophon.sty +81 -0
- data/testdata/mybook/sty/mystyle.sty +8 -0
- data/testdata/mybook/sty/mytextsize.sty +61 -0
- data/testdata/mybook/sty/mytitlepage.sty +103 -0
- data/testdata/mybook/sty/reviewmacro.sty +60 -0
- data/testdata/mybook/sty/starter-codeblock.sty +332 -0
- data/testdata/mybook/sty/starter-color.sty +79 -0
- data/testdata/mybook/sty/starter-font.sty +112 -0
- data/testdata/mybook/sty/starter-heading.sty +514 -0
- data/testdata/mybook/sty/starter-note.sty +127 -0
- data/testdata/mybook/sty/starter-section.sty +262 -0
- data/testdata/mybook/sty/starter-toc.sty +72 -0
- data/testdata/mybook/sty/starter.sty +554 -0
- data/testdata/mybook/style.css +597 -0
- metadata +100 -3
@@ -0,0 +1,206 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
##
|
4
|
+
## Re:VIEWを拡張し、インライン命令とブロック命令を追加する
|
5
|
+
##
|
6
|
+
|
7
|
+
|
8
|
+
require_relative './lib/ruby/review-monkeypatch' ## 諸々の修正(モンキーパッチ)
|
9
|
+
|
10
|
+
|
11
|
+
module ReVIEW
|
12
|
+
|
13
|
+
## インライン命令「@<clearpage>{}」を宣言
|
14
|
+
Compiler.definline :clearpage ## 改ページ
|
15
|
+
Compiler.definline :B ## @<strong>{}のショートカット
|
16
|
+
Compiler.definline :hearts ## ハートマーク
|
17
|
+
Compiler.definline :TeX ## TeX のロゴマーク
|
18
|
+
Compiler.definline :LaTeX ## LaTeX のロゴマーク
|
19
|
+
|
20
|
+
## ブロック命令「//textleft{ ... //}」等を宣言
|
21
|
+
## (ここでは第2引数が「0」なので、引数なしのブロック命令になる。
|
22
|
+
## もし第2引数が「1..3」なら、//listのように必須引数が1つで
|
23
|
+
## 非必須引数が2という意味になる。)
|
24
|
+
Compiler.defblock :textleft, 0 ## 左寄せ
|
25
|
+
Compiler.defblock :textright, 0 ## 右寄せ
|
26
|
+
Compiler.defblock :textcenter, 0 ## 中央揃え
|
27
|
+
Compiler.defsingle :clearpage, 0 ## 改ページ (\clearpage)
|
28
|
+
Compiler.defsingle :sampleoutputbegin, 0..1 ## (出力結果開始部、Starterドキュメントで使用)
|
29
|
+
Compiler.defsingle :sampleoutputend, 0 ## (出力結果終了部、Starterドキュメントで使用)
|
30
|
+
|
31
|
+
|
32
|
+
## LaTeX用の定義
|
33
|
+
class LATEXBuilder
|
34
|
+
|
35
|
+
## 改ページ(インライン命令)
|
36
|
+
def inline_clearpage(str)
|
37
|
+
'\clearpage'
|
38
|
+
end
|
39
|
+
|
40
|
+
## 改ページ(ブロック命令)
|
41
|
+
def clearpage()
|
42
|
+
puts ''
|
43
|
+
puts '\\clearpage'
|
44
|
+
puts ''
|
45
|
+
end
|
46
|
+
|
47
|
+
## @<strong>{} のショートカット
|
48
|
+
def inline_B(str)
|
49
|
+
inline_strong(str)
|
50
|
+
end
|
51
|
+
def on_inline_B(&b) # nestable
|
52
|
+
on_inline_strong(&b)
|
53
|
+
end
|
54
|
+
|
55
|
+
## ハートマーク
|
56
|
+
def inline_hearts(str)
|
57
|
+
'$\heartsuit$'
|
58
|
+
end
|
59
|
+
|
60
|
+
## TeXのロゴマーク
|
61
|
+
def inline_TeX(str)
|
62
|
+
'\TeX{}'
|
63
|
+
end
|
64
|
+
|
65
|
+
## LaTeXのロゴマーク
|
66
|
+
def inline_LaTeX(str)
|
67
|
+
'\LaTeX{}'
|
68
|
+
end
|
69
|
+
|
70
|
+
## 左寄せ
|
71
|
+
def textleft(lines)
|
72
|
+
puts '\begin{flushleft}'
|
73
|
+
puts lines
|
74
|
+
puts '\end{flushleft}'
|
75
|
+
end
|
76
|
+
|
77
|
+
## 右寄せ
|
78
|
+
## (注:Re:VIEWにはすでに //flushright{ ... //} があったので、今後はそちらを推奨)
|
79
|
+
def textright(lines)
|
80
|
+
puts '\begin{flushright}'
|
81
|
+
puts lines
|
82
|
+
puts '\end{flushright}'
|
83
|
+
end
|
84
|
+
|
85
|
+
## 中央揃え
|
86
|
+
## (注:Re:VIEWにはすでに //centering{ ... //} があったので、今後はそちらを推奨)
|
87
|
+
def textcenter(lines)
|
88
|
+
puts '\begin{center}'
|
89
|
+
puts lines
|
90
|
+
puts '\end{center}'
|
91
|
+
end
|
92
|
+
|
93
|
+
## 出力結果の開始部と終了部(Starterのドキュメントで使用)
|
94
|
+
## (Re:VIEWではブロックの入れ子も「===[xxx]」の入れ子もできないため)
|
95
|
+
def sampleoutputbegin(caption=nil)
|
96
|
+
#puts "\\begin{startersampleoutput}" # error in note block
|
97
|
+
s = caption ? compile_inline(caption) : nil
|
98
|
+
puts "\\startersampleoutput{#{s}}"
|
99
|
+
end
|
100
|
+
def sampleoutputend()
|
101
|
+
#puts "\\end{startersampleoutput}" # error in note block
|
102
|
+
puts "\\endstartersampleoutput"
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
|
108
|
+
## HTML(ePub)用の定義
|
109
|
+
class HTMLBuilder
|
110
|
+
|
111
|
+
## 改ページはHTMLにはない
|
112
|
+
def inline_clearpage(str) # インライン命令
|
113
|
+
puts '<p></p>'
|
114
|
+
puts '<hr />'
|
115
|
+
puts '<p></p>'
|
116
|
+
end
|
117
|
+
|
118
|
+
def clearpage() # ブロック命令
|
119
|
+
puts '<p></p>'
|
120
|
+
puts '<hr />'
|
121
|
+
puts '<p></p>'
|
122
|
+
end
|
123
|
+
|
124
|
+
## @<strong>{} のショートカット
|
125
|
+
def inline_B(str)
|
126
|
+
inline_strong(str)
|
127
|
+
end
|
128
|
+
def on_inline_B(&b) # nestable
|
129
|
+
on_inline_strong(&b)
|
130
|
+
end
|
131
|
+
|
132
|
+
## ハートマーク
|
133
|
+
def inline_hearts(str)
|
134
|
+
#'♥'
|
135
|
+
'♥'
|
136
|
+
end
|
137
|
+
|
138
|
+
## TeXのロゴマーク
|
139
|
+
def inline_TeX(str)
|
140
|
+
'TeX'
|
141
|
+
end
|
142
|
+
|
143
|
+
## LaTeXのロゴマーク
|
144
|
+
def inline_LaTeX(str)
|
145
|
+
'LaTeX'
|
146
|
+
end
|
147
|
+
|
148
|
+
## 左寄せ
|
149
|
+
def textleft(lines)
|
150
|
+
puts '<div style="text-align:left">'
|
151
|
+
puts lines
|
152
|
+
puts '</div>'
|
153
|
+
end
|
154
|
+
|
155
|
+
## 右寄せ
|
156
|
+
def textright(lines)
|
157
|
+
puts '<div style="text-align:right">'
|
158
|
+
puts lines
|
159
|
+
puts '</div>'
|
160
|
+
end
|
161
|
+
|
162
|
+
## 中央揃え
|
163
|
+
def textcenter(lines)
|
164
|
+
puts '<div style="text-align:center">'
|
165
|
+
puts lines
|
166
|
+
puts '</div>'
|
167
|
+
end
|
168
|
+
|
169
|
+
## 出力結果の開始部と終了部(Starterのドキュメントで使用)
|
170
|
+
## (Re:VIEWではブロックの入れ子も「===[xxx]」の入れ子もできないため)
|
171
|
+
def sampleoutputbegin(caption=nil)
|
172
|
+
puts "<div class=\"sampleoutput\">"
|
173
|
+
if caption
|
174
|
+
s = compile_inline(caption)
|
175
|
+
puts "<span class=\"caption\">#{caption}</span>"
|
176
|
+
end
|
177
|
+
puts "<div class=\"sampleoutput-inner\">"
|
178
|
+
end
|
179
|
+
def sampleoutputend()
|
180
|
+
puts "</div></div>"
|
181
|
+
end
|
182
|
+
|
183
|
+
end
|
184
|
+
|
185
|
+
|
186
|
+
class TEXTBuilder
|
187
|
+
|
188
|
+
## TeXのロゴマーク
|
189
|
+
def inline_TeX(str)
|
190
|
+
'TeX'
|
191
|
+
end
|
192
|
+
|
193
|
+
## LaTeXのロゴマーク
|
194
|
+
def inline_LaTeX(str)
|
195
|
+
'LaTeX'
|
196
|
+
end
|
197
|
+
|
198
|
+
## ハートマーク
|
199
|
+
def inline_hearts(str)
|
200
|
+
'♥'
|
201
|
+
end
|
202
|
+
|
203
|
+
end
|
204
|
+
|
205
|
+
|
206
|
+
end
|
@@ -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'.
|