review 4.0.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-win.yml +39 -0
- data/.github/workflows/ruby.yml +27 -0
- data/.rubocop.yml +10 -7
- data/Dockerfile +21 -5
- data/NEWS.ja.md +101 -1
- data/NEWS.md +102 -2
- data/README.md +10 -7
- data/appveyor.yml +0 -20
- data/bin/review-compile +1 -1
- data/bin/review-validate +1 -1
- data/doc/config.yml.sample +12 -1
- data/doc/config.yml.sample-simple +1 -0
- data/doc/format.ja.md +16 -4
- data/doc/format.md +2 -1
- data/doc/quickstart.ja.md +40 -23
- data/doc/quickstart.md +33 -15
- data/lib/review/book/base.rb +8 -7
- data/lib/review/book/index.rb +50 -56
- data/lib/review/book/index/item.rb +1 -1
- data/lib/review/builder.rb +26 -4
- data/lib/review/compiler.rb +6 -3
- data/lib/review/configure.rb +5 -3
- data/lib/review/epubmaker.rb +15 -2
- data/lib/review/extentions/string.rb +0 -4
- data/lib/review/htmlbuilder.rb +4 -15
- data/lib/review/idgxmlbuilder.rb +10 -19
- data/lib/review/idgxmlmaker.rb +10 -3
- data/lib/review/init.rb +8 -1
- data/lib/review/latexbuilder.rb +13 -6
- data/lib/review/pdfmaker.rb +24 -9
- data/lib/review/rstbuilder.rb +2 -2
- data/lib/review/textmaker.rb +7 -1
- data/lib/review/tocparser.rb +6 -2
- data/lib/review/version.rb +1 -1
- data/lib/review/webmaker.rb +8 -1
- data/review.gemspec +2 -2
- data/samples/sample-book/src/.gitignore +1 -0
- data/samples/sample-book/src/config-ebook.yml +4 -0
- data/samples/sample-book/src/config-jlreq-ebook.yml +4 -0
- data/samples/sample-book/src/config.yml +1 -1
- data/samples/sample-book/src/lib/tasks/review.rake +10 -6
- data/samples/syntax-book/ch01.re +4 -2
- data/samples/syntax-book/ch02.re +8 -16
- data/samples/syntax-book/config-jlreq-lualatex.yml +4 -0
- data/samples/syntax-book/config-print.yml +3 -0
- data/samples/syntax-book/config.yml +1 -1
- data/samples/syntax-book/lib/tasks/review.rake +23 -8
- data/templates/latex/config.erb +6 -6
- data/templates/latex/review-jlreq/review-base.sty +14 -4
- data/templates/latex/review-jlreq/review-jlreq.cls +10 -1
- data/templates/latex/review-jlreq/review-style.sty +1 -1
- data/templates/latex/review-jsbook/review-base.sty +10 -0
- data/templates/latex/review-jsbook/review-jsbook.cls +1 -1
- data/templates/latex/review-jsbook/review-style.sty +1 -1
- data/test/assets/test_template.tex +6 -6
- data/test/assets/test_template_backmatter.tex +6 -6
- data/test/test_book.rb +8 -0
- data/test/test_book_chapter.rb +4 -2
- data/test/test_catalog.rb +1 -0
- data/test/test_epubmaker_cmd.rb +12 -5
- data/test/test_helper.rb +11 -6
- data/test/test_htmlbuilder.rb +80 -8
- data/test/test_idgxmlbuilder.rb +57 -2
- data/test/test_idgxmlmaker_cmd.rb +46 -0
- data/test/test_image_finder.rb +52 -70
- data/test/test_index.rb +12 -12
- data/test/test_latexbuilder.rb +171 -8
- data/test/test_latexbuilder_v2.rb +9 -7
- data/test/test_pdfmaker_cmd.rb +99 -5
- data/test/test_textmaker_cmd.rb +54 -0
- data/test/test_topbuilder.rb +59 -0
- data/vendor/jsclasses/LICENSE +1 -1
- data/vendor/jsclasses/jis/jsarticle.cls +53 -14
- data/vendor/jsclasses/jis/jsbook.cls +53 -14
- data/vendor/jsclasses/jis/jsclasses.dtx +84 -25
- data/vendor/jsclasses/jis/jslogo.dtx +4 -4
- data/vendor/jsclasses/jis/jslogo.sty +3 -3
- data/vendor/jsclasses/jis/jspf.cls +52 -13
- data/vendor/jsclasses/jis/jsreport.cls +53 -14
- data/vendor/jsclasses/jis/kiyou.cls +53 -14
- data/vendor/jsclasses/jis/okumacro.dtx +4 -5
- data/vendor/jsclasses/jis/okumacro.sty +3 -4
- data/vendor/jsclasses/jsarticle.cls +53 -14
- data/vendor/jsclasses/jsbook.cls +53 -14
- data/vendor/jsclasses/jsclasses.dtx +84 -25
- data/vendor/jsclasses/jsclasses.pdf +0 -0
- data/vendor/jsclasses/jslogo.dtx +4 -4
- data/vendor/jsclasses/jslogo.pdf +0 -0
- data/vendor/jsclasses/jslogo.sty +3 -3
- data/vendor/jsclasses/jspf.cls +52 -13
- data/vendor/jsclasses/jsreport.cls +53 -14
- data/vendor/jsclasses/kiyou.cls +53 -14
- data/vendor/jsclasses/okumacro.dtx +4 -5
- data/vendor/jsclasses/okumacro.pdf +0 -0
- data/vendor/jsclasses/okumacro.sty +3 -4
- metadata +15 -6
- data/samples/syntax-book/review-ext.rb +0 -14
data/test/test_pdfmaker_cmd.rb
CHANGED
@@ -3,6 +3,7 @@ require 'tmpdir'
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'yaml'
|
5
5
|
require 'rbconfig'
|
6
|
+
require 'open3'
|
6
7
|
|
7
8
|
REVIEW_PDFMAKER = File.expand_path('../bin/review-pdfmaker', File.dirname(__FILE__))
|
8
9
|
|
@@ -19,18 +20,111 @@ class PDFMakerCmdTest < Test::Unit::TestCase
|
|
19
20
|
ENV['RUBYLIB'] = @old_rubylib
|
20
21
|
end
|
21
22
|
|
22
|
-
def
|
23
|
+
def common_buildpdf(bookdir, templatedir, configfile, targetpdffile, option = nil)
|
23
24
|
if /mswin|mingw|cygwin/ !~ RUBY_PLATFORM
|
24
|
-
config = prepare_samplebook(@tmpdir1)
|
25
|
+
config = prepare_samplebook(@tmpdir1, bookdir, templatedir, configfile)
|
25
26
|
builddir = File.join(@tmpdir1, config['bookname'] + '-pdf')
|
26
|
-
|
27
|
+
assert !File.exist?(builddir)
|
27
28
|
|
28
29
|
ruby_cmd = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])
|
29
30
|
Dir.chdir(@tmpdir1) do
|
30
|
-
|
31
|
+
_o, e, s = Open3.capture3("#{ruby_cmd} -S #{REVIEW_PDFMAKER} #{option} #{configfile}")
|
32
|
+
if !e.empty? && !s.success?
|
33
|
+
STDERR.puts e
|
34
|
+
end
|
35
|
+
assert s.success?
|
31
36
|
end
|
37
|
+
assert File.exist?(File.join(@tmpdir1, targetpdffile))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_pdfmaker_cmd_sample_jsbook_print
|
42
|
+
begin
|
43
|
+
`uplatex -v`
|
44
|
+
rescue
|
45
|
+
$stderr.puts 'skip test_pdfmaker_cmd_sample_jsbook_print'
|
46
|
+
return true
|
47
|
+
end
|
48
|
+
common_buildpdf('sample-book/src', 'review-jsbook', 'config.yml', 'book.pdf')
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_pdfmaker_cmd_sample_jsbook_ebook
|
52
|
+
begin
|
53
|
+
`uplatex -v`
|
54
|
+
rescue
|
55
|
+
$stderr.puts 'skip test_pdfmaker_cmd_sample_jsbook_ebook'
|
56
|
+
return true
|
57
|
+
end
|
58
|
+
common_buildpdf('sample-book/src', 'review-jsbook', 'config-ebook.yml', 'book.pdf')
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_pdfmaker_cmd_sample_jlreq_print
|
62
|
+
begin
|
63
|
+
`uplatex -v`
|
64
|
+
rescue
|
65
|
+
$stderr.puts 'skip test_pdfmaker_cmd_sample_jlreq_print'
|
66
|
+
return true
|
67
|
+
end
|
68
|
+
common_buildpdf('sample-book/src', 'review-jlreq', 'config-jlreq.yml', 'book.pdf')
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_pdfmaker_cmd_sample_jlreq_ebook
|
72
|
+
begin
|
73
|
+
`uplatex -v`
|
74
|
+
rescue
|
75
|
+
$stderr.puts 'skip test_pdfmaker_cmd_sample_jlreq_ebook'
|
76
|
+
return true
|
77
|
+
end
|
78
|
+
common_buildpdf('sample-book/src', 'review-jlreq', 'config-jlreq-ebook.yml', 'book.pdf')
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_pdfmaker_cmd_syntax_jsbook_print
|
82
|
+
begin
|
83
|
+
`uplatex -v`
|
84
|
+
rescue
|
85
|
+
$stderr.puts 'skip test_pdfmaker_cmd_syntax_jsbook_print'
|
86
|
+
return true
|
87
|
+
end
|
88
|
+
common_buildpdf('syntax-book', 'review-jsbook', 'config-print.yml', 'syntax-book.pdf')
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_pdfmaker_cmd_syntax_jsbook_print_buildonly
|
92
|
+
begin
|
93
|
+
`uplatex -v`
|
94
|
+
rescue
|
95
|
+
$stderr.puts 'skip test_pdfmaker_cmd_syntax_jsbook_print_buildonly'
|
96
|
+
return true
|
97
|
+
end
|
98
|
+
common_buildpdf('syntax-book', 'review-jsbook', 'config-print.yml', 'syntax-book.pdf', '-y ch01')
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_pdfmaker_cmd_syntax_jsbook_ebook
|
102
|
+
begin
|
103
|
+
`uplatex -v`
|
104
|
+
rescue
|
105
|
+
$stderr.puts 'skip test_pdfmaker_cmd_syntax_jsbook_ebook'
|
106
|
+
return true
|
107
|
+
end
|
108
|
+
common_buildpdf('syntax-book', 'review-jsbook', 'config.yml', 'syntax-book.pdf')
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_pdfmaker_cmd_syntax_jlreq_ebook
|
112
|
+
begin
|
113
|
+
`uplatex -v`
|
114
|
+
rescue
|
115
|
+
$stderr.puts 'skip test_pdfmaker_cmd_syntax_jlreq_ebook'
|
116
|
+
return true
|
117
|
+
end
|
118
|
+
common_buildpdf('syntax-book', 'review-jlreq', 'config-jlreq.yml', 'syntax-book.pdf')
|
119
|
+
end
|
32
120
|
|
33
|
-
|
121
|
+
def test_pdfmaker_cmd_syntax_jlreq_ebook_lualatex
|
122
|
+
begin
|
123
|
+
`lualatex -v`
|
124
|
+
rescue
|
125
|
+
$stderr.puts 'skip test_pdfmaker_cmd_syntax_jlreq_ebook_lualatex'
|
126
|
+
return true
|
34
127
|
end
|
128
|
+
common_buildpdf('syntax-book', 'review-jlreq', 'config-jlreq-lualatex.yml', 'syntax-book.pdf')
|
35
129
|
end
|
36
130
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'tmpdir'
|
3
|
+
require 'fileutils'
|
4
|
+
require 'yaml'
|
5
|
+
require 'rbconfig'
|
6
|
+
require 'open3'
|
7
|
+
|
8
|
+
REVIEW_TEXTMAKER = File.expand_path('../bin/review-textmaker', File.dirname(__FILE__))
|
9
|
+
|
10
|
+
class TEXTMakerCmdTest < Test::Unit::TestCase
|
11
|
+
def setup
|
12
|
+
@tmpdir1 = Dir.mktmpdir
|
13
|
+
|
14
|
+
@old_rubylib = ENV['RUBYLIB']
|
15
|
+
ENV['RUBYLIB'] = File.expand_path('../lib', File.dirname(__FILE__))
|
16
|
+
end
|
17
|
+
|
18
|
+
def teardown
|
19
|
+
FileUtils.rm_rf(@tmpdir1)
|
20
|
+
ENV['RUBYLIB'] = @old_rubylib
|
21
|
+
end
|
22
|
+
|
23
|
+
def common_buildtext(bookdir, configfile, targetfile, option)
|
24
|
+
if /mswin|mingw|cygwin/ !~ RUBY_PLATFORM
|
25
|
+
config = prepare_samplebook(@tmpdir1, bookdir, nil, configfile)
|
26
|
+
builddir = File.join(@tmpdir1, config['bookname'] + '-text')
|
27
|
+
assert !File.exist?(builddir)
|
28
|
+
|
29
|
+
ruby_cmd = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name']) + RbConfig::CONFIG['EXEEXT']
|
30
|
+
Dir.chdir(@tmpdir1) do
|
31
|
+
_o, e, s = Open3.capture3("#{ruby_cmd} -S #{REVIEW_TEXTMAKER} #{option} #{configfile}")
|
32
|
+
STDERR.puts e unless e.empty?
|
33
|
+
assert s.success?
|
34
|
+
end
|
35
|
+
assert File.exist?(File.join(@tmpdir1, targetfile))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_textmaker_cmd_samplebook
|
40
|
+
common_buildtext('sample-book/src', 'config.yml', 'book-text/ch01.txt', nil)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_textmaker_cmd_samplebook_plain
|
44
|
+
common_buildtext('sample-book/src', 'config.yml', 'book-text/ch01.txt', '-n')
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_textmaker_cmd_syntaxbook
|
48
|
+
common_buildtext('syntax-book', 'config.yml', 'syntax-book-text/ch01.txt', nil)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_textmaker_cmd_syntaxbook_plain
|
52
|
+
common_buildtext('syntax-book', 'config.yml', 'syntax-book-text/ch01.txt', '-n')
|
53
|
+
end
|
54
|
+
end
|
data/test/test_topbuilder.rb
CHANGED
@@ -170,6 +170,19 @@ para
|
|
170
170
|
|
171
171
|
●\tbar
|
172
172
|
|
173
|
+
EOS
|
174
|
+
assert_equal expected, actual
|
175
|
+
end
|
176
|
+
|
177
|
+
def test_dt_inline
|
178
|
+
fn = Book::FootnoteIndex.parse(['//footnote[bar][bar]'])
|
179
|
+
@chapter.instance_eval { @footnote_index = fn }
|
180
|
+
actual = compile_block(" : foo@<fn>{bar}[]<>&@<m>$\\alpha[]$\n")
|
181
|
+
|
182
|
+
expected = <<-EOS
|
183
|
+
★foo【注1】[]<>&◆→TeX式ここから←◆\\alpha[]◆→TeX式ここまで←◆☆
|
184
|
+
|
185
|
+
|
173
186
|
EOS
|
174
187
|
assert_equal expected, actual
|
175
188
|
end
|
@@ -462,6 +475,52 @@ ccc\tddd<>&
|
|
462
475
|
ccc\tddd<>&
|
463
476
|
◆→終了:表←◆
|
464
477
|
|
478
|
+
EOS
|
479
|
+
assert_equal expected, actual
|
480
|
+
end
|
481
|
+
|
482
|
+
def test_table_row_separator
|
483
|
+
src = "//table{\n1\t2\t\t3 4| 5\n------------\na b\tc d |e\n//}\n"
|
484
|
+
expected = <<-EOS
|
485
|
+
◆→開始:表←◆
|
486
|
+
★1☆ ★2☆ ★3 4| 5☆
|
487
|
+
a b c d |e
|
488
|
+
◆→終了:表←◆
|
489
|
+
|
490
|
+
EOS
|
491
|
+
actual = compile_block(src)
|
492
|
+
assert_equal expected, actual
|
493
|
+
|
494
|
+
@config['table_row_separator'] = 'singletab'
|
495
|
+
actual = compile_block(src)
|
496
|
+
expected = <<-EOS
|
497
|
+
◆→開始:表←◆
|
498
|
+
★1☆ ★2☆ ★☆ ★3 4| 5☆
|
499
|
+
a b c d |e
|
500
|
+
◆→終了:表←◆
|
501
|
+
|
502
|
+
EOS
|
503
|
+
assert_equal expected, actual
|
504
|
+
|
505
|
+
@config['table_row_separator'] = 'spaces'
|
506
|
+
actual = compile_block(src)
|
507
|
+
expected = <<-EOS
|
508
|
+
◆→開始:表←◆
|
509
|
+
★1☆ ★2☆ ★3☆ ★4|☆ ★5☆
|
510
|
+
a b c d |e
|
511
|
+
◆→終了:表←◆
|
512
|
+
|
513
|
+
EOS
|
514
|
+
assert_equal expected, actual
|
515
|
+
|
516
|
+
@config['table_row_separator'] = 'verticalbar'
|
517
|
+
actual = compile_block(src)
|
518
|
+
expected = <<-EOS
|
519
|
+
◆→開始:表←◆
|
520
|
+
★1 2 3 4☆ ★5☆
|
521
|
+
a b c d e
|
522
|
+
◆→終了:表←◆
|
523
|
+
|
465
524
|
EOS
|
466
525
|
assert_equal expected, actual
|
467
526
|
end
|
data/vendor/jsclasses/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Copyright 1995-1999 ASCII MEDIA WORKS
|
2
2
|
Copyright 1999-2016 Haruhiko Okumura
|
3
|
-
Copyright 2016-
|
3
|
+
Copyright 2016-2020 Japanese TeX Development Community
|
4
4
|
All rights reserved.
|
5
5
|
|
6
6
|
Redistribution and use in source and binary forms, with or without
|
@@ -22,7 +22,7 @@
|
|
22
22
|
%% in the same archive or directory.)
|
23
23
|
\NeedsTeXFormat{pLaTeX2e}
|
24
24
|
\ProvidesClass{jsarticle}
|
25
|
-
[
|
25
|
+
[2020/02/02 jsclasses (okumura, texjporg)]
|
26
26
|
\def\jsc@clsname{jsarticle}
|
27
27
|
\newif\ifjsc@needsp@tch
|
28
28
|
\jsc@needsp@tchfalse
|
@@ -460,6 +460,7 @@
|
|
460
460
|
\DeclareFontShape{\jsc@JTn}{gt}{m}{sl}{<->ssub*gt/m/n}{}
|
461
461
|
\DeclareFontShape{\jsc@JTn}{mc}{bx}{it}{<->ssub*gt/m/n}{}
|
462
462
|
\DeclareFontShape{\jsc@JTn}{mc}{bx}{sl}{<->ssub*gt/m/n}{}
|
463
|
+
\ifx\@rmfamilyhook\@undefined % old
|
463
464
|
\DeclareRobustCommand\rmfamily
|
464
465
|
{\not@math@alphabet\rmfamily\mathrm
|
465
466
|
\romanfamily\rmdefault\kanjifamily\mcdefault\selectfont}
|
@@ -469,6 +470,25 @@
|
|
469
470
|
\DeclareRobustCommand\ttfamily
|
470
471
|
{\not@math@alphabet\ttfamily\mathtt
|
471
472
|
\romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
|
473
|
+
\AtBeginDocument{%
|
474
|
+
\ifx\mweights@init\@undefined\else % mweights.sty is loaded
|
475
|
+
% my definitions above should have been overwritten, recover it!
|
476
|
+
% \selectfont is executed twice but I don't care about speed...
|
477
|
+
\expandafter\g@addto@macro\csname rmfamily \endcsname
|
478
|
+
{\kanjifamily\mcdefault\selectfont}%
|
479
|
+
\expandafter\g@addto@macro\csname sffamily \endcsname
|
480
|
+
{\kanjifamily\gtdefault\selectfont}%
|
481
|
+
\expandafter\g@addto@macro\csname ttfamily \endcsname
|
482
|
+
{\kanjifamily\gtdefault\selectfont}%
|
483
|
+
\fi}
|
484
|
+
\else % 2020-02-02
|
485
|
+
\g@addto@macro\@rmfamilyhook
|
486
|
+
{\prepare@family@series@update@kanji{mc}\mcdefault}
|
487
|
+
\g@addto@macro\@sffamilyhook
|
488
|
+
{\prepare@family@series@update@kanji{gt}\gtdefault}
|
489
|
+
\g@addto@macro\@ttfamilyhook
|
490
|
+
{\prepare@family@series@update@kanji{gt}\gtdefault}
|
491
|
+
\fi
|
472
492
|
\ifx\DeclareFixJFMCJKTextFontCommand\@undefined
|
473
493
|
\DeclareRobustCommand\textmc[1]{%
|
474
494
|
\relax\ifmmode \expandafter\nfss@text \fi{\mcfamily #1}}
|
@@ -1370,11 +1390,11 @@
|
|
1370
1390
|
\renewcommand{\theenumiii}{\@roman\c@enumiii}
|
1371
1391
|
\renewcommand{\theenumiv}{\@Alph\c@enumiv}
|
1372
1392
|
\newcommand{\labelenumi}{\theenumi.}
|
1373
|
-
\newcommand{\labelenumii}{\inhibitglue$B!J(B\theenumii$B!K(B\inhibitglue}
|
1393
|
+
\newcommand{\labelenumii}{\inhibitglue $B!J(B\theenumii $B!K(B\inhibitglue}
|
1374
1394
|
\newcommand{\labelenumiii}{\theenumiii.}
|
1375
1395
|
\newcommand{\labelenumiv}{\theenumiv.}
|
1376
1396
|
\renewcommand{\p@enumii}{\theenumi}
|
1377
|
-
\renewcommand{\p@enumiii}{\theenumi\inhibitglue$B!J(B\theenumii$B!K(B}
|
1397
|
+
\renewcommand{\p@enumiii}{\theenumi\inhibitglue $B!J(B\theenumii $B!K(B}
|
1378
1398
|
\renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
|
1379
1399
|
\newcommand\labelitemi{\textbullet}
|
1380
1400
|
\newcommand\labelitemii{\normalfont\bfseries \textendash}
|
@@ -1519,7 +1539,7 @@
|
|
1519
1539
|
\vskip\abovecaptionskip
|
1520
1540
|
\sbox\@tempboxa{#1\hskip1zw\relax #2}%
|
1521
1541
|
\ifdim \wd\@tempboxa <\hsize \centering \fi
|
1522
|
-
#1\hskip1zw\relax
|
1542
|
+
#1{\hskip1zw\relax}#2\par
|
1523
1543
|
\vskip\belowcaptionskip}}
|
1524
1544
|
\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
|
1525
1545
|
\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
|
@@ -1885,23 +1905,42 @@
|
|
1885
1905
|
\def\$B@>Nq(B{\$B@>Nq(Btrue}
|
1886
1906
|
\def\$BOBNq(B{\$B@>Nq(Bfalse}
|
1887
1907
|
\newcount\heisei \heisei\year \advance\heisei-1988\relax
|
1908
|
+
\def\pltx@today@year@#1{%
|
1909
|
+
\ifnum\numexpr\year-#1=1 $B85(B\else
|
1910
|
+
\ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi
|
1911
|
+
\kansuji\numexpr\year-#1\relax
|
1912
|
+
\else
|
1913
|
+
\number\numexpr\year-#1\relax\nobreak
|
1914
|
+
\fi
|
1915
|
+
\fi $BG/(B
|
1916
|
+
}
|
1917
|
+
\def\pltx@today@year{%
|
1918
|
+
\ifnum\numexpr\year*10000+\month*100+\day<19890108
|
1919
|
+
$B><OB(B\pltx@today@year@{1925}%
|
1920
|
+
\else\ifnum\numexpr\year*10000+\month*100+\day<20190501
|
1921
|
+
$BJ?@.(B\pltx@today@year@{1988}%
|
1922
|
+
\else
|
1923
|
+
$BNaOB(B\pltx@today@year@{2018}%
|
1924
|
+
\fi\fi}
|
1888
1925
|
\def\today{%
|
1889
1926
|
\if@english
|
1890
1927
|
\ifcase\month\or
|
1891
1928
|
January\or February\or March\or April\or May\or June\or
|
1892
1929
|
July\or August\or September\or October\or November\or December\fi
|
1893
1930
|
\space\number\day, \number\year
|
1931
|
+
\else\if$B@>Nq(B
|
1932
|
+
\ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi \kansuji\year
|
1933
|
+
\else\number\year\nobreak\fi $BG/(B
|
1894
1934
|
\else
|
1895
|
-
\
|
1896
|
-
|
1897
|
-
|
1898
|
-
|
1899
|
-
\
|
1900
|
-
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1904
|
-
\fi}
|
1935
|
+
\pltx@today@year
|
1936
|
+
\fi
|
1937
|
+
\ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi
|
1938
|
+
\kansuji\month $B7n(B
|
1939
|
+
\kansuji\day $BF|(B
|
1940
|
+
\else
|
1941
|
+
\number\month\nobreak $B7n(B
|
1942
|
+
\number\day\nobreak $BF|(B
|
1943
|
+
\fi\fi}
|
1905
1944
|
\hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
|
1906
1945
|
\if@slide \pagestyle{empty} \else \pagestyle{plain} \fi
|
1907
1946
|
\pagenumbering{arabic}
|
@@ -22,7 +22,7 @@
|
|
22
22
|
%% in the same archive or directory.)
|
23
23
|
\NeedsTeXFormat{pLaTeX2e}
|
24
24
|
\ProvidesClass{jsbook}
|
25
|
-
[
|
25
|
+
[2020/02/02 jsclasses (okumura, texjporg)]
|
26
26
|
\def\jsc@clsname{jsbook}
|
27
27
|
\newif\ifjsc@needsp@tch
|
28
28
|
\jsc@needsp@tchfalse
|
@@ -465,6 +465,7 @@
|
|
465
465
|
\DeclareFontShape{\jsc@JTn}{gt}{m}{sl}{<->ssub*gt/m/n}{}
|
466
466
|
\DeclareFontShape{\jsc@JTn}{mc}{bx}{it}{<->ssub*gt/m/n}{}
|
467
467
|
\DeclareFontShape{\jsc@JTn}{mc}{bx}{sl}{<->ssub*gt/m/n}{}
|
468
|
+
\ifx\@rmfamilyhook\@undefined % old
|
468
469
|
\DeclareRobustCommand\rmfamily
|
469
470
|
{\not@math@alphabet\rmfamily\mathrm
|
470
471
|
\romanfamily\rmdefault\kanjifamily\mcdefault\selectfont}
|
@@ -474,6 +475,25 @@
|
|
474
475
|
\DeclareRobustCommand\ttfamily
|
475
476
|
{\not@math@alphabet\ttfamily\mathtt
|
476
477
|
\romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
|
478
|
+
\AtBeginDocument{%
|
479
|
+
\ifx\mweights@init\@undefined\else % mweights.sty is loaded
|
480
|
+
% my definitions above should have been overwritten, recover it!
|
481
|
+
% \selectfont is executed twice but I don't care about speed...
|
482
|
+
\expandafter\g@addto@macro\csname rmfamily \endcsname
|
483
|
+
{\kanjifamily\mcdefault\selectfont}%
|
484
|
+
\expandafter\g@addto@macro\csname sffamily \endcsname
|
485
|
+
{\kanjifamily\gtdefault\selectfont}%
|
486
|
+
\expandafter\g@addto@macro\csname ttfamily \endcsname
|
487
|
+
{\kanjifamily\gtdefault\selectfont}%
|
488
|
+
\fi}
|
489
|
+
\else % 2020-02-02
|
490
|
+
\g@addto@macro\@rmfamilyhook
|
491
|
+
{\prepare@family@series@update@kanji{mc}\mcdefault}
|
492
|
+
\g@addto@macro\@sffamilyhook
|
493
|
+
{\prepare@family@series@update@kanji{gt}\gtdefault}
|
494
|
+
\g@addto@macro\@ttfamilyhook
|
495
|
+
{\prepare@family@series@update@kanji{gt}\gtdefault}
|
496
|
+
\fi
|
477
497
|
\ifx\DeclareFixJFMCJKTextFontCommand\@undefined
|
478
498
|
\DeclareRobustCommand\textmc[1]{%
|
479
499
|
\relax\ifmmode \expandafter\nfss@text \fi{\mcfamily #1}}
|
@@ -1477,11 +1497,11 @@
|
|
1477
1497
|
\renewcommand{\theenumiii}{\@roman\c@enumiii}
|
1478
1498
|
\renewcommand{\theenumiv}{\@Alph\c@enumiv}
|
1479
1499
|
\newcommand{\labelenumi}{\theenumi.}
|
1480
|
-
\newcommand{\labelenumii}{\inhibitglue$B!J(B\theenumii$B!K(B\inhibitglue}
|
1500
|
+
\newcommand{\labelenumii}{\inhibitglue $B!J(B\theenumii $B!K(B\inhibitglue}
|
1481
1501
|
\newcommand{\labelenumiii}{\theenumiii.}
|
1482
1502
|
\newcommand{\labelenumiv}{\theenumiv.}
|
1483
1503
|
\renewcommand{\p@enumii}{\theenumi}
|
1484
|
-
\renewcommand{\p@enumiii}{\theenumi\inhibitglue$B!J(B\theenumii$B!K(B}
|
1504
|
+
\renewcommand{\p@enumiii}{\theenumi\inhibitglue $B!J(B\theenumii $B!K(B}
|
1485
1505
|
\renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
|
1486
1506
|
\newcommand\labelitemi{\textbullet}
|
1487
1507
|
\newcommand\labelitemii{\normalfont\bfseries \textendash}
|
@@ -1588,7 +1608,7 @@
|
|
1588
1608
|
\vskip\abovecaptionskip
|
1589
1609
|
\sbox\@tempboxa{#1\hskip1zw\relax #2}%
|
1590
1610
|
\ifdim \wd\@tempboxa <\hsize \centering \fi
|
1591
|
-
#1\hskip1zw\relax
|
1611
|
+
#1{\hskip1zw\relax}#2\par
|
1592
1612
|
\vskip\belowcaptionskip}}
|
1593
1613
|
\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
|
1594
1614
|
\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
|
@@ -1976,23 +1996,42 @@
|
|
1976
1996
|
\def\$B@>Nq(B{\$B@>Nq(Btrue}
|
1977
1997
|
\def\$BOBNq(B{\$B@>Nq(Bfalse}
|
1978
1998
|
\newcount\heisei \heisei\year \advance\heisei-1988\relax
|
1999
|
+
\def\pltx@today@year@#1{%
|
2000
|
+
\ifnum\numexpr\year-#1=1 $B85(B\else
|
2001
|
+
\ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi
|
2002
|
+
\kansuji\numexpr\year-#1\relax
|
2003
|
+
\else
|
2004
|
+
\number\numexpr\year-#1\relax\nobreak
|
2005
|
+
\fi
|
2006
|
+
\fi $BG/(B
|
2007
|
+
}
|
2008
|
+
\def\pltx@today@year{%
|
2009
|
+
\ifnum\numexpr\year*10000+\month*100+\day<19890108
|
2010
|
+
$B><OB(B\pltx@today@year@{1925}%
|
2011
|
+
\else\ifnum\numexpr\year*10000+\month*100+\day<20190501
|
2012
|
+
$BJ?@.(B\pltx@today@year@{1988}%
|
2013
|
+
\else
|
2014
|
+
$BNaOB(B\pltx@today@year@{2018}%
|
2015
|
+
\fi\fi}
|
1979
2016
|
\def\today{%
|
1980
2017
|
\if@english
|
1981
2018
|
\ifcase\month\or
|
1982
2019
|
January\or February\or March\or April\or May\or June\or
|
1983
2020
|
July\or August\or September\or October\or November\or December\fi
|
1984
2021
|
\space\number\day, \number\year
|
2022
|
+
\else\if$B@>Nq(B
|
2023
|
+
\ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi \kansuji\year
|
2024
|
+
\else\number\year\nobreak\fi $BG/(B
|
1985
2025
|
\else
|
1986
|
-
\
|
1987
|
-
|
1988
|
-
|
1989
|
-
|
1990
|
-
\
|
1991
|
-
|
1992
|
-
|
1993
|
-
|
1994
|
-
|
1995
|
-
\fi}
|
2026
|
+
\pltx@today@year
|
2027
|
+
\fi
|
2028
|
+
\ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi
|
2029
|
+
\kansuji\month $B7n(B
|
2030
|
+
\kansuji\day $BF|(B
|
2031
|
+
\else
|
2032
|
+
\number\month\nobreak $B7n(B
|
2033
|
+
\number\day\nobreak $BF|(B
|
2034
|
+
\fi\fi}
|
1996
2035
|
\hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
|
1997
2036
|
\if@report \pagestyle{plain} \else \pagestyle{headings} \fi
|
1998
2037
|
\pagenumbering{arabic}
|