review-peg 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +36 -0
  3. data/.rubocop.yml +47 -0
  4. data/.rubocop_todo.yml +605 -0
  5. data/.travis.yml +18 -0
  6. data/COPYING +515 -0
  7. data/ChangeLog +2449 -0
  8. data/Dockerfile +22 -0
  9. data/Gemfile +6 -0
  10. data/README.rdoc +81 -0
  11. data/Rakefile +51 -0
  12. data/bin/review-catalog-converter-peg +129 -0
  13. data/bin/review-check-peg +169 -0
  14. data/bin/review-checkdep-peg +63 -0
  15. data/bin/review-compile-peg +202 -0
  16. data/bin/review-epubmaker-legacy-peg +1024 -0
  17. data/bin/review-epubmaker-peg +44 -0
  18. data/bin/review-index-peg +110 -0
  19. data/bin/review-init-peg +151 -0
  20. data/bin/review-pdfmaker-peg +18 -0
  21. data/bin/review-preproc-peg +131 -0
  22. data/bin/review-validate-peg +51 -0
  23. data/bin/review-vol-peg +100 -0
  24. data/debian/README.Debian +12 -0
  25. data/debian/README.source +5 -0
  26. data/debian/changelog +5 -0
  27. data/debian/compat +1 -0
  28. data/debian/control +22 -0
  29. data/debian/copyright +62 -0
  30. data/debian/docs +6 -0
  31. data/debian/manpage.1.ex +59 -0
  32. data/debian/patches/path.diff +91 -0
  33. data/debian/patches/series +1 -0
  34. data/debian/review.install +13 -0
  35. data/debian/review.links +4 -0
  36. data/debian/rules +13 -0
  37. data/debian/source/format +1 -0
  38. data/doc/NEWS.ja.md +350 -0
  39. data/doc/NEWS.md +354 -0
  40. data/doc/catalog.ja.md +53 -0
  41. data/doc/catalog.md +52 -0
  42. data/doc/format.ja.md +734 -0
  43. data/doc/format.md +746 -0
  44. data/doc/format_idg.ja.md +203 -0
  45. data/doc/quickstart.ja.md +222 -0
  46. data/doc/quickstart.md +252 -0
  47. data/doc/ruby-uuid/README +11 -0
  48. data/doc/ruby-uuid/README.ja +34 -0
  49. data/doc/sample.css +108 -0
  50. data/doc/sample.yml +238 -0
  51. data/lib/epubmaker.rb +24 -0
  52. data/lib/epubmaker/content.rb +93 -0
  53. data/lib/epubmaker/epubcommon.rb +424 -0
  54. data/lib/epubmaker/epubv2.rb +139 -0
  55. data/lib/epubmaker/epubv3.rb +222 -0
  56. data/lib/epubmaker/producer.rb +330 -0
  57. data/lib/lineinput.rb +107 -0
  58. data/lib/review.rb +3 -0
  59. data/lib/review/book.rb +43 -0
  60. data/lib/review/book/base.rb +401 -0
  61. data/lib/review/book/chapter.rb +100 -0
  62. data/lib/review/book/compilable.rb +184 -0
  63. data/lib/review/book/image_finder.rb +71 -0
  64. data/lib/review/book/index.rb +413 -0
  65. data/lib/review/book/page_metric.rb +47 -0
  66. data/lib/review/book/part.rb +54 -0
  67. data/lib/review/book/volume.rb +67 -0
  68. data/lib/review/builder.rb +452 -0
  69. data/lib/review/catalog.rb +52 -0
  70. data/lib/review/compiler.rb +5183 -0
  71. data/lib/review/compiler/literals_1_9.kpeg +22 -0
  72. data/lib/review/compiler/literals_1_9.rb +435 -0
  73. data/lib/review/configure.rb +64 -0
  74. data/lib/review/epubbuilder.rb +18 -0
  75. data/lib/review/epubmaker.rb +480 -0
  76. data/lib/review/ewbbuilder.rb +381 -0
  77. data/lib/review/exception.rb +21 -0
  78. data/lib/review/extentions.rb +4 -0
  79. data/lib/review/extentions/array.rb +25 -0
  80. data/lib/review/extentions/object.rb +9 -0
  81. data/lib/review/extentions/string.rb +33 -0
  82. data/lib/review/htmlbuilder.rb +1166 -0
  83. data/lib/review/htmllayout.rb +41 -0
  84. data/lib/review/htmltoc.rb +45 -0
  85. data/lib/review/htmlutils.rb +90 -0
  86. data/lib/review/i18n.rb +96 -0
  87. data/lib/review/i18n.yml +169 -0
  88. data/lib/review/idgxmlbuilder.rb +1233 -0
  89. data/lib/review/inaobuilder.rb +357 -0
  90. data/lib/review/latexbuilder.rb +941 -0
  91. data/lib/review/latexindex.rb +35 -0
  92. data/lib/review/latexutils.rb +95 -0
  93. data/lib/review/layout.tex.erb +340 -0
  94. data/lib/review/lineinput.rb +17 -0
  95. data/lib/review/location.rb +24 -0
  96. data/lib/review/makerhelper.rb +67 -0
  97. data/lib/review/markdownbuilder.rb +339 -0
  98. data/lib/review/node.rb +288 -0
  99. data/lib/review/pdfmaker.rb +332 -0
  100. data/lib/review/preprocessor.rb +530 -0
  101. data/lib/review/review.kpeg +745 -0
  102. data/lib/review/sec_counter.rb +69 -0
  103. data/lib/review/template.rb +21 -0
  104. data/lib/review/textbuilder.rb +17 -0
  105. data/lib/review/textutils.rb +16 -0
  106. data/lib/review/tocparser.rb +348 -0
  107. data/lib/review/tocprinter.rb +205 -0
  108. data/lib/review/topbuilder.rb +796 -0
  109. data/lib/review/unfold.rb +138 -0
  110. data/lib/review/version.rb +3 -0
  111. data/lib/uuid.rb +312 -0
  112. data/review.gemspec +32 -0
  113. data/templates/html/layout-html5.html.erb +17 -0
  114. data/templates/html/layout-xhtml1.html.erb +20 -0
  115. data/templates/ncx/epubv2.ncx.erb +11 -0
  116. data/templates/opf/epubv2.opf.erb +21 -0
  117. data/templates/opf/epubv3.opf.erb +18 -0
  118. data/templates/xml/container.xml.erb +6 -0
  119. data/test/CHAPS +2 -0
  120. data/test/assets/test.xml.erb +3 -0
  121. data/test/assets/test_template.tex +255 -0
  122. data/test/assets/test_template_backmatter.tex +32 -0
  123. data/test/bib.re +13 -0
  124. data/test/book_test_helper.rb +35 -0
  125. data/test/sample-book/README.md +7 -0
  126. data/test/sample-book/src/Rakefile +58 -0
  127. data/test/sample-book/src/_cover.html +3 -0
  128. data/test/sample-book/src/catalog.yml +10 -0
  129. data/test/sample-book/src/ch01.re +71 -0
  130. data/test/sample-book/src/ch02.re +3 -0
  131. data/test/sample-book/src/config.yml +186 -0
  132. data/test/sample-book/src/images/ch01-imgsample.jpg +0 -0
  133. data/test/sample-book/src/images/cover.jpg +0 -0
  134. data/test/sample-book/src/preface.re +15 -0
  135. data/test/sample-book/src/sty/jumoline.sty +310 -0
  136. data/test/sample-book/src/sty/reviewmacro.sty +39 -0
  137. data/test/sample-book/src/style.css +251 -0
  138. data/test/sample-book/src/vendor/jumoline/README +29 -0
  139. data/test/sample-book/src/vendor/jumoline/jumoline.dtx +2988 -0
  140. data/test/sample-book/src/vendor/jumoline/jumoline.ins +6 -0
  141. data/test/test.re +43 -0
  142. data/test/test_book.rb +556 -0
  143. data/test/test_book_chapter.rb +280 -0
  144. data/test/test_book_part.rb +54 -0
  145. data/test/test_builder.rb +80 -0
  146. data/test/test_catalog.rb +119 -0
  147. data/test/test_catalog_converter_cmd.rb +73 -0
  148. data/test/test_compiler.rb +92 -0
  149. data/test/test_configure.rb +50 -0
  150. data/test/test_epub3maker.rb +529 -0
  151. data/test/test_epubmaker.rb +569 -0
  152. data/test/test_epubmaker_cmd.rb +40 -0
  153. data/test/test_helper.rb +92 -0
  154. data/test/test_htmlbuilder.rb +1114 -0
  155. data/test/test_htmltoc.rb +32 -0
  156. data/test/test_htmlutils.rb +50 -0
  157. data/test/test_i18n.rb +180 -0
  158. data/test/test_idgxmlbuilder.rb +608 -0
  159. data/test/test_image_finder.rb +82 -0
  160. data/test/test_inaobuilder.rb +245 -0
  161. data/test/test_index.rb +174 -0
  162. data/test/test_latexbuilder.rb +732 -0
  163. data/test/test_lineinput.rb +182 -0
  164. data/test/test_makerhelper.rb +66 -0
  165. data/test/test_markdownbuilder.rb +125 -0
  166. data/test/test_pdfmaker.rb +171 -0
  167. data/test/test_pdfmaker_cmd.rb +40 -0
  168. data/test/test_preprocessor.rb +23 -0
  169. data/test/test_review_ext.rb +31 -0
  170. data/test/test_template.rb +26 -0
  171. data/test/test_textutils.rb +32 -0
  172. data/test/test_topbuilder.rb +291 -0
  173. data/test/test_uuid.rb +157 -0
  174. metadata +357 -0
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+ require 'review/book'
3
+
4
+ require 'stringio'
5
+ require 'tempfile'
6
+ require 'tmpdir'
7
+
8
+ include ReVIEW
9
+
10
+ module BookTestHelper
11
+ def mktmpbookdir(files = {})
12
+ created_files = {}
13
+ Dir.mktmpdir do |dir|
14
+ files.each_pair do |basename, content|
15
+ path = File.join(dir, basename)
16
+ File.open(path, 'w') {|o| o.print content }
17
+ created_files[basename] = path
18
+ end
19
+ book = Book::Base.load(dir)
20
+ yield(dir, book, created_files)
21
+ end
22
+ end
23
+
24
+ def get_instance_variables(obj)
25
+ obj.instance_variables.inject({}) do |memo, name|
26
+ value = obj.instance_variable_get(name)
27
+ if value.instance_variables.empty?
28
+ memo[name] = value
29
+ else
30
+ memo[name] = get_instance_variables(value)
31
+ end
32
+ memo
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,7 @@
1
+ # Re:VIEWサンプル書籍データ
2
+
3
+ Re:VIEW ( http://github.com/kmuto/review )で書籍データを作るためのサンプルファイルです。
4
+
5
+ 必要なファイルはsrc/ディレクトリ内にあります。srcディレクトリで「review-epubmaker config.yml」と実行すればEPUBが、「review-pdfmaker config.yml」とすればPDFが生成されます(PDFの生成にはpLaTeXとdvipdfmxが必要です)。
6
+
7
+ Ruby製のビルドツールであるrakeがインストールされている環境の場合、「rake pdf」を実行すればPDFが、「rake epub」を実行すればEPUBが生成されます。また、「rake html_all」を実行すればHTMLが生成されます。
@@ -0,0 +1,58 @@
1
+ require 'fileutils'
2
+ require 'rake/clean'
3
+
4
+ BOOK = "book"
5
+ BOOK_PDF = BOOK+".pdf"
6
+ BOOK_EPUB = BOOK+".epub"
7
+ CONFIG_FILE = "config.yml"
8
+ REVIEW_COMPILE = "review-compile-peg"
9
+
10
+ def build(mode, chapter)
11
+ sh "#{REVIEW_COMPILE} --target=#{mode} --footnotetext --stylesheet=style.css #{chapter} > tmp"
12
+ mode_ext = {"html" => "html", "latex" => "tex",
13
+ "idgxml" => "xml", "inao" => "inao"}
14
+ FileUtils.mv "tmp", chapter.gsub(/re\z/, mode_ext[mode])
15
+ end
16
+
17
+ def build_all(mode)
18
+ sh "#{REVIEW_COMPILE} --all --target=#{mode} --footnotetext --stylesheet=style.css"
19
+ end
20
+
21
+ task :default => :html_all
22
+
23
+ desc "build html (Usage: rake build re=target.re)"
24
+ task :html do
25
+ if ENV['re'].nil?
26
+ puts "Usage: rake build re=target.re"
27
+ exit
28
+ end
29
+ build("html", ENV['re'])
30
+ end
31
+
32
+ desc "build all html"
33
+ task :html_all do
34
+ build_all("html")
35
+ end
36
+
37
+ desc 'generate PDF and EPUB file'
38
+ task :all => [:pdf, :epub]
39
+
40
+ desc 'generate PDF file'
41
+ task :pdf => BOOK_PDF
42
+
43
+ desc 'generate EPUB file'
44
+ task :epub => BOOK_EPUB
45
+
46
+ SRC = FileList['*.re'] + [CONFIG_FILE]
47
+
48
+ file BOOK_PDF => SRC do
49
+ FileUtils.rm_rf [BOOK_PDF, BOOK, BOOK+"-pdf"]
50
+ sh "review-pdfmaker #{CONFIG_FILE}"
51
+ end
52
+
53
+ file BOOK_EPUB => SRC do
54
+ FileUtils.rm_rf [BOOK_EPUB, BOOK, BOOK+"-epub"]
55
+ sh "review-epubmaker #{CONFIG_FILE}"
56
+ end
57
+
58
+ CLEAN.include([BOOK, BOOK_PDF, BOOK_EPUB, BOOK+"-pdf", BOOK+"-epub"])
@@ -0,0 +1,3 @@
1
+ <div id="cover-image" style="img { max-width:100%; }">
2
+ <img src="images/cover.jpg" alt="cover"/>
3
+ </div>
@@ -0,0 +1,10 @@
1
+ PREDEF:
2
+ - preface.re
3
+
4
+ CHAPS:
5
+ - ch01.re
6
+ - ch02.re
7
+
8
+ APPENDIX:
9
+
10
+ POSTDEF:
@@ -0,0 +1,71 @@
1
+ = サンプル
2
+
3
+ //lead{
4
+ 書き方のサンプルです。上書きするなりして消して下さい。
5
+ //}
6
+
7
+ == 本文の書き方
8
+
9
+ 最初の段落です。
10
+ この行も同じ段落です。
11
+
12
+ 次の段落です。
13
+
14
+
15
+
16
+ 2行以上以上空いていても1行空いているのと同様に処理します。
17
+
18
+ === 見出し
19
+
20
+ 「=」「==」「===」の後に一文字空白をあけると見出しになります。
21
+
22
+
23
+ ====[column] コラムについて
24
+
25
+ 見出しの先頭に「[column]」と書くと、そこはコラムになります。
26
+
27
+ == 箇条書き
28
+
29
+ 番号のない箇条書きは「*」を使います。前後に空白を入れて下さい。
30
+
31
+ * 1つ目
32
+ * 2つ目
33
+ * 3つ目
34
+
35
+ 番号つきの箇条書きには、「1.」「2.」などと書きます。
36
+ 数字の値は実際には無視され、連番が振られます。
37
+
38
+ 1. 1つ目
39
+ 2. 2つ目
40
+ 3. 3つ目
41
+
42
+ == ソースコードなどのリスト
43
+
44
+ リストには「//list」ブロックや「//emlist」ブロックを使います。
45
+
46
+ //list[list][リストのサンプル]{
47
+ int main(int argc, char **argv) {
48
+ puts("OK");
49
+ return 0;
50
+ }
51
+ //}
52
+
53
+ 文中にリストを書くには「//emlist」になります。
54
+
55
+ //emlist{
56
+ def main
57
+ puts "ok"
58
+ end
59
+ //}
60
+
61
+ == 画像
62
+
63
+ 画像は「//image」ブロックを使います。
64
+
65
+ //image[imgsample][画像サンプル]{
66
+ //}
67
+
68
+
69
+ より詳しくは、
70
+ @<href>{https://github.com/kmuto/review/blob/master/doc/format.rdoc}
71
+ を御覧ください。
@@ -0,0 +1,3 @@
1
+ = サンプルその2
2
+
3
+ 基本はサンプルと同様です。
@@ -0,0 +1,186 @@
1
+ # review-epubmaker向けの設定ファイルの例。
2
+ # yamlファイルをRe:VIEWファイルのある場所に置き、
3
+ # 「review-epubmaker yamlファイル」を実行すると、<bookname>.epubファイルが
4
+ # 生成されます。
5
+ # このファイルはUTF-8エンコーディングで記述してください。
6
+
7
+ # ブック名(ファイル名になるもの。ASCII範囲の文字を使用)
8
+ bookname: book
9
+ # 記述言語。省略した場合はja
10
+ language: ja
11
+ # 書名
12
+ booktitle: Re:VIEWサンプル書籍
13
+ # 固有IDに使用するドメイン。省略した場合は時刻に基づくランダムUUIDが入る
14
+ urnid: urn:uid:http://tatsu-zine.com/books/review-sample-book/1.0.0/
15
+ # ISBN。省略した場合はurnidが入る
16
+ # isbn: null
17
+ # 著者名。["高橋征義", "John Doe"] のように配列を使うことで複数指定可
18
+ aut: 高橋征義
19
+ # 出版社。配列書式で複数指定可能
20
+ prt: 達人出版会
21
+ # 編集者。配列書式で複数指定可能
22
+ edt: 高橋征義
23
+ # 刊行日。YYYY-MM-DD形式。省略した場合は本日の日付
24
+ date: 2011-08-03
25
+ # 発行年月。YYYY-MM-DD形式による配列指定。省略した場合はdateを使用する
26
+ # 複数指定する場合は次のように記述する
27
+ # [["初版第第1刷の日付", "初版第第2刷の日付"], ["第2版第1刷の日付"]]
28
+ # 日付の後ろを空白文字で区切り、任意の文字列を置くことも可能。
29
+ history: [["2011-08-03 v1.0.0版発行"]]
30
+ # 権利表記
31
+ rights: (C) 2011 Masayoshi Takahashi
32
+
33
+ # 以下はオプション(autと同じように配列書式で複数指定可能)。
34
+ # adp: 異なるメディア向けに作り直した者
35
+ # ann: 注釈記述者
36
+ # arr: アレンジした者
37
+ # art: グラフィックデザインおよび芸術家
38
+ # asn: 関連・かつての所有者・関係者
39
+ # aqt: 大きく引用された人物
40
+ # aft: 後書き・奥付の責任者
41
+ # aui: 序論・序文・前書きの責任者
42
+ # ant: 目録責任者
43
+ # bkp: メディア制作責任者
44
+ # clb: 限定参加または補足者
45
+ # cmm: 解釈・分析・考察者
46
+ # dsr: デザイナ
47
+ # edt: 編集者
48
+ # ill: イラストレータ
49
+ # lyr: 歌詞作成者
50
+ # mdc: メタデータセットの一次的責任者
51
+ # mus: 音楽家
52
+ # nrt: 語り手
53
+ # oth: その他
54
+ # pht: 撮影責任者
55
+ # red: 項目の枠組起草者
56
+ # rev: 評論者
57
+ # spn: 援助者
58
+ # ths: 監督者
59
+ # trc: 筆記・タイプ作業者
60
+ # trl: 翻訳者
61
+ # description: ブックの説明
62
+ # subject: 短い説明用タグ
63
+ # type: 書籍のカテゴリーなど
64
+ # format: メディアタイプおよび特徴
65
+ # source: 出版物生成の重要なリソース情報
66
+ # relation: 補助的リソース
67
+ # coverage: 内容の範囲や領域
68
+
69
+ # htmlext: HTMLファイルの拡張子(省略した場合はhtml)
70
+ # CSSファイル(配列で複数指定可、yamlファイルおよびRe:VIEWファイルを置いたディレクトリにあること)
71
+ stylesheet: ["style.css"]
72
+
73
+ # ePUBのバージョン (2か3) 省略した場合は2
74
+ epubversion: 3
75
+ # HTMLのバージョン (4か5。epubversionを3にしたときには5にする)
76
+ # htmlversion: 5
77
+
78
+ # 目次を作成するか。省略した場合はnull(作成しない)
79
+ # toc: true
80
+
81
+ # 目次として抽出する見出しレベル。省略した場合は2
82
+ toclevel: 2
83
+ # 本文でセクション番号を表示する見出しレベル。省略した場合は2
84
+ # 採番させたくない見出しには「==[nonum]」のようにnonum指定をする
85
+ secnolevel: 3
86
+ # EPUB2標準の目次以外に物理目次ファイルを作成するか。省略した場合はnull (作成しない)
87
+ # ePUB3においてはこの設定によらず必ず作成される
88
+ # mytoc: true
89
+
90
+ # 付録の連番のスタイル。null(アラビア数字1〜。デフォルト)、alpha(英字A〜)、roman(ローマ数字I〜)
91
+ # appendix_format: null
92
+
93
+ # 表紙にするHTMLファイル。ファイル名を指定すると表紙として入る
94
+ # cover: _cover.html
95
+ # 表紙に配置し、書籍の影絵にも利用する画像ファイル。省略した場合はnull (画像を使わない)
96
+ coverimage: cover.jpg
97
+ # 表紙の後に大扉ページを作成するか。省略した場合はnull (作成しない)
98
+ # titlepage: null
99
+ # 自動生成される大扉ページを上書きするファイル。ファイル名を指定すると大扉として入る
100
+ # titlefile: null
101
+ # 原書大扉ページにするHTMLファイル。ファイル名を指定すると原書大扉として入る
102
+ # originaltitlefile: null
103
+ # 権利表記ページファイル。ファイル名を指定すると権利表記として入る
104
+ # creditfile: null
105
+ # プロフィールページファイル。ファイル名を指定すると著者紹介として入る
106
+ # profile: null
107
+ # プロフィールページの目次上の見出し
108
+ # profiletitle: 著者紹介
109
+ # 広告ファイル。ファイル名を指定すると広告として入る
110
+ # advfile: null
111
+ # 奥付を作成するか。デフォルトでは作成されない。trueを指定するとデフォルトの奥付、ファイル名を指定するとそれがcolophon.htmlとしてコピーされる
112
+ colophon: true
113
+ # 裏表紙ファイル (画像はcoversまたはimagesに配置する)。ファイル名を指定すると裏表紙として入る
114
+ # backcover: null
115
+
116
+ # 以下のパラメータを有効にするときには、
117
+ # epubmaker:
118
+ # パラメータ: 値
119
+ # パラメータ: 値
120
+ # ...
121
+ # という構成にする必要がある(インデントさせる)
122
+
123
+ # epubmaker:
124
+ # 目次を要素の階層表現にしない。省略した場合(null)は階層化する。
125
+ # 特に部扉が入るなどの理由で、構成によっては階層化目次でepubcheckに
126
+ # パスしない目次ができるが、そのようなときにはこれをtrueにする
127
+ # flattoc: null
128
+ # 目次のインデントレベルをスペース文字で表現する(flattocがtrueのときのみ)
129
+ # flattocindent: true
130
+ # NCX目次の見出しレベルごとの飾り(配列で設定)。EPUB3ではNCXは作られない
131
+ # ncxindent:
132
+ #-
133
+ #- -
134
+ # フックは、各段階で介入したいときのプログラムを指定する。自動で適切な引数が渡される
135
+ # プログラムには実行権限が必要
136
+ # ファイル変換処理の前に実行するプログラム。スタイルシートのコンパイルをしたいときなどに利用する。
137
+ # 渡される引数1=作業用展開ディレクトリ
138
+ # hook_beforeprocess: null
139
+ # 前付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
140
+ # 渡される引数1=作業用展開ディレクトリ
141
+ # hook_afterfrontmatter: null
142
+ # 本文の変換後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
143
+ # 渡される引数1=作業用展開ディレクトリ
144
+ # hook_afterbody: null
145
+ # 後付の作成後に実行するプログラム。作業用展開ディレクトリにある目次ファイル(toc-html.txt)を操作したいときなどに利用する。
146
+ # 渡される引数1=作業用展開ディレクトリ
147
+ # hook_afterbackmatter: null
148
+ # 画像およびフォントをコピーした後に実行するプログラム。別の画像やフォントを追加したいときなどに利用する。
149
+ # 渡される引数1=作業用展開ディレクトリ
150
+ # hook_aftercopyimage: null
151
+ # ePUB zipアーカイブ直前に実行するプログラム。メタ情報などを加工したいときなどに利用する。
152
+ # 渡される引数1=ePUB準備ディレクトリ
153
+ # hook_prepack: null
154
+ # 変換したHTMLファイルおよびCSSを解析して厳密に使用している画像ファイルだけを取り込むか。デフォルトはnull(imagesディレクトリすべてを取り込む)
155
+ # なお、フォント、カバー、広告についてはこの設定によらずディレクトリ内のものがすべて取り込まれる
156
+ # verify_target_images: null
157
+ # verify_target_imagesがtrueの状態において、解析で発見されなくても強制的に取り込むファイルの相対パスの配列
158
+ # force_include_images: []
159
+ # Re:VIEWファイル名を使わず、前付にpre01,pre02...、本文にchap01,chap02l...、後付にpost01,post02...という名前付けルールにするか
160
+ # rename_for_legacy: null
161
+ # ePUBアーカイブの非圧縮実行
162
+ # zip_stage1: "zip -0Xq"
163
+ # ePUBアーカイブの圧縮実行
164
+ # zip_stage2: "zip -Xr9Dq"
165
+ # ePUBアーカイブに追加するパス(デフォルトはmimetype、META-INF、OEBPS)
166
+ # zip_addpath: null
167
+ #
168
+ # epubmaker:階層を使うものはここまで
169
+
170
+ # ハイライトを有効にするか。pygments.gemが必要
171
+ # pygments: null
172
+
173
+ # 取り込む画像が格納されているディレクトリ。省略した場合は以下
174
+ # imagedir: images
175
+
176
+ # 取り込むフォントが格納されているディレクトリ。省略した場合は以下
177
+ # fontdir: fonts
178
+
179
+ # imagedir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
180
+ # image_ext: ["png", "gif", "jpg", "jpeg", "svg", "ttf", "woff", "otf"]
181
+
182
+ # fontdir内から取り込まれる対象となるファイル拡張子。省略した場合は以下
183
+ # font_ext: ["ttf", "woff", "otf"]
184
+
185
+ texstyle: reviewmacro
186
+ debug: true
@@ -0,0 +1,15 @@
1
+ = はじめに
2
+
3
+ (読者が読みたくなるようなまえがきっぽい言葉)
4
+
5
+ == 内容について
6
+
7
+ (内容紹介)
8
+
9
+ == 動作環境について
10
+
11
+ (バージョンとか)
12
+
13
+ == 謝辞
14
+
15
+ (必要に応じて)
@@ -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'.