tmtms-review 1.0.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 (107) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +9 -0
  3. data/COPYING +515 -0
  4. data/ChangeLog +2083 -0
  5. data/README.rdoc +50 -0
  6. data/Rakefile +56 -0
  7. data/VERSION +1 -0
  8. data/bin/review-check +178 -0
  9. data/bin/review-checkdep +63 -0
  10. data/bin/review-compile +205 -0
  11. data/bin/review-epubmaker +661 -0
  12. data/bin/review-epubmaker-ng +176 -0
  13. data/bin/review-index +118 -0
  14. data/bin/review-pdfmaker +208 -0
  15. data/bin/review-preproc +142 -0
  16. data/bin/review-validate +51 -0
  17. data/bin/review-vol +102 -0
  18. data/debian/README.Debian +12 -0
  19. data/debian/README.source +5 -0
  20. data/debian/changelog +5 -0
  21. data/debian/compat +1 -0
  22. data/debian/control +22 -0
  23. data/debian/copyright +62 -0
  24. data/debian/docs +6 -0
  25. data/debian/manpage.1.ex +59 -0
  26. data/debian/patches/path.diff +91 -0
  27. data/debian/patches/series +1 -0
  28. data/debian/review.install +13 -0
  29. data/debian/review.links +4 -0
  30. data/debian/rules +13 -0
  31. data/debian/source/format +1 -0
  32. data/doc/format.rdoc +582 -0
  33. data/doc/format_idg.rdoc +180 -0
  34. data/doc/libepubmaker/sample.yaml +90 -0
  35. data/doc/quickstart.rdoc +188 -0
  36. data/doc/ruby-uuid/README +11 -0
  37. data/doc/ruby-uuid/README.ja +34 -0
  38. data/doc/sample.css +108 -0
  39. data/doc/sample.yaml +62 -0
  40. data/lib/epubmaker.rb +28 -0
  41. data/lib/epubmaker/content.rb +82 -0
  42. data/lib/epubmaker/epubv2.rb +418 -0
  43. data/lib/epubmaker/epubv3.rb +249 -0
  44. data/lib/epubmaker/producer.rb +204 -0
  45. data/lib/epubmaker/resource.rb +66 -0
  46. data/lib/lineinput.rb +155 -0
  47. data/lib/review.rb +3 -0
  48. data/lib/review/book.rb +46 -0
  49. data/lib/review/book/base.rb +235 -0
  50. data/lib/review/book/chapter.rb +81 -0
  51. data/lib/review/book/compilable.rb +159 -0
  52. data/lib/review/book/index.rb +339 -0
  53. data/lib/review/book/page_metric.rb +38 -0
  54. data/lib/review/book/parameters.rb +97 -0
  55. data/lib/review/book/part.rb +44 -0
  56. data/lib/review/book/volume.rb +65 -0
  57. data/lib/review/builder.rb +444 -0
  58. data/lib/review/compiler.rb +550 -0
  59. data/lib/review/configure.rb +38 -0
  60. data/lib/review/epubbuilder.rb +18 -0
  61. data/lib/review/exception.rb +21 -0
  62. data/lib/review/extentions.rb +3 -0
  63. data/lib/review/extentions/object.rb +9 -0
  64. data/lib/review/extentions/string.rb +33 -0
  65. data/lib/review/htmlbuilder.rb +1097 -0
  66. data/lib/review/htmllayout.rb +19 -0
  67. data/lib/review/htmlutils.rb +36 -0
  68. data/lib/review/i18n.rb +30 -0
  69. data/lib/review/i18n.yaml +34 -0
  70. data/lib/review/idgxmlbuilder.rb +1145 -0
  71. data/lib/review/latexbuilder.rb +815 -0
  72. data/lib/review/latexindex.rb +35 -0
  73. data/lib/review/latexutils.rb +79 -0
  74. data/lib/review/preprocessor.rb +563 -0
  75. data/lib/review/review.tex.erb +232 -0
  76. data/lib/review/textbuilder.rb +17 -0
  77. data/lib/review/textutils.rb +66 -0
  78. data/lib/review/tocparser.rb +342 -0
  79. data/lib/review/tocprinter.rb +221 -0
  80. data/lib/review/topbuilder.rb +785 -0
  81. data/lib/review/unfold.rb +138 -0
  82. data/lib/uuid.rb +312 -0
  83. data/review.gemspec +141 -0
  84. data/test/CHAPS +2 -0
  85. data/test/bib.re +13 -0
  86. data/test/book_test_helper.rb +35 -0
  87. data/test/test.re +43 -0
  88. data/test/test_book.rb +598 -0
  89. data/test/test_book_chapter.rb +418 -0
  90. data/test/test_book_parameter.rb +42 -0
  91. data/test/test_book_part.rb +50 -0
  92. data/test/test_builder.rb +144 -0
  93. data/test/test_compiler.rb +44 -0
  94. data/test/test_epubmaker.rb +507 -0
  95. data/test/test_helper.rb +27 -0
  96. data/test/test_htmlbuilder.rb +554 -0
  97. data/test/test_htmlutils.rb +28 -0
  98. data/test/test_i18n.rb +64 -0
  99. data/test/test_idgxmlbuilder.rb +589 -0
  100. data/test/test_index.rb +31 -0
  101. data/test/test_latexbuilder.rb +656 -0
  102. data/test/test_lineinput.rb +198 -0
  103. data/test/test_preprocessor.rb +23 -0
  104. data/test/test_textutils.rb +68 -0
  105. data/test/test_topbuilder.rb +244 -0
  106. data/test/test_uuid.rb +156 -0
  107. metadata +161 -0
@@ -0,0 +1,142 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # $Id: review-preproc 3761 2007-12-31 07:20:09Z aamine $
4
+ #
5
+ # Copyright (c) 2010 Minero Aoki, Kenshi Muto
6
+ # Copyright (c) 1999-2007 Minero Aoki
7
+ #
8
+ # This program is free software.
9
+ # You can distribute or modify this program under the terms of
10
+ # the GNU LGPL, Lesser General Public License version 2.1.
11
+ # For details of the GNU LGPL, see the file "COPYING".
12
+ #
13
+
14
+ require 'pathname'
15
+
16
+ bindir = Pathname.new(__FILE__).realpath.dirname
17
+ $LOAD_PATH.unshift((bindir + '../lib').realpath)
18
+
19
+ require 'review/preprocessor'
20
+ require 'review/unfold'
21
+ require 'lineinput'
22
+ require 'stringio'
23
+ require 'fileutils'
24
+ require 'optparse'
25
+
26
+ def sigmain
27
+ Signal.trap(:INT) { exit 1 }
28
+ if RUBY_PLATFORM !~ /mswin(?!ce)|mingw|cygwin|bccwin/
29
+ Signal.trap(:PIPE, 'IGNORE')
30
+ end
31
+ main
32
+ rescue Errno::EPIPE
33
+ exit 0
34
+ end
35
+
36
+ def main
37
+ $KCODE = 'UTF-8' unless defined?(Encoding)
38
+
39
+ param = {
40
+ "inencoding" => "UTF-8",
41
+ "outencoding" => "UTF-8",
42
+ }
43
+
44
+ mode = :output
45
+ parser = OptionParser.new
46
+ parser.banner = "Usage: #{File.basename($0)} [-c|-d|-s|--replace] [<file>...]"
47
+ parser.on('--inencoding=ENCODING', 'Set input encoding. (UTF-8, EUC, JIS, and
48
+ SJIS)') {|enc|
49
+ param["inencoding"] = enc
50
+ }
51
+ parser.on('--outencoding=ENCODING', 'Set output encoding. (UTF-8[default], EUC
52
+ , JIS, and SJIS)') {|enc|
53
+ param["outencoding"] = enc
54
+ }
55
+ parser.on('-c', '--check', 'Check if preprocess is needed.') {
56
+ mode = :check
57
+ }
58
+ parser.on('-d', '--diff', 'Show diff from current file.') {
59
+ mode = :diff
60
+ }
61
+ parser.on('--replace', 'Replace file by preprocessed one.') {
62
+ mode = :replace
63
+ }
64
+ parser.on('-s', '--strip', 'Strip preprocessor tags.') {
65
+ mode = :strip
66
+ }
67
+ parser.on('--final', 'Unfold text and strip preprocessor tags. (deprecated)') {
68
+ mode = :final
69
+ }
70
+ parser.on('--tabwidth=WIDTH', 'tab width') {|width| param["tabwidth"] = width.to_i }
71
+ parser.on('--help', 'Print this message and quit.') {
72
+ puts parser.help
73
+ exit 0
74
+ }
75
+ begin
76
+ parser.parse!
77
+ rescue OptionParser::ParseError => err
78
+ $stderr.puts err.message
79
+ $stderr.puts parser.help
80
+ exit 1
81
+ end
82
+
83
+ pp = ReVIEW::Preprocessor.new(ReVIEW::Repository.new(param), param)
84
+ current_file = nil
85
+ ARGV.each do |path|
86
+ current_file = path
87
+ case mode
88
+ when :output
89
+ File.open(path) {|f|
90
+ pp.process f, $stdout
91
+ }
92
+ when :replace
93
+ File.write "#{path}.pptmp", preproc(pp, path)
94
+ File.rename "#{path}.pptmp", path
95
+ when :diff, :check
96
+ tmp = '/tmp/review.pptmp'
97
+ begin
98
+ File.write tmp, preproc(pp, path)
99
+ if mode == :check
100
+ system "diff -qu #{path} #{tmp} >/dev/null || echo #{path}"
101
+ else
102
+ system "diff -u #{path} #{tmp}"
103
+ end
104
+ ensure
105
+ FileUtils.rm_f tmp
106
+ end
107
+ when :strip
108
+ File.open(path) {|f|
109
+ ReVIEW::Preprocessor::Strip.new(f).each do |line|
110
+ puts line
111
+ end
112
+ }
113
+ when :final
114
+ u = ReVIEW::Unfold.new
115
+ File.open(path) {|f|
116
+ u.unfold ReVIEW::Preprocessor::Strip.new(f), $stdout
117
+ }
118
+ else
119
+ raise "must not happen: #{mode}"
120
+ end
121
+ end
122
+ rescue ReVIEW::Error => err
123
+ raise if $DEBUG
124
+ $stderr.puts err.message
125
+ exit 1
126
+ end
127
+
128
+ def preproc(pp, path)
129
+ buf = StringIO.new
130
+ File.open(path) {|f|
131
+ pp.process f, buf
132
+ }
133
+ buf.string
134
+ end
135
+
136
+ def File.write(path, str)
137
+ File.open(path, 'w') {|f|
138
+ f.write str
139
+ }
140
+ end
141
+
142
+ sigmain
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby
2
+ # Copyright (c) 2010 Kenshi Muto
3
+ #
4
+ # This program is free software
5
+ # You can distribute or modify this program under the terms of
6
+ # the GNU LGPL, Lesser General Public License version 2.1.
7
+ # For details of the GNU LGPL, see the file "COPYING".
8
+ #
9
+
10
+ # simple validator for ReVIEW
11
+
12
+ block = nil
13
+ maxcolcount = 0
14
+ colcount = 0
15
+ ln = 0
16
+
17
+ ARGF.each {|line|
18
+ ln = ln + 1
19
+ if line =~ /\A\/\/([a-z]+).+\{/
20
+ # block
21
+ _block = $1
22
+ puts "#{ln}: block #{_block} started, but previous block #{block} didn't close yet." unless block.nil?
23
+ block = _block
24
+ elsif line =~ /\A\/\/\}/
25
+ puts "#{ln}: block seen ended, but not opened." if block.nil?
26
+ block = nil
27
+ maxcolcount = 0
28
+ colcount = 0
29
+ elsif line =~ /\A(\d+\.)\s+/
30
+ # number
31
+ unless ["list", "emlist", "listnum", "emlistnum", "cmd", "image", "table"].include?(block)
32
+ puts "#{ln}: found $1 without the head space. Is it correct?"
33
+ end
34
+ elsif line =~ /\A\*\s+/
35
+ # itemize
36
+ unless ["list", "emlist", "listnum", "emlistnum", "cmd", "image", "table"].include?(block)
37
+ puts "#{ln}: found '*' without the head space. Is it correct?"
38
+ end
39
+ elsif line =~ /\A\s+(\d+\.)\s+/ && line =~ /\A\s+\*\s+/
40
+ unless ["list", "emlist", "listnum", "emlistnum", "cmd", "image", "table"].include?(block)
41
+ puts "#{ln}: found itemized list or numbered list in #{block}. Is it correct?"
42
+ end
43
+ elsif block == "table"
44
+ if line !~ /\A\-\-\-\-\-/
45
+ # table
46
+ colcount = line.split("\t").size
47
+ maxcolcount = colcount if maxcolcount == 0
48
+ puts "#{ln}: the number of table columns seems mismatch. (#{maxcolcount} != #{colcount})" if colcount != maxcolcount
49
+ end
50
+ end
51
+ }
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # $Id: review-vol 3901 2008-02-11 20:04:59Z aamine $
4
+ #
5
+ # Copyright (c) 2003-2007 Minero Aoki
6
+ #
7
+ # This program is free software.
8
+ # You can distribute or modify this program under the terms of
9
+ # the GNU LGPL, Lesser General Public License version 2.1.
10
+ # For details of the GNU LGPL, see the file "COPYING".
11
+ #
12
+
13
+ require 'pathname'
14
+
15
+ bindir = Pathname.new(__FILE__).realpath.dirname
16
+ $LOAD_PATH.unshift((bindir + '../lib').realpath)
17
+
18
+ require 'review'
19
+ require 'optparse'
20
+
21
+ include ReVIEW::TextUtils
22
+
23
+ def main
24
+ $KCODE = 'UTF-8' unless defined?(Encoding)
25
+
26
+ @param = {
27
+ "inencoding" => "UTF-8",
28
+ "outencoding" => "UTF-8"
29
+ }
30
+
31
+ part_sensitive = false
32
+ basedir = nil
33
+ parser = OptionParser.new
34
+ parser.on('-P', '--part-sensitive', 'Prints volume of each parts.') {
35
+ part_sensitive = true
36
+ }
37
+ parser.on('--inencoding=ENCODING', 'Set input encoding. (UTF-8, EUC, JIS, and SJIS)') {|enc|
38
+ @param["inencoding"] = enc
39
+ }
40
+ parser.on('--outencoding=ENCODING', 'Set output encoding. (UTF-8[default], EUC, JIS, and SJIS)') {|enc|
41
+ @param["outencoding"] = enc
42
+ }
43
+ parser.on('--directory=DIR', 'Compile all chapters in DIR.') {|path|
44
+ basedir = path
45
+ }
46
+ parser.on('--help', 'Print this message and quit') {
47
+ puts parser.help
48
+ exit 0
49
+ }
50
+ begin
51
+ parser.parse!
52
+ rescue OptionParser::ParseError => err
53
+ $stderr.puts err.message
54
+ $stderr.puts parser.help
55
+ exit 1
56
+ end
57
+
58
+ book = basedir ? ReVIEW::Book.load(basedir) : ReVIEW.book
59
+ ReVIEW.book.param = @param
60
+ if part_sensitive
61
+ sep = ""
62
+ book.each_part do |part|
63
+ print sep; sep = "\n"
64
+ puts "Part #{part.number} #{part.name}" if part.number
65
+ part.each_chapter do |chap|
66
+ print_chapter_volume chap
67
+ end
68
+ puts ' --------------------'
69
+ print_volume part.volume
70
+ end
71
+ puts '============================='
72
+ print_volume book.volume #puts "Total #{book.volume}"
73
+ else
74
+ book.each_chapter do |chap|
75
+ print_chapter_volume chap
76
+ end
77
+ puts '============================='
78
+ print_volume book.volume #puts "Total #{book.volume}"
79
+ end
80
+ rescue ReVIEW::ApplicationError, Errno::ENOENT => err
81
+ raise if $DEBUG
82
+ $stderr.puts "#{File.basename($0)}: #{err.message}"
83
+ exit 1
84
+ end
85
+
86
+ def print_chapter_volume(chap)
87
+ vol = chap.volume
88
+ title = convert_outencoding(chap.title, @param["outencoding"])
89
+ printf "%s %3dKB %6dC %5dL %3dP %s %-s\n",
90
+ chapnumstr(chap.number), vol.kbytes, vol.chars, vol.lines, vol.page,
91
+ "#{chap.name} ".ljust(25, '.'), title
92
+ end
93
+
94
+ def print_volume(vol)
95
+ printf " %3dKB %6dC %5dL %3dP\n", vol.kbytes, vol.chars, vol.lines, vol.page
96
+ end
97
+
98
+ def chapnumstr(n)
99
+ n ? sprintf('%2d.', n) : ' '
100
+ end
101
+
102
+ main
@@ -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 (1.0+20120212) unstable; urgency=low
2
+
3
+ * Initial Release. (closes: #XXXX)
4
+
5
+ -- Kenshi Muto <kmuto@debian.org> Sun, 12 Feb 2012 15:38:55 +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,62 @@
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, Kenshi Muto,
12
+ Masayoshi Takahashi, and
13
+ Masanori KADO <kdmsnr@gmail.com>.
14
+
15
+ Copyright:
16
+
17
+ Copyright (C) 2006-2012 Minero Aoki, Kenshi Muto, Masayoshi Takahashi,
18
+ Masanori KADO.
19
+
20
+ For lib/uuid.rb:
21
+ Copyright(c) 2005 URABE, Shyouhei
22
+
23
+ License:
24
+
25
+ This program is free software: you can redistribute it and/or modify
26
+ it under the terms of the GNU Lesser General Public License as published by
27
+ the Free Software Foundation, version 2.1 of the License.
28
+
29
+ This package is distributed in the hope that it will be useful,
30
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
31
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32
+ GNU Lesser General Public License for more details.
33
+
34
+ You should have received a copy of the GNU Lesser General Public License
35
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
36
+
37
+ On Debian systems, the complete text of the GNU Lesser General
38
+ Public License version 2.1 can be found in "/usr/share/common-licenses/LGPL-2.1".
39
+
40
+ lib/uuid.rb:
41
+ Permission is hereby granted, free of charge, to any person obtaining a copy
42
+ of this code, to deal in the code without restriction, including without
43
+ limitation the rights to use, copy, modify, merge, publish, distribute,
44
+ sublicense, and/or sell copies of the code, and to permit persons to whom the
45
+ code is furnished to do so, subject to the following conditions:
46
+
47
+ The above copyright notice and this permission notice shall be
48
+ included in all copies or substantial portions of the code.
49
+
50
+ THE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
51
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
52
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
53
+ AUTHOR OR COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
54
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
55
+ OUT OF OR IN CONNECTION WITH THE CODE OR THE USE OR OTHER DEALINGS IN THE
56
+ CODE.
57
+
58
+ The Debian packaging is:
59
+
60
+ Copyright (C) 2010 Kenshi Muto <kmuto@debian.org>
61
+
62
+ and is licensed under the GNU Lesser GPL version 2.1, see above.
@@ -0,0 +1,6 @@
1
+ README.rdoc
2
+ ChangeLog
3
+ doc/format.rdoc
4
+ doc/quickstart.rdoc
5
+ doc/sample.css
6
+ 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).