review 3.1.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (225) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-win.yml +45 -0
  3. data/.github/workflows/ruby.yml +27 -0
  4. data/.rubocop.yml +161 -34
  5. data/.travis.yml +16 -15
  6. data/Dockerfile +21 -5
  7. data/NEWS.ja.md +394 -0
  8. data/NEWS.md +395 -1
  9. data/README.md +10 -7
  10. data/appveyor.yml +1 -3
  11. data/bin/review-catalog-converter +5 -5
  12. data/bin/review-check +10 -12
  13. data/bin/review-checkdep +2 -2
  14. data/bin/review-compile +17 -23
  15. data/bin/review-epubmaker +3 -35
  16. data/bin/review-idgxmlmaker +16 -0
  17. data/bin/review-index +2 -89
  18. data/bin/review-preproc +13 -13
  19. data/bin/review-validate +4 -4
  20. data/bin/review-vol +4 -78
  21. data/doc/config.yml.sample +47 -12
  22. data/doc/config.yml.sample-simple +3 -2
  23. data/doc/format.ja.md +120 -17
  24. data/doc/format.md +119 -27
  25. data/doc/makeindex.ja.md +2 -2
  26. data/doc/pdfmaker.ja.md +43 -1
  27. data/doc/pdfmaker.md +42 -1
  28. data/doc/quickstart.ja.md +45 -25
  29. data/doc/quickstart.md +37 -16
  30. data/lib/epubmaker/content.rb +3 -2
  31. data/lib/epubmaker/epubcommon.rb +34 -27
  32. data/lib/epubmaker/epubv2.rb +5 -6
  33. data/lib/epubmaker/epubv3.rb +21 -18
  34. data/lib/epubmaker/producer.rb +2 -1
  35. data/lib/review/book.rb +2 -2
  36. data/lib/review/book/base.rb +91 -96
  37. data/lib/review/book/bib.rb +21 -0
  38. data/lib/review/book/book_unit.rb +155 -0
  39. data/lib/review/book/chapter.rb +48 -29
  40. data/lib/review/book/index.rb +46 -240
  41. data/lib/review/book/index/item.rb +46 -0
  42. data/lib/review/book/page_metric.rb +7 -7
  43. data/lib/review/book/part.rb +45 -10
  44. data/lib/review/book/volume.rb +4 -5
  45. data/lib/review/builder.rb +172 -56
  46. data/lib/review/catalog.rb +14 -17
  47. data/lib/review/compiler.rb +219 -121
  48. data/lib/review/configure.rb +39 -7
  49. data/lib/review/converter.rb +1 -1
  50. data/lib/review/epub2html.rb +43 -5
  51. data/lib/review/epubmaker.rb +69 -27
  52. data/lib/review/extentions/string.rb +0 -4
  53. data/lib/review/htmlbuilder.rb +112 -101
  54. data/lib/review/htmlutils.rb +9 -13
  55. data/lib/review/i18n.rb +3 -3
  56. data/lib/review/idgxmlbuilder.rb +202 -78
  57. data/lib/review/idgxmlmaker.rb +186 -0
  58. data/lib/review/index_builder.rb +653 -0
  59. data/lib/review/init-web/finish.html +10 -0
  60. data/lib/review/init-web/index.html +190 -0
  61. data/lib/review/init-web/review-layout-design.js +691 -0
  62. data/lib/review/init.rb +129 -46
  63. data/lib/review/latexbuilder.rb +255 -92
  64. data/lib/review/lineinput.rb +1 -1
  65. data/lib/review/location.rb +32 -0
  66. data/lib/review/logger.rb +4 -8
  67. data/lib/review/makerhelper.rb +35 -5
  68. data/lib/review/markdownbuilder.rb +50 -38
  69. data/lib/review/md2inaobuilder.rb +3 -5
  70. data/lib/review/pdfmaker.rb +60 -57
  71. data/lib/review/plaintextbuilder.rb +154 -87
  72. data/lib/review/preprocessor.rb +20 -42
  73. data/lib/review/rstbuilder.rb +57 -38
  74. data/lib/review/sec_counter.rb +13 -0
  75. data/lib/review/textmaker.rb +23 -15
  76. data/lib/review/textutils.rb +76 -2
  77. data/lib/review/tocprinter.rb +230 -102
  78. data/lib/review/topbuilder.rb +139 -60
  79. data/lib/review/update.rb +24 -24
  80. data/lib/review/version.rb +1 -1
  81. data/lib/review/volumeprinter.rb +98 -0
  82. data/lib/review/webmaker.rb +20 -24
  83. data/lib/review/webtocprinter.rb +38 -35
  84. data/lib/review/yamlloader.rb +26 -16
  85. data/review.gemspec +6 -4
  86. data/samples/sample-book/README.md +7 -2
  87. data/samples/sample-book/src/.gitignore +154 -0
  88. data/samples/sample-book/src/config-ebook.yml +4 -0
  89. data/samples/sample-book/src/config-jlreq-ebook.yml +4 -0
  90. data/samples/sample-book/src/config-jlreq.yml +6 -0
  91. data/samples/sample-book/src/config.yml +2 -2
  92. data/samples/sample-book/src/lib/tasks/review.rake +29 -14
  93. data/samples/sample-book/src/lib/tasks/z01_copy_sty.rake +14 -8
  94. data/samples/syntax-book/Gemfile +1 -1
  95. data/samples/syntax-book/ch01.re +4 -2
  96. data/samples/syntax-book/ch02.re +8 -16
  97. data/samples/syntax-book/ch03.re +3 -6
  98. data/samples/syntax-book/config-jlreq-lualatex.yml +4 -0
  99. data/samples/syntax-book/config-jlreq.yml +5 -0
  100. data/samples/syntax-book/config-print.yml +3 -0
  101. data/samples/syntax-book/config.yml +1 -1
  102. data/samples/syntax-book/lib/tasks/review.rake +30 -15
  103. data/samples/syntax-book/lib/tasks/z01_copy_sty.rake +14 -8
  104. data/templates/latex/config.erb +39 -25
  105. data/templates/latex/layout.tex.erb +1 -0
  106. data/templates/latex/review-jlreq/README.md +3 -1
  107. data/templates/latex/review-jlreq/review-base.sty +161 -50
  108. data/templates/latex/review-jlreq/review-jlreq.cls +21 -22
  109. data/templates/latex/review-jlreq/review-style.sty +4 -1
  110. data/templates/latex/review-jsbook/README.md +46 -5
  111. data/templates/latex/review-jsbook/review-base.sty +123 -35
  112. data/templates/latex/review-jsbook/review-jsbook.cls +10 -4
  113. data/templates/latex/review-jsbook/review-style.sty +5 -2
  114. data/templates/opf/epubv3.opf.erb +1 -0
  115. data/templates/web/html/layout-html5.html.erb +3 -3
  116. data/test/assets/test_template.tex +19 -7
  117. data/test/assets/test_template_backmatter.tex +19 -7
  118. data/test/book_test_helper.rb +11 -5
  119. data/test/test_book.rb +124 -79
  120. data/test/test_book_chapter.rb +97 -54
  121. data/test/test_book_part.rb +3 -3
  122. data/test/test_builder.rb +38 -13
  123. data/test/test_catalog.rb +24 -42
  124. data/test/test_catalog_converter_cmd.rb +1 -1
  125. data/test/test_converter.rb +1 -0
  126. data/test/test_epub3maker.rb +2 -2
  127. data/test/test_epubmaker.rb +8 -0
  128. data/test/test_epubmaker_cmd.rb +14 -7
  129. data/test/test_helper.rb +18 -7
  130. data/test/test_htmlbuilder.rb +1491 -205
  131. data/test/test_htmlutils.rb +0 -12
  132. data/test/test_i18n.rb +37 -37
  133. data/test/test_idgxmlbuilder.rb +744 -42
  134. data/test/test_idgxmlmaker_cmd.rb +46 -0
  135. data/test/test_image_finder.rb +52 -70
  136. data/test/test_index.rb +94 -44
  137. data/test/test_indexbuilder.rb +52 -0
  138. data/test/test_latexbuilder.rb +1784 -161
  139. data/test/test_latexbuilder_v2.rb +671 -102
  140. data/test/test_logger.rb +17 -4
  141. data/test/test_makerhelper.rb +2 -14
  142. data/test/test_markdownbuilder.rb +137 -16
  143. data/test/test_md2inaobuilder.rb +32 -9
  144. data/test/test_pdfmaker.rb +30 -12
  145. data/test/test_pdfmaker_cmd.rb +100 -6
  146. data/test/test_plaintextbuilder.rb +791 -30
  147. data/test/test_preprocessor.rb +2 -16
  148. data/test/test_review_ext.rb +2 -1
  149. data/test/test_rstbuilder.rb +274 -27
  150. data/test/test_sec_counter.rb +156 -0
  151. data/test/test_textmaker_cmd.rb +54 -0
  152. data/test/test_textutils.rb +109 -2
  153. data/test/test_topbuilder.rb +724 -34
  154. data/test/test_update.rb +20 -11
  155. data/test/test_webtocprinter.rb +75 -43
  156. data/test/test_yamlloader.rb +13 -0
  157. data/vendor/gentombow/LICENSE +1 -1
  158. data/vendor/gentombow/Makefile +0 -1
  159. data/vendor/gentombow/bounddvi-en.pdf +0 -0
  160. data/vendor/gentombow/bounddvi-en.tex +1 -0
  161. data/vendor/gentombow/bounddvi.pdf +0 -0
  162. data/vendor/gentombow/bounddvi.sty +30 -7
  163. data/vendor/gentombow/bounddvi.tex +1 -0
  164. data/vendor/gentombow/create_archive.sh +1 -0
  165. data/vendor/gentombow/gentombow-ja.pdf +0 -0
  166. data/vendor/gentombow/gentombow-ja.tex +9 -0
  167. data/vendor/gentombow/gentombow.pdf +0 -0
  168. data/vendor/gentombow/gentombow.sty +32 -10
  169. data/vendor/gentombow/gentombow.tex +8 -0
  170. data/vendor/gentombow/tests/gentombow-01-pdfx.tex +8 -0
  171. data/vendor/gentombow/tests/gentombow-02-pdfx.tex +8 -0
  172. data/vendor/jsclasses/LICENSE +1 -1
  173. data/vendor/jsclasses/Makefile +3 -2
  174. data/vendor/jsclasses/create_archive.sh +5 -5
  175. data/vendor/jsclasses/jis/Makefile +3 -2
  176. data/vendor/jsclasses/jis/jsarticle.cls +74 -31
  177. data/vendor/jsclasses/jis/jsbook.cls +74 -31
  178. data/vendor/jsclasses/jis/jsclasses.dtx +176 -36
  179. data/vendor/jsclasses/jis/jsclasses.ins +15 -5
  180. data/vendor/jsclasses/jis/jslogo.dtx +4 -4
  181. data/vendor/jsclasses/jis/jslogo.ins +9 -0
  182. data/vendor/jsclasses/jis/jslogo.sty +4 -16
  183. data/vendor/jsclasses/jis/jspf.cls +73 -30
  184. data/vendor/jsclasses/jis/jsreport.cls +74 -31
  185. data/vendor/jsclasses/jis/jsverb.ins +9 -0
  186. data/vendor/jsclasses/jis/jsverb.sty +1 -13
  187. data/vendor/jsclasses/jis/kiyou.cls +74 -31
  188. data/vendor/jsclasses/jis/minijs.sty +65 -22
  189. data/vendor/jsclasses/jis/okumacro.dtx +4 -5
  190. data/vendor/jsclasses/jis/okumacro.ins +9 -0
  191. data/vendor/jsclasses/jis/okumacro.sty +4 -17
  192. data/vendor/jsclasses/jis/okuverb.ins +9 -0
  193. data/vendor/jsclasses/jis/okuverb.sty +1 -13
  194. data/vendor/jsclasses/jis/winjis.sty +23 -19
  195. data/vendor/jsclasses/jsarticle.cls +74 -31
  196. data/vendor/jsclasses/jsbook.cls +74 -31
  197. data/vendor/jsclasses/jsclasses.dtx +176 -36
  198. data/vendor/jsclasses/jsclasses.ins +15 -5
  199. data/vendor/jsclasses/jsclasses.pdf +0 -0
  200. data/vendor/jsclasses/jslogo.dtx +4 -4
  201. data/vendor/jsclasses/jslogo.ins +9 -0
  202. data/vendor/jsclasses/jslogo.pdf +0 -0
  203. data/vendor/jsclasses/jslogo.sty +4 -16
  204. data/vendor/jsclasses/jspf.cls +73 -30
  205. data/vendor/jsclasses/jsreport.cls +74 -31
  206. data/vendor/jsclasses/jsverb.ins +9 -0
  207. data/vendor/jsclasses/jsverb.pdf +0 -0
  208. data/vendor/jsclasses/jsverb.sty +1 -13
  209. data/vendor/jsclasses/kiyou.cls +74 -31
  210. data/vendor/jsclasses/minijs.sty +68 -22
  211. data/vendor/jsclasses/okumacro.dtx +4 -5
  212. data/vendor/jsclasses/okumacro.ins +9 -0
  213. data/vendor/jsclasses/okumacro.pdf +0 -0
  214. data/vendor/jsclasses/okumacro.sty +4 -17
  215. data/vendor/jsclasses/okuverb.ins +9 -0
  216. data/vendor/jsclasses/okuverb.pdf +0 -0
  217. data/vendor/jsclasses/okuverb.sty +1 -13
  218. data/vendor/jsclasses/tests/relfont.tex +10 -0
  219. data/vendor/jsclasses/winjis.sty +23 -19
  220. metadata +65 -12
  221. data/.rubocop_todo.yml +0 -7
  222. data/lib/review/book/compilable.rb +0 -173
  223. data/lib/review/tocparser.rb +0 -271
  224. data/samples/syntax-book/review-ext.rb +0 -14
  225. data/test/test_tocparser.rb +0 -25
@@ -252,6 +252,9 @@ The paper size (\verb+/MediaBox+) is also corrected.
252
252
  \item \verb+/BleedBox+: paper size plus bleed margin.
253
253
  \item \verb+/CropBox+ and \verb+/ArtBox+ are not set.
254
254
  \end{itemize}
255
+ Note: if the package \textsf{pdfx} is loaded with PDF/X mode,
256
+ this optional feature is automatically enabled.
257
+ Also, \verb+/CropBox+ is set explicitly.
255
258
 
256
259
  \section{Additional Notes}
257
260
 
@@ -277,6 +280,10 @@ conflict with the feature of \textsf{gentombow} package.
277
280
  To set page layout correctly, you should adjust \verb+\oddsidemargin+
278
281
  or \verb+\topmargin+, or leave it to \textsf{geometry} package.
279
282
 
283
+ Note: since the package \textsf{geometry} also has a feature to
284
+ change the paper size (\verb+\paperwidth+, \verb+\paperheight+),
285
+ please load \textsf{gentombow} after \textsf{geometry}.
286
+
280
287
  \section*{Change History}
281
288
 
282
289
  \begin{itemize}
@@ -293,6 +300,7 @@ or \verb+\topmargin+, or leave it to \textsf{geometry} package.
293
300
  also with \verb+pdfbox+ option.
294
301
  Fix a bug that \verb+\settombowbleed+ is not
295
302
  considered by \verb+/TrimBox+.
303
+ \item 2019/07/21 v0.9k Support \textsf{pdfx} package.
296
304
  \end{itemize}
297
305
 
298
306
  \end{document}
@@ -0,0 +1,8 @@
1
+ %#!pdflatex
2
+ \documentclass[a4paper]{article}
3
+ \usepackage{gentombow}
4
+ \usepackage[x-1a]{pdfx}
5
+ \begin{document}
6
+ \noindent A\hfill B\clearpage
7
+ \noindent C\hfill D
8
+ \end{document}
@@ -0,0 +1,8 @@
1
+ %#!pdflatex
2
+ \documentclass[a4paper]{article}
3
+ \usepackage[x-1a]{pdfx}
4
+ \usepackage{gentombow}
5
+ \begin{document}
6
+ \noindent A\hfill B\clearpage
7
+ \noindent C\hfill D
8
+ \end{document}
@@ -1,6 +1,6 @@
1
1
  Copyright 1995-1999 ASCII MEDIA WORKS
2
2
  Copyright 1999-2016 Haruhiko Okumura
3
- Copyright 2016-2018 Japanese TeX Development Community
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
@@ -3,14 +3,15 @@ DOCTARGET = jsclasses jslogo okumacro jsverb okuverb
3
3
  PDFTARGET = $(addsuffix .pdf,$(DOCTARGET))
4
4
  DVITARGET = $(addsuffix .dvi,$(DOCTARGET))
5
5
  KANJI = -kanji=utf8
6
- FONTMAP = -f ipaex.map -f ptex-ipaex.map
6
+ FONTMAP = -f haranoaji.map -f ptex-haranoaji.map
7
7
  TEXMF = $(shell kpsewhich -var-value=TEXMFHOME)
8
8
 
9
9
  default: $(STRIPTARGET) $(DVITARGET)
10
10
  strip: $(STRIPTARGET)
11
11
  all: $(STRIPTARGET) $(PDFTARGET)
12
12
 
13
- JSCLASSES = jsarticle.cls jsbook.cls jsreport.cls jspf.cls kiyou.cls
13
+ JSCLASSES = jsarticle.cls jsbook.cls jsreport.cls jspf.cls kiyou.cls \
14
+ minijs.sty
14
15
 
15
16
  # for generating files, we use pdflatex incidentally.
16
17
  # otherwise, ptexenc might convert U+2212 -> U+FF0D in okumacro.sty
@@ -14,8 +14,8 @@ echo " * Create $PROJECT.tds.zip"
14
14
  git archive --format=tar --prefix=$PROJECT/ HEAD | (cd $TMP && tar xf -)
15
15
  rm $TMP/$PROJECT/.gitignore
16
16
  rm $TMP/$PROJECT/create_archive.sh
17
- rm -f $TMP/$PROJECT/jis/*
18
- rmdir $TMP/$PROJECT/jis
17
+ rm -rf $TMP/$PROJECT/tests
18
+ rm -rf $TMP/$PROJECT/jis
19
19
  perl -pi.bak -e "s/\\\$RELEASEDATE/$RELEASEDATE/g" $TMP/$PROJECT/README.md
20
20
  rm -f $TMP/$PROJECT/README.md.bak
21
21
 
@@ -46,10 +46,10 @@ git archive --format=tar --prefix=$PROJECT/ HEAD | (cd $TMP && tar xf -)
46
46
  # winjis.sty should be removed for CTAN
47
47
  rm $TMP/$PROJECT/.gitignore
48
48
  rm $TMP/$PROJECT/create_archive.sh
49
- rm -f $TMP/$PROJECT/jis/*
50
- rmdir $TMP/$PROJECT/jis
49
+ rm -rf $TMP/$PROJECT/tests
50
+ rm -rf $TMP/$PROJECT/jis
51
51
  rm $TMP/$PROJECT/*.cls
52
- ls $TMP/$PROJECT/*.sty | grep -v minijs.sty | xargs rm
52
+ rm $TMP/$PROJECT/*.sty
53
53
  perl -pi.bak -e "s/\\\$RELEASEDATE/$RELEASEDATE/g" $TMP/$PROJECT/README.md
54
54
  rm -f $TMP/$PROJECT/README.md.bak
55
55
 
@@ -3,14 +3,15 @@ DOCTARGET = jsclasses jslogo okumacro jsverb okuverb
3
3
  PDFTARGET = $(addsuffix .pdf,$(DOCTARGET))
4
4
  DVITARGET = $(addsuffix .dvi,$(DOCTARGET))
5
5
  KANJI = -kanji=jis
6
- FONTMAP = -f ipaex.map -f ptex-ipaex.map
6
+ FONTMAP = -f haranoaji.map -f ptex-haranoaji.map
7
7
  TEXMF = $(shell kpsewhich -var-value=TEXMFHOME)
8
8
 
9
9
  default: $(STRIPTARGET) $(DVITARGET)
10
10
  strip: $(STRIPTARGET)
11
11
  all: $(STRIPTARGET) $(PDFTARGET)
12
12
 
13
- JSCLASSES = jsarticle.cls jsbook.cls jsreport.cls jspf.cls kiyou.cls
13
+ JSCLASSES = jsarticle.cls jsbook.cls jsreport.cls jspf.cls kiyou.cls \
14
+ minijs.sty
14
15
 
15
16
  jsarticle.cls: jsclasses.dtx
16
17
  platex $(KANJI) jsclasses.ins
@@ -4,25 +4,13 @@
4
4
  %%
5
5
  %% The original source files were:
6
6
  %%
7
- %% jsclasses.dtx (with options: `article')
7
+ %% jsclasses.dtx (with options: `class,article')
8
8
  %%
9
- %% IMPORTANT NOTICE:
9
+ %% Maintained on GitHub: https://github.com/texjporg/jsclasses
10
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 jsarticle.cls.
15
- %%
16
- %% For distribution of the original source see the terms
17
- %% for copying and modification in the file jsclasses.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
11
  \NeedsTeXFormat{pLaTeX2e}
24
12
  \ProvidesClass{jsarticle}
25
- [2018/06/23 jsclasses (okumura, texjporg)]
13
+ [2020/10/09 jsclasses (okumura, texjporg)]
26
14
  \def\jsc@clsname{jsarticle}
27
15
  \newif\ifjsc@needsp@tch
28
16
  \jsc@needsp@tchfalse
@@ -256,10 +244,11 @@
256
244
  \fi
257
245
  \ifpapersize
258
246
  \iftombow
259
- \AtBeginDvi{\special{papersize=\the\stockwidth,\the\stockheight}}
247
+ \edef\jsc@papersize@special{papersize=\the\stockwidth,\the\stockheight}
260
248
  \else
261
- \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
249
+ \edef\jsc@papersize@special{papersize=\the\paperwidth,\the\paperheight}
262
250
  \fi
251
+ \AtBeginDvi{\special{\jsc@papersize@special}}
263
252
  \fi
264
253
  \if@slide\def\n@baseline{13}\else\def\n@baseline{16}\fi
265
254
  \newdimen\jsc@mpt
@@ -460,6 +449,11 @@
460
449
  \DeclareFontShape{\jsc@JTn}{gt}{m}{sl}{<->ssub*gt/m/n}{}
461
450
  \DeclareFontShape{\jsc@JTn}{mc}{bx}{it}{<->ssub*gt/m/n}{}
462
451
  \DeclareFontShape{\jsc@JTn}{mc}{bx}{sl}{<->ssub*gt/m/n}{}
452
+ %% ad-hoc "relation font"
453
+ \@ifl@t@r\fmtversion{2020/10/01}
454
+ {\jsc@needsp@tchfalse}{\jsc@needsp@tchtrue}
455
+ \ifjsc@needsp@tch % --- for 2020-02-02 or older BEGIN
456
+ \ifx\@rmfamilyhook\@undefined % old
463
457
  \DeclareRobustCommand\rmfamily
464
458
  {\not@math@alphabet\rmfamily\mathrm
465
459
  \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont}
@@ -469,6 +463,33 @@
469
463
  \DeclareRobustCommand\ttfamily
470
464
  {\not@math@alphabet\ttfamily\mathtt
471
465
  \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
466
+ \AtBeginDocument{%
467
+ \ifx\mweights@init\@undefined\else % mweights.sty is loaded
468
+ % my definitions above should have been overwritten, recover it!
469
+ % \selectfont is executed twice but I don't care about speed...
470
+ \expandafter\g@addto@macro\csname rmfamily \endcsname
471
+ {\kanjifamily\mcdefault\selectfont}%
472
+ \expandafter\g@addto@macro\csname sffamily \endcsname
473
+ {\kanjifamily\gtdefault\selectfont}%
474
+ \expandafter\g@addto@macro\csname ttfamily \endcsname
475
+ {\kanjifamily\gtdefault\selectfont}%
476
+ \fi}
477
+ \else % 2020-02-02
478
+ \g@addto@macro\@rmfamilyhook
479
+ {\prepare@family@series@update@kanji{mc}\mcdefault}
480
+ \g@addto@macro\@sffamilyhook
481
+ {\prepare@family@series@update@kanji{gt}\gtdefault}
482
+ \g@addto@macro\@ttfamilyhook
483
+ {\prepare@family@series@update@kanji{gt}\gtdefault}
484
+ \fi
485
+ \else % --- for 2020-02-02 or older END & for 2020-10-01 BEGIN
486
+ \AddToHook{rmfamily}%
487
+ {\prepare@family@series@update@kanji{mc}\mcdefault}
488
+ \AddToHook{sffamily}%
489
+ {\prepare@family@series@update@kanji{gt}\gtdefault}
490
+ \AddToHook{ttfamily}%
491
+ {\prepare@family@series@update@kanji{gt}\gtdefault}
492
+ \fi % --- for 2020-10-01 END
472
493
  \ifx\DeclareFixJFMCJKTextFontCommand\@undefined
473
494
  \DeclareRobustCommand\textmc[1]{%
474
495
  \relax\ifmmode \expandafter\nfss@text \fi{\mcfamily #1}}
@@ -677,6 +698,7 @@
677
698
  \xspcode`^^fe=3
678
699
  \xspcode`^^ff=3
679
700
  \def\@{\spacefactor3000{}}
701
+ %% \@setfontsize with \parindent and \(x)kanjiskip settings
680
702
  \def\@setfontsize#1#2#3{%
681
703
  \ifx\protect\@typeset@protect
682
704
  \let\@currsize#1%
@@ -694,7 +716,8 @@
694
716
  \if@slide \xkanjiskip=0.1em \else
695
717
  \xkanjiskip=0.25em plus 0.15em minus 0.06em
696
718
  \fi
697
- \fi}
719
+ \fi
720
+ }
698
721
  \def\jsc@setfontsize#1#2#3{%
699
722
  \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}}
700
723
  \emergencystretch 3zw
@@ -725,6 +748,7 @@
725
748
  \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
726
749
  \belowdisplayshortskip \belowdisplayskip
727
750
  \let\@listi\@listI}
751
+ %% initialize
728
752
  \normalsize
729
753
  \setbox0\hbox{\char\jis"3441}%
730
754
  \setlength\Cht{\ht0}
@@ -1370,11 +1394,11 @@
1370
1394
  \renewcommand{\theenumiii}{\@roman\c@enumiii}
1371
1395
  \renewcommand{\theenumiv}{\@Alph\c@enumiv}
1372
1396
  \newcommand{\labelenumi}{\theenumi.}
1373
- \newcommand{\labelenumii}{\inhibitglue$B!J(B\theenumii$B!K(B\inhibitglue}
1397
+ \newcommand{\labelenumii}{\inhibitglue $B!J(B\theenumii $B!K(B\inhibitglue}
1374
1398
  \newcommand{\labelenumiii}{\theenumiii.}
1375
1399
  \newcommand{\labelenumiv}{\theenumiv.}
1376
1400
  \renewcommand{\p@enumii}{\theenumi}
1377
- \renewcommand{\p@enumiii}{\theenumi\inhibitglue$B!J(B\theenumii$B!K(B}
1401
+ \renewcommand{\p@enumiii}{\theenumi\inhibitglue $B!J(B\theenumii $B!K(B}
1378
1402
  \renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
1379
1403
  \newcommand\labelitemi{\textbullet}
1380
1404
  \newcommand\labelitemii{\normalfont\bfseries \textendash}
@@ -1519,7 +1543,7 @@
1519
1543
  \vskip\abovecaptionskip
1520
1544
  \sbox\@tempboxa{#1\hskip1zw\relax #2}%
1521
1545
  \ifdim \wd\@tempboxa <\hsize \centering \fi
1522
- #1\hskip1zw\relax #2\par
1546
+ #1{\hskip1zw\relax}#2\par
1523
1547
  \vskip\belowcaptionskip}}
1524
1548
  \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
1525
1549
  \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
@@ -1885,23 +1909,42 @@
1885
1909
  \def\$B@>Nq(B{\$B@>Nq(Btrue}
1886
1910
  \def\$BOBNq(B{\$B@>Nq(Bfalse}
1887
1911
  \newcount\heisei \heisei\year \advance\heisei-1988\relax
1912
+ \def\pltx@today@year@#1{%
1913
+ \ifnum\numexpr\year-#1=1 $B85(B\else
1914
+ \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi
1915
+ \kansuji\numexpr\year-#1\relax
1916
+ \else
1917
+ \number\numexpr\year-#1\relax\nobreak
1918
+ \fi
1919
+ \fi $BG/(B
1920
+ }
1921
+ \def\pltx@today@year{%
1922
+ \ifnum\numexpr\year*10000+\month*100+\day<19890108
1923
+ $B><OB(B\pltx@today@year@{1925}%
1924
+ \else\ifnum\numexpr\year*10000+\month*100+\day<20190501
1925
+ $BJ?@.(B\pltx@today@year@{1988}%
1926
+ \else
1927
+ $BNaOB(B\pltx@today@year@{2018}%
1928
+ \fi\fi}
1888
1929
  \def\today{%
1889
1930
  \if@english
1890
1931
  \ifcase\month\or
1891
1932
  January\or February\or March\or April\or May\or June\or
1892
1933
  July\or August\or September\or October\or November\or December\fi
1893
1934
  \space\number\day, \number\year
1935
+ \else\if$B@>Nq(B
1936
+ \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi \kansuji\year
1937
+ \else\number\year\nobreak\fi $BG/(B
1894
1938
  \else
1895
- \if$B@>Nq(B
1896
- \number\year $BG/(B
1897
- \number\month $B7n(B
1898
- \number\day $BF|(B
1899
- \else
1900
- $BJ?@.(B\number\heisei $BG/(B
1901
- \number\month $B7n(B
1902
- \number\day $BF|(B
1903
- \fi
1904
- \fi}
1939
+ \pltx@today@year
1940
+ \fi
1941
+ \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi
1942
+ \kansuji\month $B7n(B
1943
+ \kansuji\day $BF|(B
1944
+ \else
1945
+ \number\month\nobreak $B7n(B
1946
+ \number\day\nobreak $BF|(B
1947
+ \fi\fi}
1905
1948
  \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
1906
1949
  \if@slide \pagestyle{empty} \else \pagestyle{plain} \fi
1907
1950
  \pagenumbering{arabic}
@@ -4,25 +4,13 @@
4
4
  %%
5
5
  %% The original source files were:
6
6
  %%
7
- %% jsclasses.dtx (with options: `book')
7
+ %% jsclasses.dtx (with options: `class,book')
8
8
  %%
9
- %% IMPORTANT NOTICE:
9
+ %% Maintained on GitHub: https://github.com/texjporg/jsclasses
10
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 jsbook.cls.
15
- %%
16
- %% For distribution of the original source see the terms
17
- %% for copying and modification in the file jsclasses.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
11
  \NeedsTeXFormat{pLaTeX2e}
24
12
  \ProvidesClass{jsbook}
25
- [2018/06/23 jsclasses (okumura, texjporg)]
13
+ [2020/10/09 jsclasses (okumura, texjporg)]
26
14
  \def\jsc@clsname{jsbook}
27
15
  \newif\ifjsc@needsp@tch
28
16
  \jsc@needsp@tchfalse
@@ -261,10 +249,11 @@
261
249
  \fi
262
250
  \ifpapersize
263
251
  \iftombow
264
- \AtBeginDvi{\special{papersize=\the\stockwidth,\the\stockheight}}
252
+ \edef\jsc@papersize@special{papersize=\the\stockwidth,\the\stockheight}
265
253
  \else
266
- \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
254
+ \edef\jsc@papersize@special{papersize=\the\paperwidth,\the\paperheight}
267
255
  \fi
256
+ \AtBeginDvi{\special{\jsc@papersize@special}}
268
257
  \fi
269
258
  \if@slide\def\n@baseline{13}\else\def\n@baseline{16}\fi
270
259
  \newdimen\jsc@mpt
@@ -465,6 +454,11 @@
465
454
  \DeclareFontShape{\jsc@JTn}{gt}{m}{sl}{<->ssub*gt/m/n}{}
466
455
  \DeclareFontShape{\jsc@JTn}{mc}{bx}{it}{<->ssub*gt/m/n}{}
467
456
  \DeclareFontShape{\jsc@JTn}{mc}{bx}{sl}{<->ssub*gt/m/n}{}
457
+ %% ad-hoc "relation font"
458
+ \@ifl@t@r\fmtversion{2020/10/01}
459
+ {\jsc@needsp@tchfalse}{\jsc@needsp@tchtrue}
460
+ \ifjsc@needsp@tch % --- for 2020-02-02 or older BEGIN
461
+ \ifx\@rmfamilyhook\@undefined % old
468
462
  \DeclareRobustCommand\rmfamily
469
463
  {\not@math@alphabet\rmfamily\mathrm
470
464
  \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont}
@@ -474,6 +468,33 @@
474
468
  \DeclareRobustCommand\ttfamily
475
469
  {\not@math@alphabet\ttfamily\mathtt
476
470
  \romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
471
+ \AtBeginDocument{%
472
+ \ifx\mweights@init\@undefined\else % mweights.sty is loaded
473
+ % my definitions above should have been overwritten, recover it!
474
+ % \selectfont is executed twice but I don't care about speed...
475
+ \expandafter\g@addto@macro\csname rmfamily \endcsname
476
+ {\kanjifamily\mcdefault\selectfont}%
477
+ \expandafter\g@addto@macro\csname sffamily \endcsname
478
+ {\kanjifamily\gtdefault\selectfont}%
479
+ \expandafter\g@addto@macro\csname ttfamily \endcsname
480
+ {\kanjifamily\gtdefault\selectfont}%
481
+ \fi}
482
+ \else % 2020-02-02
483
+ \g@addto@macro\@rmfamilyhook
484
+ {\prepare@family@series@update@kanji{mc}\mcdefault}
485
+ \g@addto@macro\@sffamilyhook
486
+ {\prepare@family@series@update@kanji{gt}\gtdefault}
487
+ \g@addto@macro\@ttfamilyhook
488
+ {\prepare@family@series@update@kanji{gt}\gtdefault}
489
+ \fi
490
+ \else % --- for 2020-02-02 or older END & for 2020-10-01 BEGIN
491
+ \AddToHook{rmfamily}%
492
+ {\prepare@family@series@update@kanji{mc}\mcdefault}
493
+ \AddToHook{sffamily}%
494
+ {\prepare@family@series@update@kanji{gt}\gtdefault}
495
+ \AddToHook{ttfamily}%
496
+ {\prepare@family@series@update@kanji{gt}\gtdefault}
497
+ \fi % --- for 2020-10-01 END
477
498
  \ifx\DeclareFixJFMCJKTextFontCommand\@undefined
478
499
  \DeclareRobustCommand\textmc[1]{%
479
500
  \relax\ifmmode \expandafter\nfss@text \fi{\mcfamily #1}}
@@ -682,6 +703,7 @@
682
703
  \xspcode`^^fe=3
683
704
  \xspcode`^^ff=3
684
705
  \def\@{\spacefactor3000{}}
706
+ %% \@setfontsize with \parindent and \(x)kanjiskip settings
685
707
  \def\@setfontsize#1#2#3{%
686
708
  \ifx\protect\@typeset@protect
687
709
  \let\@currsize#1%
@@ -699,7 +721,8 @@
699
721
  \if@slide \xkanjiskip=0.1em \else
700
722
  \xkanjiskip=0.25em plus 0.15em minus 0.06em
701
723
  \fi
702
- \fi}
724
+ \fi
725
+ }
703
726
  \def\jsc@setfontsize#1#2#3{%
704
727
  \@setfontsize#1{#2\jsc@mpt}{#3\jsc@mpt}}
705
728
  \emergencystretch 3zw
@@ -730,6 +753,7 @@
730
753
  \belowdisplayskip 9\jsc@mpt \@plus3\jsc@mpt \@minus4\jsc@mpt
731
754
  \belowdisplayshortskip \belowdisplayskip
732
755
  \let\@listi\@listI}
756
+ %% initialize
733
757
  \normalsize
734
758
  \setbox0\hbox{\char\jis"3441}%
735
759
  \setlength\Cht{\ht0}
@@ -1477,11 +1501,11 @@
1477
1501
  \renewcommand{\theenumiii}{\@roman\c@enumiii}
1478
1502
  \renewcommand{\theenumiv}{\@Alph\c@enumiv}
1479
1503
  \newcommand{\labelenumi}{\theenumi.}
1480
- \newcommand{\labelenumii}{\inhibitglue$B!J(B\theenumii$B!K(B\inhibitglue}
1504
+ \newcommand{\labelenumii}{\inhibitglue $B!J(B\theenumii $B!K(B\inhibitglue}
1481
1505
  \newcommand{\labelenumiii}{\theenumiii.}
1482
1506
  \newcommand{\labelenumiv}{\theenumiv.}
1483
1507
  \renewcommand{\p@enumii}{\theenumi}
1484
- \renewcommand{\p@enumiii}{\theenumi\inhibitglue$B!J(B\theenumii$B!K(B}
1508
+ \renewcommand{\p@enumiii}{\theenumi\inhibitglue $B!J(B\theenumii $B!K(B}
1485
1509
  \renewcommand{\p@enumiv}{\p@enumiii\theenumiii}
1486
1510
  \newcommand\labelitemi{\textbullet}
1487
1511
  \newcommand\labelitemii{\normalfont\bfseries \textendash}
@@ -1588,7 +1612,7 @@
1588
1612
  \vskip\abovecaptionskip
1589
1613
  \sbox\@tempboxa{#1\hskip1zw\relax #2}%
1590
1614
  \ifdim \wd\@tempboxa <\hsize \centering \fi
1591
- #1\hskip1zw\relax #2\par
1615
+ #1{\hskip1zw\relax}#2\par
1592
1616
  \vskip\belowcaptionskip}}
1593
1617
  \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc}
1594
1618
  \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt}
@@ -1976,23 +2000,42 @@
1976
2000
  \def\$B@>Nq(B{\$B@>Nq(Btrue}
1977
2001
  \def\$BOBNq(B{\$B@>Nq(Bfalse}
1978
2002
  \newcount\heisei \heisei\year \advance\heisei-1988\relax
2003
+ \def\pltx@today@year@#1{%
2004
+ \ifnum\numexpr\year-#1=1 $B85(B\else
2005
+ \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi
2006
+ \kansuji\numexpr\year-#1\relax
2007
+ \else
2008
+ \number\numexpr\year-#1\relax\nobreak
2009
+ \fi
2010
+ \fi $BG/(B
2011
+ }
2012
+ \def\pltx@today@year{%
2013
+ \ifnum\numexpr\year*10000+\month*100+\day<19890108
2014
+ $B><OB(B\pltx@today@year@{1925}%
2015
+ \else\ifnum\numexpr\year*10000+\month*100+\day<20190501
2016
+ $BJ?@.(B\pltx@today@year@{1988}%
2017
+ \else
2018
+ $BNaOB(B\pltx@today@year@{2018}%
2019
+ \fi\fi}
1979
2020
  \def\today{%
1980
2021
  \if@english
1981
2022
  \ifcase\month\or
1982
2023
  January\or February\or March\or April\or May\or June\or
1983
2024
  July\or August\or September\or October\or November\or December\fi
1984
2025
  \space\number\day, \number\year
2026
+ \else\if$B@>Nq(B
2027
+ \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi \kansuji\year
2028
+ \else\number\year\nobreak\fi $BG/(B
1985
2029
  \else
1986
- \if$B@>Nq(B
1987
- \number\year $BG/(B
1988
- \number\month $B7n(B
1989
- \number\day $BF|(B
1990
- \else
1991
- $BJ?@.(B\number\heisei $BG/(B
1992
- \number\month $B7n(B
1993
- \number\day $BF|(B
1994
- \fi
1995
- \fi}
2030
+ \pltx@today@year
2031
+ \fi
2032
+ \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi
2033
+ \kansuji\month $B7n(B
2034
+ \kansuji\day $BF|(B
2035
+ \else
2036
+ \number\month\nobreak $B7n(B
2037
+ \number\day\nobreak $BF|(B
2038
+ \fi\fi}
1996
2039
  \hyphenation{ado-be post-script ghost-script phe-nom-e-no-log-i-cal man-u-script}
1997
2040
  \if@report \pagestyle{plain} \else \pagestyle{headings} \fi
1998
2041
  \pagenumbering{arabic}