review 0.6.0 → 0.9.0

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.
Files changed (68) hide show
  1. data/ChangeLog +441 -0
  2. data/README.rdoc +25 -0
  3. data/Rakefile +13 -1
  4. data/VERSION +1 -1
  5. data/bin/review-check +1 -1
  6. data/bin/review-compile +19 -10
  7. data/bin/review-epubmaker +114 -17
  8. data/bin/review-index +8 -1
  9. data/bin/review-pdfmaker +378 -0
  10. data/bin/review-preproc +2 -3
  11. data/bin/review-vol +1 -2
  12. data/debian/README.Debian +12 -0
  13. data/debian/README.source +5 -0
  14. data/debian/changelog +5 -0
  15. data/debian/compat +1 -0
  16. data/debian/control +22 -0
  17. data/debian/copyright +60 -0
  18. data/debian/docs +5 -0
  19. data/debian/manpage.1.ex +59 -0
  20. data/debian/patches/path.diff +91 -0
  21. data/debian/patches/series +1 -0
  22. data/debian/review.install +13 -0
  23. data/debian/review.links +4 -0
  24. data/debian/rules +13 -0
  25. data/debian/source/format +1 -0
  26. data/doc/format.rdoc +477 -0
  27. data/doc/format.re +19 -0
  28. data/doc/format_idg.rdoc +180 -0
  29. data/doc/ruby-uuid/README +11 -0
  30. data/doc/ruby-uuid/README.ja +34 -0
  31. data/doc/sample.css +17 -0
  32. data/doc/sample.yaml +8 -4
  33. data/lib/lineinput.rb +1 -1
  34. data/lib/review/book.rb +43 -36
  35. data/lib/review/builder.rb +78 -33
  36. data/lib/review/compiler.rb +45 -48
  37. data/lib/review/epubbuilder.rb +1 -675
  38. data/lib/review/exception.rb +1 -1
  39. data/lib/review/htmlbuilder.rb +627 -49
  40. data/lib/review/htmlutils.rb +5 -0
  41. data/lib/review/idgxmlbuilder.rb +239 -250
  42. data/lib/review/index.rb +84 -7
  43. data/lib/review/latexbuilder.rb +261 -42
  44. data/lib/review/latexutils.rb +15 -6
  45. data/lib/review/preprocessor.rb +40 -6
  46. data/lib/review/textutils.rb +22 -0
  47. data/lib/review/topbuilder.rb +4 -1
  48. data/lib/uuid.rb +312 -0
  49. data/review.gemspec +44 -12
  50. data/test/CHAPS +2 -0
  51. data/test/bib.re +13 -0
  52. data/test/test.re +43 -0
  53. data/test/test_book.rb +1191 -0
  54. data/test/test_builder.rb +147 -0
  55. data/test/test_htmlbuilder.rb +191 -10
  56. data/test/test_htmlutils.rb +24 -0
  57. data/test/test_idgxmlbuilder.rb +310 -0
  58. data/test/test_index.rb +15 -0
  59. data/test/test_latexbuilder.rb +217 -6
  60. data/test/test_lineinput.rb +198 -0
  61. data/test/test_textutils.rb +68 -0
  62. data/test/test_uuid.rb +156 -0
  63. metadata +43 -10
  64. data/doc/format.txt +0 -434
  65. data/doc/format_idg.txt +0 -194
  66. data/doc/format_sjis.txt +0 -313
  67. data/setup.rb +0 -1587
  68. data/test/test_epubbuilder.rb +0 -73
@@ -62,7 +62,7 @@ SJIS)') {|enc|
62
62
  parser.on('-s', '--strip', 'Strip preprocessor tags.') {
63
63
  mode = :strip
64
64
  }
65
- parser.on('--final', 'Unfold text and strip preprocessor tags.') {
65
+ parser.on('--final', 'Unfold text and strip preprocessor tags. (deprecated)') {
66
66
  mode = :final
67
67
  }
68
68
  parser.on('--help', 'Print this message and quit.') {
@@ -77,8 +77,7 @@ SJIS)') {|enc|
77
77
  exit 1
78
78
  end
79
79
 
80
- pp = ReVIEW::Preprocessor.new(ReVIEW::Repository.new)
81
- pp.setParameter(param)
80
+ pp = ReVIEW::Preprocessor.new(ReVIEW::Repository.new, param)
82
81
  current_file = nil
83
82
  ARGV.each do |path|
84
83
  current_file = path
@@ -52,7 +52,7 @@ def main
52
52
  end
53
53
 
54
54
  book = ReVIEW.book
55
- book.setParameter(@param)
55
+ ReVIEW.book.param = @param
56
56
  if part_sensitive
57
57
  sep = ""
58
58
  book.each_part do |part|
@@ -68,7 +68,6 @@ def main
68
68
  print_volume book.volume #puts "Total #{book.volume}"
69
69
  else
70
70
  book.each_chapter do |chap|
71
- chap.setParameter(@param)
72
71
  print_chapter_volume chap
73
72
  end
74
73
  puts '============================='
@@ -0,0 +1,12 @@
1
+ review for Debian
2
+ -----------------
3
+
4
+ review-epubmaker, is EPUB builder, needs zip package. If you'd like to
5
+ use MathML in HTML, install libmathml-ruby also.
6
+ review-pdfmaker, is PDF builder, needs ptexlive environment.
7
+ Although ptexlive isn't packaged yet, you can take experimental packages
8
+ from http://www1.pm.tokushima-u.ac.jp/~kohda/tex/ptexlive.html
9
+ Plus, review-pdfmaker uses additional style;
10
+ - jumoline.sty: http://www.para.media.kyoto-u.ac.jp/latex/jumoline.tar.gz
11
+
12
+ -- Kenshi Muto <kmuto@debian.org> Tue, 23 Nov 2010 17:35:59 +0900
@@ -0,0 +1,5 @@
1
+ review for Debian
2
+ -----------------
3
+
4
+ Rakefile focuses test and gem, not Debian packaging.
5
+ Test needs some gem files are not yet included in Debian pool.
@@ -0,0 +1,5 @@
1
+ review (0.6+20101123) unstable; urgency=low
2
+
3
+ * Initial Release. (closes: #)
4
+
5
+ -- Kenshi Muto <kmuto@debian.org> Tue, 23 Nov 2010 17:35:59 +0900
@@ -0,0 +1 @@
1
+ 7
@@ -0,0 +1,22 @@
1
+ Source: review
2
+ Section: text
3
+ Priority: optional
4
+ Maintainer: Kenshi Muto <kmuto@debian.org>
5
+ Build-Depends: debhelper (>= 7.0.50~), quilt (>= 0.46-7~)
6
+ Standards-Version: 3.9.1
7
+ Homepage: http://github.com/kmuto/review
8
+ Vcs-Git: git://github.com/kmuto/review.git
9
+
10
+ Package: review
11
+ Architecture: all
12
+ Depends: ${shlibs:Depends}, ${misc:Depends}, ruby
13
+ Recommends: zip
14
+ Suggests: ptex-bin, okumura-clsfiles, libmathml-ruby
15
+ Description: easy-to-use digital publishing system for Japanese books and ebooks
16
+ ReVIEW is a digital publishing system for books and ebooks.
17
+ It is aimed professional Japanese editorial use.
18
+ .
19
+ ReVIEW generates HTML, LaTeX, plain text, and Adobe InDesign XML
20
+ from a text file with simple and extensible tags.
21
+ .
22
+ This package provides the builders for EPUB and PDF.
@@ -0,0 +1,60 @@
1
+ This work was packaged for Debian by:
2
+
3
+ Kenshi Muto <kmuto@debian.org> on Tue, 23 Nov 2010 17:35:59 +0900
4
+
5
+ It was downloaded from:
6
+
7
+ git://github.com/kmuto/review
8
+
9
+ Upstream Author(s):
10
+
11
+ Minero Aoki <aamine@loveruby.net>, Kenshi Muto <kmuto@debian.org>,
12
+ and Masayoshi Takahashi <takahashimm@gmail.com>.
13
+
14
+ Copyright:
15
+
16
+ Copyright (C) 2006-2010 Minero Aoki, Kenshi Muto, Masayoshi Takahashi
17
+
18
+ For lib/uuid.rb:
19
+ Copyright(c) 2005 URABE, Shyouhei
20
+
21
+ License:
22
+
23
+ This program is free software: you can redistribute it and/or modify
24
+ it under the terms of the GNU Lesser General Public License as published by
25
+ the Free Software Foundation, version 2.1 of the License.
26
+
27
+ This package is distributed in the hope that it will be useful,
28
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
29
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30
+ GNU Lesser General Public License for more details.
31
+
32
+ You should have received a copy of the GNU Lesser General Public License
33
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
34
+
35
+ On Debian systems, the complete text of the GNU Lesser General
36
+ Public License version 2.1 can be found in "/usr/share/common-licenses/LGPL-2.1".
37
+
38
+ lib/uuid.rb:
39
+ Permission is hereby granted, free of charge, to any person obtaining a copy
40
+ of this code, to deal in the code without restriction, including without
41
+ limitation the rights to use, copy, modify, merge, publish, distribute,
42
+ sublicense, and/or sell copies of the code, and to permit persons to whom the
43
+ code is furnished to do so, subject to the following conditions:
44
+
45
+ The above copyright notice and this permission notice shall be
46
+ included in all copies or substantial portions of the code.
47
+
48
+ THE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
49
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
51
+ AUTHOR OR COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
53
+ OUT OF OR IN CONNECTION WITH THE CODE OR THE USE OR OTHER DEALINGS IN THE
54
+ CODE.
55
+
56
+ The Debian packaging is:
57
+
58
+ Copyright (C) 2010 Kenshi Muto <kmuto@debian.org>
59
+
60
+ and is licensed under the GNU Lesser GPL version 2.1, see above.
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ ChangeLog
3
+ doc/format.rdoc
4
+ doc/sample.css
5
+ doc/sample.yaml
@@ -0,0 +1,59 @@
1
+ .\" Hey, EMACS: -*- nroff -*-
2
+ .\" First parameter, NAME, should be all caps
3
+ .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
4
+ .\" other parameters are allowed: see man(7), man(1)
5
+ .TH REVIEW SECTION "November 23, 2010"
6
+ .\" Please adjust this date whenever revising the manpage.
7
+ .\"
8
+ .\" Some roff macros, for reference:
9
+ .\" .nh disable hyphenation
10
+ .\" .hy enable hyphenation
11
+ .\" .ad l left justify
12
+ .\" .ad b justify to both left and right margins
13
+ .\" .nf disable filling
14
+ .\" .fi enable filling
15
+ .\" .br insert line break
16
+ .\" .sp <n> insert n+1 empty lines
17
+ .\" for manpage-specific macros, see man(7)
18
+ .SH NAME
19
+ review \- program to do something
20
+ .SH SYNOPSIS
21
+ .B review
22
+ .RI [ options ] " files" ...
23
+ .br
24
+ .B bar
25
+ .RI [ options ] " files" ...
26
+ .SH DESCRIPTION
27
+ This manual page documents briefly the
28
+ .B review
29
+ and
30
+ .B bar
31
+ commands.
32
+ .PP
33
+ .\" TeX users may be more comfortable with the \fB<whatever>\fP and
34
+ .\" \fI<whatever>\fP escape sequences to invode bold face and italics,
35
+ .\" respectively.
36
+ \fBreview\fP is a program that...
37
+ .SH OPTIONS
38
+ These programs follow the usual GNU command line syntax, with long
39
+ options starting with two dashes (`-').
40
+ A summary of options is included below.
41
+ For a complete description, see the Info files.
42
+ .TP
43
+ .B \-h, \-\-help
44
+ Show summary of options.
45
+ .TP
46
+ .B \-v, \-\-version
47
+ Show version of program.
48
+ .SH SEE ALSO
49
+ .BR bar (1),
50
+ .BR baz (1).
51
+ .br
52
+ The programs are documented fully by
53
+ .IR "The Rise and Fall of a Fooish Bar" ,
54
+ available via the Info system.
55
+ .SH AUTHOR
56
+ review was written by <upstream author>.
57
+ .PP
58
+ This manual page was written by Kenshi Muto <kmuto@debian.org>,
59
+ for the Debian project (and may be used by others).
@@ -0,0 +1,91 @@
1
+ indicate /usr/share/review as lib path.Index: review-0.6+20101123/bin/review-check
2
+ ===================================================================
3
+ --- review-0.6+20101123.orig/bin/review-check 2010-11-23 21:08:35.525325930 +0900
4
+ +++ review-0.6+20101123/bin/review-check 2010-11-23 21:10:00.049309314 +0900
5
+ @@ -13,7 +13,7 @@
6
+ require 'pathname'
7
+
8
+ bindir = Pathname.new(__FILE__).realpath.dirname
9
+ -$LOAD_PATH.unshift((bindir + '../lib').realpath)
10
+ +$LOAD_PATH.unshift("/usr/share/review")
11
+
12
+ require 'review/book'
13
+ require 'optparse'
14
+ Index: review-0.6+20101123/bin/review-checkdep
15
+ ===================================================================
16
+ --- review-0.6+20101123.orig/bin/review-checkdep 2010-11-23 21:08:35.537304196 +0900
17
+ +++ review-0.6+20101123/bin/review-checkdep 2010-11-23 21:09:46.932891759 +0900
18
+ @@ -13,7 +13,7 @@
19
+ require 'pathname'
20
+
21
+ bindir = Pathname.new(__FILE__).realpath.dirname
22
+ -$LOAD_PATH.unshift((bindir + '../lib').realpath)
23
+ +$LOAD_PATH.unshift("/usr/share/review")
24
+
25
+ PREDEF_FILE = 'PREDEF'
26
+
27
+ Index: review-0.6+20101123/bin/review-compile
28
+ ===================================================================
29
+ --- review-0.6+20101123.orig/bin/review-compile 2010-11-23 21:08:35.545307445 +0900
30
+ +++ review-0.6+20101123/bin/review-compile 2010-11-23 21:10:11.464806373 +0900
31
+ @@ -13,7 +13,7 @@
32
+ require 'pathname'
33
+
34
+ bindir = Pathname.new(__FILE__).realpath.dirname
35
+ -$LOAD_PATH.unshift((bindir + '../lib').realpath)
36
+ +$LOAD_PATH.unshift("/usr/share/review")
37
+
38
+ require 'review/compiler'
39
+ require 'review/book'
40
+ Index: review-0.6+20101123/bin/review-epubmaker
41
+ ===================================================================
42
+ --- review-0.6+20101123.orig/bin/review-epubmaker 2010-11-23 21:08:35.557307851 +0900
43
+ +++ review-0.6+20101123/bin/review-epubmaker 2010-11-23 21:10:24.345309100 +0900
44
+ @@ -18,7 +18,7 @@
45
+ require 'pathname'
46
+
47
+ bindir = Pathname.new(__FILE__).realpath.dirname
48
+ -$LOAD_PATH.unshift((bindir + '../lib').realpath)
49
+ +$LOAD_PATH.unshift("/usr/share/review")
50
+
51
+ require 'uuid'
52
+
53
+ Index: review-0.6+20101123/bin/review-index
54
+ ===================================================================
55
+ --- review-0.6+20101123.orig/bin/review-index 2010-11-23 21:08:35.565304467 +0900
56
+ +++ review-0.6+20101123/bin/review-index 2010-11-23 21:10:35.780809275 +0900
57
+ @@ -13,7 +13,7 @@
58
+ require 'pathname'
59
+
60
+ bindir = Pathname.new(__FILE__).realpath.dirname
61
+ -$LOAD_PATH.unshift((bindir + '../lib').realpath)
62
+ +$LOAD_PATH.unshift("/usr/share/review")
63
+
64
+ require 'review/book'
65
+ require 'review/tocparser'
66
+ Index: review-0.6+20101123/bin/review-preproc
67
+ ===================================================================
68
+ --- review-0.6+20101123.orig/bin/review-preproc 2010-11-23 21:08:35.577305709 +0900
69
+ +++ review-0.6+20101123/bin/review-preproc 2010-11-23 21:10:46.252829939 +0900
70
+ @@ -14,7 +14,7 @@
71
+ require 'pathname'
72
+
73
+ bindir = Pathname.new(__FILE__).realpath.dirname
74
+ -$LOAD_PATH.unshift((bindir + '../lib').realpath)
75
+ +$LOAD_PATH.unshift("/usr/share/review")
76
+
77
+ require 'review/preprocessor'
78
+ require 'review/unfold'
79
+ Index: review-0.6+20101123/bin/review-vol
80
+ ===================================================================
81
+ --- review-0.6+20101123.orig/bin/review-vol 2010-11-23 21:08:35.589305906 +0900
82
+ +++ review-0.6+20101123/bin/review-vol 2010-11-23 21:10:56.212818665 +0900
83
+ @@ -13,7 +13,7 @@
84
+ require 'pathname'
85
+
86
+ bindir = Pathname.new(__FILE__).realpath.dirname
87
+ -$LOAD_PATH.unshift((bindir + '../lib').realpath)
88
+ +$LOAD_PATH.unshift("/usr/share/review")
89
+
90
+ require 'review/book'
91
+ require 'review/exception'
@@ -0,0 +1 @@
1
+ path.diff
@@ -0,0 +1,13 @@
1
+ bin/review-check usr/bin
2
+ bin/review-compile usr/bin
3
+ #bin/review-checkdep usr/bin
4
+ bin/review-epubmaker usr/bin
5
+ bin/review-index usr/bin
6
+ bin/review-pdfmaker usr/bin
7
+ bin/review-preproc usr/bin
8
+ bin/review-validate usr/bin
9
+ bin/review-vol usr/bin
10
+ lib/lineinput.rb usr/share/review
11
+ lib/review.rb usr/share/review
12
+ lib/uuid.rb usr/share/review
13
+ lib/review usr/share/review
@@ -0,0 +1,4 @@
1
+ usr/bin/review-compile usr/bin/review2html
2
+ usr/bin/review-compile usr/bin/review2latex
3
+ usr/bin/review-compile usr/bin/review2top
4
+ usr/bin/review-compile usr/bin/review2idgxml
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/make -f
2
+ # -*- makefile -*-
3
+ # Sample debian/rules that uses debhelper.
4
+ # This file was originally written by Joey Hess and Craig Small.
5
+ # As a special exception, when this file is copied by dh-make into a
6
+ # dh-make output file, you may use that output file without restriction.
7
+ # This special exception was added by Craig Small in version 0.37 of dh-make.
8
+
9
+ # Uncomment this to turn on verbose mode.
10
+ #export DH_VERBOSE=1
11
+
12
+ %:
13
+ dh --with quilt $@
@@ -0,0 +1 @@
1
+ 3.0 (native)
@@ -0,0 +1,477 @@
1
+ = ReVIEW フォーマット
2
+
3
+ ReVIEW フォーマットの文法について解説します。ReVIEW
4
+ フォーマットは ASCII の EWB を基本としながら、一部に
5
+ RD や各種 Wiki の文法をとりいれて簡素化しています。
6
+
7
+ == 段落
8
+
9
+ 段落(本文)の間は英語の段落のように1行空けます。ただし、組版に
10
+ まわすときは前処理して1段落を1行に変更してあります。
11
+
12
+ [例]
13
+
14
+ だんらくだんらく〜〜〜
15
+ この行も同じ段落
16
+
17
+ 次の段落〜〜〜
18
+
19
+ 2行以上空いている場合も1行空きと同様に処理します。
20
+
21
+ == 章・節・項・段(見出し)
22
+
23
+ 章・節・項・段など、見出しは「=」「==」「===」「====」「=====」です。6 レベル以上は使えません。
24
+
25
+ [例]
26
+
27
+ = 章のキャプション
28
+
29
+ == 節のキャプション
30
+
31
+ === 項のキャプション
32
+
33
+ ==== 段のキャプション
34
+
35
+ ===== 小段のキャプション
36
+
37
+ 見出しは行の先頭から始める必要があります。行頭に空白が入ると、ただの本文とみなされます。
38
+
39
+ == コラムなど
40
+
41
+ 節や項の見出しに [column] を追加するとコラムのキャプションになります。
42
+
43
+ [例]
44
+
45
+ ===[column] コンパイラコンパイラ
46
+
47
+ このとき、「=」と「[column]」は間を開けず、必ず続けて書かなければ
48
+ なりません。空白があってもいけません。
49
+
50
+ == 箇条書き
51
+
52
+ 箇条書き (HTML で言う ul) は「*」で表現します。
53
+ ネストはしません。
54
+
55
+ [例]
56
+
57
+ * 第一の項目
58
+ * 第二の項目
59
+ * 第三の項目
60
+
61
+ 箇条書きを書くには、行頭に1つ以上の空白を必ず入れるようにします。
62
+ 行頭に空白を入れず「*」を書くと、ただのテキストとみなされます。
63
+
64
+ == 番号付き箇条書き
65
+
66
+ 番号付きの箇条書き (HTML で言う ol) は「1. 〜」「2. 〜」
67
+ 「3. 〜」で示します。ネストはしません。
68
+
69
+ [例]
70
+
71
+ 1. 第一の条件
72
+ 2. 第二の条件
73
+ 3. 第三の条件
74
+
75
+ 番号付き箇条書きも、ただの箇条書きと同様、行頭に1つ以上の空白が必要です。
76
+
77
+ == 用語リスト
78
+
79
+ 用語リスト (HTML で言う dl) は「:」と、続く空白で始まる行を使って示します。
80
+
81
+ [例]
82
+
83
+ : Alpha
84
+ DEC の作っていた RISC CPU。
85
+ 浮動小数点数演算が速い。
86
+ : POWER
87
+ IBM とモトローラが共同製作した RISC CPU。
88
+ 派生として POWER PC がある。
89
+ : SPARC
90
+ Sun が作っている RISC CPU。
91
+ CPU 数を増やすのが得意。
92
+
93
+ 頭の「:」それ自体はテキストではないので注意してください。
94
+ その後に続く文字列が用語名(HTMLではdt要素)になります。
95
+
96
+ 用語リストの「:」ではじまる行は、行頭に空白があってもなくてもかまいません。
97
+ そして、その行以降、空白で始まる行が用語内容(HTMLではdd要素)になります。
98
+
99
+ また、リスト内でも後述するインライン命令は有効です。
100
+
101
+ == ソースコードなどのリスト
102
+
103
+ ソースコードリストにはキャプションの付くリストとキャプションの付かないリストがあります。
104
+ 連番つきリストは「//list[識別子][キャプション]{ 〜 //}」で、
105
+ 連番なしリストは「//emlist[キャプション]{ 〜 //}」です。
106
+ //emlistのキャプションは省略できます。
107
+
108
+ [例]
109
+
110
+ //list[main][main()]{ ←「main」が識別子で「main()」がキャプション
111
+ int
112
+ main(int argc, char **argv)
113
+ {
114
+ puts("OK");
115
+ return 0;
116
+ }
117
+ //}
118
+
119
+ [例]
120
+
121
+ //emlist{
122
+ printf("hello");
123
+ //}
124
+
125
+ ブロック内でも後述するインライン命令は有効です。
126
+
127
+ また本文中で「リスト X を見てください」のようにリストを指定
128
+ する場合は、//list で指定した識別子を使って「@<list>{main}」
129
+ と表記します。
130
+
131
+ === ソースコード専用の引用
132
+
133
+ ソースコードを引用する場合、ファイル名が必要です。
134
+
135
+ [例]
136
+
137
+ //source[/hello/world.rb]{
138
+ puts "hello world!"
139
+ //}
140
+
141
+ ソースコードの引用は、キャプションをつけた//emlistとあまり違いはありません。
142
+ が、HTMLのCSSなどでは区別した表現ができます。
143
+
144
+ == 行番号付き連番ありリスト
145
+
146
+ 連番ありのリスト(list)で自動的に行番号がつきます。
147
+
148
+ [例]
149
+
150
+ //listnum[hello][ハローワールド]{
151
+ puts "hello world!"
152
+ //}
153
+
154
+ 参照方法はlistと変わりません。
155
+
156
+ [例]
157
+
158
+ ..は@<list>{hello}をみてください。
159
+
160
+ == 行番号付き連番なしリスト
161
+
162
+ 連番なしのリスト(emlist)で自動的に行番号がつきます。
163
+
164
+ [例]
165
+
166
+ //emlistnum{
167
+ puts "hello world!"
168
+ //}
169
+
170
+ == 本文中でのソースコード引用
171
+
172
+ 本文中でソースコードを引用して記述します。
173
+
174
+ [例]
175
+
176
+ @<code>{p = obj.ref_cnt}
177
+
178
+ == コマンドラインのキャプチャ
179
+
180
+ コマンドラインの操作を示すときは //cmd{ 〜 //} を使います。
181
+
182
+ [例]
183
+
184
+ //cmd{
185
+ $ ls /
186
+ //}
187
+
188
+ ブロック内でも後述するインライン命令は有効です。
189
+
190
+ == 図
191
+
192
+ 図は //image{ 〜 //} で指定します。執筆中はアスキーアートで
193
+ 代替しているため、ダミーのアスキーアートが入っていることがあり
194
+ ます。この部分は、組版時には単に無視してください。
195
+
196
+ [例]
197
+
198
+ //image[unixhistory][UNIX系OSの簡単な系譜]{
199
+ System V 系列
200
+ +----------- SVr4 --> 各種商用UNIX(Solaris, AIX, HP-UX, ...)
201
+ V1 --> V6 --|
202
+ +--------- 4.4BSD --> FreeBSD, NetBSD, OpenBSD, ...
203
+ BSD 系列
204
+
205
+ --------------> Linux
206
+ //}
207
+
208
+ 3番目の引数として、画像の倍率・大きさを指定することができます。
209
+ 今のところ「scale=X」で倍率(X倍)が指定できます。
210
+
211
+ また本文中で「図 X を見てください」のように図を指定する場合は、
212
+ //image で指定した識別子を用いて「@<img>{unixhistory}」と
213
+ 記述します。//image と @<img> でつづりが違うので注意してください。
214
+
215
+ なお、後述しますが、インラインで図を出力するには@<icon>を使用します。
216
+
217
+ == 番号が振られていない図
218
+
219
+ //indepimage[ファイル名][キャプション] で番号が振られていない画像ファイルを生成します。キャプションは省略できます。
220
+
221
+ [例]
222
+
223
+ //indepimage[unixhistory2]
224
+
225
+ 同様のことは、//numberlessimageでも使えます。
226
+
227
+ [例]
228
+
229
+ //numberlessimage[door_image_path][扉絵]
230
+
231
+ ※ただし、//indepimageと機能的にかぶっているので、将来は廃止され、//indexpimageに統合される予定です。
232
+
233
+ == 表
234
+
235
+ 表は //table[識別子][キャプション]{ 〜 //} です。ヘッダと内容を
236
+ 分ける罫線は「------」で書き込んであります。
237
+
238
+ カラム間は任意個数のタブで区切ります。また、カラム先頭の「.」は削
239
+ 除されるので、カラムの先頭文字が「.」の場合は「.」をもう一つ余計に
240
+ 付けてください。例えば「.」という内容のカラムは「..」と書きます。
241
+ また、空のカラムは「.」と書けます。
242
+
243
+ [例]
244
+
245
+ //table[envvars][重要な環境変数]{
246
+ 名前 意味
247
+ -------------------------------------------------------------
248
+ PATH コマンドの存在するディレクトリ
249
+ TERM 使っている端末の種類。linux・kterm・vt100など
250
+ LANG ユーザのデフォルトロケール。日本語ならja_JP.eucJPやja_JP.utf8
251
+ LOGNAME ユーザのログイン名
252
+ TEMP 一時ファイルを置くディレクトリ。/tmpなど
253
+ PAGER manなどで起動するテキスト閲覧プログラム。lessなど
254
+ EDITOR デフォルトエディタ。viやemacsなど
255
+ MANPATH manのソースを置いているディレクトリ
256
+ DISPLAY X Window Systemのデフォルトディスプレイ
257
+ //}
258
+
259
+ 本文中で「表 X を見てください」のように表を指定する場合は
260
+ @<table>{envvars} という表記を使います。
261
+
262
+ 表内でも後述するインライン命令は有効です。
263
+
264
+ == 引用
265
+
266
+ 引用は「//quote{ 〜 //}」を使って記述します。
267
+
268
+ [例]
269
+
270
+ //quote{
271
+ 百聞は一見に如かず。
272
+ //}
273
+
274
+ 引用内でも後述するインライン命令は有効です。
275
+ また、いまのところ引用内で別のブロック構文を使うことはできません。
276
+
277
+ == 脚注
278
+
279
+ 脚注は「//footnote」を使って記述します。
280
+
281
+ [例]
282
+
283
+ パッケージは本書のサポートサイトから入手できます@<fn>{site}。
284
+ 各自ダウンロードしてインストールしておいてください。
285
+ //footnote[site][本書のサポートサイト: http://i.loveruby.net/ja/stdcompiler ]
286
+
287
+ 本文中の「@<fn>{site}」は脚注番号に置換され、「本書のサポート
288
+ サイト……」という文は実際の脚注に変換されます。
289
+
290
+ == 参考文献の定義
291
+
292
+ 参考文献は同一ディレクトリ内の bib.re に定義します。
293
+ //bibpaper[site][キャプション]{..コメント..}
294
+ コメントが無い場合も定義可能です。
295
+ //bibpaper[site][キャプション]
296
+
297
+ [例]
298
+
299
+ //bibpaper[lins][Lins, 1991]{
300
+ Refael D. Lins. A shared memory architecture for parallel study of
301
+ algorithums for cyclic reference_counting. Technical Report 92,
302
+ Computing Laboratory, The University of Kent at Canterbury , August
303
+ 1991
304
+ //}
305
+
306
+ 本文中で参考文献を参照したい場合は次のようにしてください。
307
+
308
+ [例]
309
+
310
+ …という研究が知られています(@<bib>{lins})
311
+
312
+ == リード文
313
+
314
+ リード文は //lead{ 〜 //} で指定します。
315
+ 歴史的経緯により//read{ 〜 //} でも使えます。
316
+
317
+ [例]
318
+
319
+ //lead{
320
+ 本章ではまずこの本の概要について話し、
321
+ 次にLinuxでプログラムを作る方法を説明していきます。
322
+ //}
323
+
324
+ == TeX式
325
+
326
+ LaTeX の式を挿入するには、//texequation{ 〜 //} を使います。
327
+
328
+ [例]
329
+
330
+ //texequation{
331
+ \sum_{i=1}^nf_n(x)
332
+ //}
333
+
334
+ == 空白制御
335
+
336
+ 出力される空白を制御するタグとしては、//noindentがあります。
337
+
338
+ //noindent:: その直後に来る段落冒頭のインデントをなくする(HTMLではnoindentクラスになる)
339
+
340
+ 以前あった「//linebreak」(改行)、「//pagebreak」(改ページ)は廃止になります。
341
+
342
+ == コメント
343
+
344
+ 以前は「//comment」というタグがありましたが、廃止されます。
345
+
346
+ 最終結果に出力されないコメントを記述したい場合は「#@#」を使ってください。
347
+
348
+ [例]
349
+
350
+ #@# ここで 1 行あける
351
+
352
+ また、修正が必要な警告的コメントには#@warn(...)を使ってください。
353
+
354
+ [例]
355
+
356
+ #@warn(あとで書く)
357
+
358
+ == その他の文法
359
+
360
+ ReVIEW は任意のブロックを追加可能なので、本によって専用ブロックを
361
+ 使う場合があります。これまでに使った例を以下に示します。
362
+
363
+ //prototype:: 関数プロトタイプ。『ふつうのLinuxプログラミング』で使用。
364
+ //type:: 関数の型宣言。『ふつうのHaskellプログラミング』で使用。
365
+
366
+ 拡張文法はreview-ext.rbというファイルで指定できますが、ここでは詳しく触れません。
367
+
368
+ == 段落中で使う文法 (インライン命令)
369
+
370
+ @<list>{program}:: 「リスト1.5」のような文字列に置換される。
371
+ @<img>{unixhistory}:: 「図1.3」のような文字列に置換される。
372
+ @<table>{ascii}:: 「表1.2」のような文字列に置換される。
373
+ @<fn>{site}:: 脚注番号に置換される。
374
+ @<kw>{信任状, credential}:: キーワード。太字などにして強調してください。
375
+ @<chap>{advanced}:: 「第17章」のような、章番号を含むテキストに置換される。
376
+ @<title>{advanced}:: その章の章題に置換される。
377
+ @<chapref>{advanced}:: 『第17章「さらに進んだ話題」』のように、章番号とタイトルを含むテキストに置換される。
378
+ @<bou>{ふさわしい}:: 傍点。
379
+ @<ruby>{直截, ちょくせつ}:: ルビ。
380
+ @<ami>{重点ポイント}:: 文字に対するアミかけ。
381
+ @<b>{どうしても}:: 太字。
382
+ @<em>{どうしても}:: 太字(強調)。
383
+ @<i>{どうしても}:: イタリック。
384
+ @<tt>{foo($bar)}:: テキストをテレタイプ文字(等幅フォント)で出力する。
385
+ @<tti>{FooClass}:: テキストをテレタイプ文字(等幅フォント)のイタリックで出力する。
386
+ @<ttb>{BarClass}:: テキストをテレタイプ文字(等幅フォント)の太字で出力する。
387
+ @<br>{}:: 段落中改行。
388
+ @<m>{a + \alpha}:: TeXインライン式。
389
+ @<icon>{samplephoto}:: インライン画像。
390
+ @<uchar>{2460}:: Unicode文字の出力。引数は16進数で指定する。
391
+ @<href>{http://www.google.com/}:: リンク。URLで指定できる
392
+ @<raw>{@<foo>{bar\}}:: そのまま出力する。「}」は「\」でエスケープする。
393
+
394
+ == 著者用タグ (プリプロセッサ命令)
395
+
396
+ これまでに説明したタグはすべて最終段階まで残り、見ために
397
+ 影響を与えます。それに対して以下のタグは著者が使うための
398
+ 専用タグであり、最終段階ではすべて消されてしまいます。
399
+
400
+ #@#:: コメント。この行には何を書いても無視される。
401
+ #@warn(...):: 警告メッセージ。プリプロセス時にメッセージが出力される。
402
+ #@require, #@provide:: キーワードの依存関係を宣言する。
403
+ #@mapfile(ファイル名) 〜 #@end:: ファイルの内容をその場に展開する。
404
+ #@maprange(ファイル名, 範囲名) 〜 #@end:: ファイル内の範囲をその場に展開する。
405
+ #@mapoutput(コマンド) 〜 #@end:: コマンドを実行して、その出力結果を展開する。
406
+
407
+ == HTMLのレイアウト機能
408
+
409
+ CHAPSファイルが置かれているディレクトリに layouts/layout.erb
410
+ を置くとその html を ERB で評価します。
411
+
412
+ [例]
413
+
414
+ <html>
415
+ <head>
416
+ <title><%= title %></title>
417
+ </head>
418
+ [例]
419
+
420
+ <html>
421
+ <head>
422
+ <title><%= title %></title>
423
+ </head>
424
+ <body>
425
+ <%= body %>
426
+ <hr/>
427
+ </body>
428
+ </html>
429
+
430
+ == 部タイトル取得(目次生成機能)
431
+
432
+ PART ファイルに定義してください。
433
+ PART ファイルは CHAPS の部わけと対応しています。
434
+
435
+ [例]
436
+
437
+ CHAPS:
438
+ intro.re
439
+
440
+ start.re
441
+
442
+ end.re
443
+
444
+ PART:
445
+ (序章なので空行)
446
+ はじまりの部
447
+ おわりの部
448
+
449
+ == 見出し参照
450
+
451
+ 見出し番号と見出しを生成します。
452
+ 見出しの階層は"|"で区切って指定してください。
453
+
454
+ [例]
455
+
456
+ @<hd>{はじめに|まずわ}
457
+
458
+ 他の章を参照したい場合は、先頭に章のidを指定してください。
459
+
460
+ [例]
461
+
462
+ @<hd>{preface|はじめに|まずわ}
463
+
464
+ == リンク
465
+
466
+ Web ハイパーリンクを記述するには、リンクに @<href>、アンカーに //label
467
+ を使います。リンクの書式は @<href>{URL, 文字表現} で、「, 文字表現」を
468
+ 省略すると URL がそのまま使われます。URL 中に , を使いたいときには、\,
469
+ と表記してください。
470
+
471
+ [例]
472
+
473
+ @<href>{http://github.com/, GitHub}
474
+ @<href>{http://www.google.com/}
475
+ @<href>{#point1, ドキュメント内ポイント}
476
+ @<href>{chap1.html#point1, ドキュメント内ポイント}
477
+ //label[point1]