review 4.1.0 → 4.2.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -1
  3. data/.rubocop.yml +4 -1
  4. data/NEWS.ja.md +29 -0
  5. data/NEWS.md +29 -0
  6. data/bin/review-index +2 -89
  7. data/bin/review-vol +4 -78
  8. data/doc/config.yml.sample +18 -5
  9. data/doc/config.yml.sample-simple +1 -1
  10. data/doc/pdfmaker.ja.md +42 -0
  11. data/doc/pdfmaker.md +41 -0
  12. data/doc/quickstart.ja.md +8 -5
  13. data/doc/quickstart.md +7 -4
  14. data/lib/review/book/base.rb +2 -4
  15. data/lib/review/book/compilable.rb +1 -5
  16. data/lib/review/book/page_metric.rb +7 -7
  17. data/lib/review/book/part.rb +6 -3
  18. data/lib/review/book/volume.rb +3 -4
  19. data/lib/review/builder.rb +23 -10
  20. data/lib/review/compiler.rb +9 -9
  21. data/lib/review/configure.rb +6 -0
  22. data/lib/review/epubmaker.rb +1 -1
  23. data/lib/review/htmlbuilder.rb +56 -16
  24. data/lib/review/idgxmlbuilder.rb +63 -22
  25. data/lib/review/latexbuilder.rb +70 -19
  26. data/lib/review/makerhelper.rb +18 -1
  27. data/lib/review/pdfmaker.rb +8 -1
  28. data/lib/review/plaintextbuilder.rb +41 -11
  29. data/lib/review/textmaker.rb +1 -1
  30. data/lib/review/textutils.rb +2 -3
  31. data/lib/review/tocprinter.rb +231 -102
  32. data/lib/review/topbuilder.rb +47 -13
  33. data/lib/review/version.rb +1 -1
  34. data/lib/review/volumeprinter.rb +99 -0
  35. data/lib/review/webmaker.rb +1 -1
  36. data/lib/review/webtocprinter.rb +38 -35
  37. data/review.gemspec +1 -1
  38. data/samples/sample-book/src/config.yml +1 -1
  39. data/templates/web/html/layout-html5.html.erb +2 -2
  40. data/test/test_book.rb +1 -1
  41. data/test/test_book_part.rb +3 -3
  42. data/test/test_helper.rb +4 -1
  43. data/test/test_htmlbuilder.rb +179 -0
  44. data/test/test_idgxmlbuilder.rb +143 -0
  45. data/test/test_latexbuilder.rb +223 -0
  46. data/test/test_pdfmaker.rb +17 -0
  47. data/test/test_plaintextbuilder.rb +99 -0
  48. data/test/test_topbuilder.rb +116 -2
  49. data/test/test_webtocprinter.rb +66 -34
  50. metadata +3 -5
  51. data/lib/review/tocparser.rb +0 -275
  52. data/test/test_tocparser.rb +0 -25
@@ -100,6 +100,27 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
100
100
  assert_equal %Q(<table><tbody><tr><b>1</b>\t<i>2</i></tr><tr type="lastline"><b>3</b>\t<i>4</i>&lt;&gt;&amp;</tr></tbody></table>), actual
101
101
  end
102
102
 
103
+ def test_table
104
+ actual = compile_block("//table{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
105
+ expected = <<-EOS.chomp
106
+ <table><tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="2" aid:tcols="2"><td xyh="1,1,1" aid:table="cell" aid:theader="1" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">aaa</td><td xyh="2,1,1" aid:table="cell" aid:theader="1" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">bbb</td><td xyh="1,2,1" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">ccc</td><td xyh="2,2,1" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">ddd&lt;&gt;&amp;</td></tbody></table>
107
+ EOS
108
+ assert_equal expected, actual
109
+
110
+ actual = compile_block("//table[foo][FOO]{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
111
+ expected = <<-EOS.chomp
112
+ <table><caption>表1.1 FOO</caption><tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="2" aid:tcols="2"><td xyh="1,1,1" aid:table="cell" aid:theader="1" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">aaa</td><td xyh="2,1,1" aid:table="cell" aid:theader="1" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">bbb</td><td xyh="1,2,1" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">ccc</td><td xyh="2,2,1" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">ddd&lt;&gt;&amp;</td></tbody></table>
113
+ EOS
114
+ assert_equal expected, actual
115
+
116
+ @config['caption_position']['table'] = 'bottom'
117
+ actual = compile_block("//table[foo][FOO]{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
118
+ expected = <<-EOS.chomp
119
+ <table><tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="2" aid:tcols="2"><td xyh="1,1,1" aid:table="cell" aid:theader="1" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">aaa</td><td xyh="2,1,1" aid:table="cell" aid:theader="1" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">bbb</td><td xyh="1,2,1" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">ccc</td><td xyh="2,2,1" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">ddd&lt;&gt;&amp;</td></tbody><caption>表1.1 FOO</caption></table>
120
+ EOS
121
+ assert_equal expected, actual
122
+ end
123
+
103
124
  def test_customize_cellwidth
104
125
  actual = compile_block("//tsize[2,3,5]\n//table{\nA\tB\tC\n//}\n")
105
126
  assert_equal %Q(<table><tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="1" aid:tcols="3"><td xyh="1,1,0" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="5.669">A</td><td xyh="2,1,0" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="8.503">B</td><td xyh="3,1,0" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="14.172">C</td></tbody></table>), actual
@@ -144,6 +165,10 @@ class IDGXMLBuidlerTest < Test::Unit::TestCase
144
165
  def test_emtable
145
166
  actual = compile_block("//emtable[foo]{\nA\n//}\n//emtable{\nA\n//}")
146
167
  assert_equal %Q(<table><caption>foo</caption><tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="1" aid:tcols="1"><td xyh="1,1,0" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="28.345">A</td></tbody></table><table><tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="1" aid:tcols="1"><td xyh="1,1,0" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="28.345">A</td></tbody></table>), actual
168
+
169
+ @config['caption_position']['table'] = 'bottom'
170
+ actual = compile_block("//emtable[foo]{\nA\n//}\n//emtable{\nA\n//}")
171
+ assert_equal %Q(<table><tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="1" aid:tcols="1"><td xyh="1,1,0" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="28.345">A</td></tbody><caption>foo</caption></table><table><tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="1" aid:tcols="1"><td xyh="1,1,0" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="28.345">A</td></tbody></table>), actual
147
172
  end
148
173
 
149
174
  def test_table_row_separator
@@ -329,11 +354,19 @@ EOS
329
354
  def test_emlist
330
355
  actual = compile_block("//emlist[this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
331
356
  assert_equal %Q(<list type='emlist'><caption aid:pstyle='emlist-title'>this is <b>test</b>&lt;&amp;&gt;_</caption><pre>test1\ntest1.5\n\ntest<i>2</i>\n</pre></list>), actual
357
+
358
+ @config['caption_position']['list'] = 'bottom'
359
+ actual = compile_block("//emlist[this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
360
+ assert_equal %Q(<list type='emlist'><pre>test1\ntest1.5\n\ntest<i>2</i>\n</pre><caption aid:pstyle='emlist-title'>this is <b>test</b>&lt;&amp;&gt;_</caption></list>), actual
332
361
  end
333
362
 
334
363
  def test_emlistnum
335
364
  actual = compile_block("//emlistnum[this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
336
365
  assert_equal %Q(<list type='emlistnum'><caption aid:pstyle='emlistnum-title'>this is <b>test</b>&lt;&amp;&gt;_</caption><pre><span type='lineno'> 1: </span>test1\n<span type='lineno'> 2: </span>test1.5\n<span type='lineno'> 3: </span>\n<span type='lineno'> 4: </span>test<i>2</i>\n</pre></list>), actual
366
+
367
+ @config['caption_position']['list'] = 'bottom'
368
+ actual = compile_block("//emlistnum[this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
369
+ assert_equal %Q(<list type='emlistnum'><pre><span type='lineno'> 1: </span>test1\n<span type='lineno'> 2: </span>test1.5\n<span type='lineno'> 3: </span>\n<span type='lineno'> 4: </span>test<i>2</i>\n</pre><caption aid:pstyle='emlistnum-title'>this is <b>test</b>&lt;&amp;&gt;_</caption></list>), actual
337
370
  end
338
371
 
339
372
  def test_emlist_listinfo
@@ -385,6 +418,17 @@ test1.5
385
418
 
386
419
  test<i>2</i>
387
420
  </pre></codelist>
421
+ EOS
422
+ assert_equal expected, actual
423
+
424
+ @config['caption_position']['list'] = 'bottom'
425
+ actual = compile_block("//list[samplelist][this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
426
+ expected = <<-EOS.chomp
427
+ <codelist><pre>test1
428
+ test1.5
429
+
430
+ test<i>2</i>
431
+ </pre><caption>リスト1.1 this is <b>test</b>&lt;&amp;&gt;_</caption></codelist>
388
432
  EOS
389
433
  assert_equal expected, actual
390
434
  end
@@ -400,6 +444,17 @@ EOS
400
444
  <span type='lineno'> 3: </span>
401
445
  <span type='lineno'> 4: </span>test<i>2</i>
402
446
  </pre></codelist>
447
+ EOS
448
+ assert_equal expected, actual
449
+
450
+ @config['caption_position']['list'] = 'bottom'
451
+ actual = compile_block("//listnum[samplelist][this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
452
+ expected = <<-EOS.chomp
453
+ <codelist><pre><span type='lineno'> 1: </span>test1
454
+ <span type='lineno'> 2: </span>test1.5
455
+ <span type='lineno'> 3: </span>
456
+ <span type='lineno'> 4: </span>test<i>2</i>
457
+ </pre><caption>リスト1.1 this is <b>test</b>&lt;&amp;&gt;_</caption></codelist>
403
458
  EOS
404
459
  assert_equal expected, actual
405
460
  end
@@ -415,6 +470,17 @@ EOS
415
470
  <span type='lineno'>102: </span>
416
471
  <span type='lineno'>103: </span>test<i>2</i>
417
472
  </pre></codelist>
473
+ EOS
474
+ assert_equal expected, actual
475
+
476
+ @config['caption_position']['list'] = 'bottom'
477
+ actual = compile_block("//firstlinenum[100]\n//listnum[samplelist][this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
478
+ expected = <<-EOS.chomp
479
+ <codelist><pre><span type='lineno'>100: </span>test1
480
+ <span type='lineno'>101: </span>test1.5
481
+ <span type='lineno'>102: </span>
482
+ <span type='lineno'>103: </span>test<i>2</i>
483
+ </pre><caption>リスト1.1 this is <b>test</b>&lt;&amp;&gt;_</caption></codelist>
418
484
  EOS
419
485
  assert_equal expected, actual
420
486
  end
@@ -431,6 +497,17 @@ EOS
431
497
  </listinfo><listinfo line="3">
432
498
  </listinfo><listinfo line="4" end="4">test<i>2</i>
433
499
  </listinfo></pre></codelist>
500
+ EOS
501
+ assert_equal expected, actual
502
+
503
+ @config['caption_position']['list'] = 'bottom'
504
+ actual = compile_block("//list[samplelist][this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
505
+ expected = <<-EOS.chomp
506
+ <codelist><pre><listinfo line="1" begin="1">test1
507
+ </listinfo><listinfo line="2">test1.5
508
+ </listinfo><listinfo line="3">
509
+ </listinfo><listinfo line="4" end="4">test<i>2</i>
510
+ </listinfo></pre><caption>リスト1.1 this is <b>test</b>&lt;&amp;&gt;_</caption></codelist>
434
511
  EOS
435
512
  assert_equal expected, actual
436
513
  end
@@ -449,6 +526,15 @@ EOS
449
526
  <list type='cmd'><caption aid:pstyle='cmd-title'>cap1</caption><pre>lineA
450
527
  lineB
451
528
  </pre></list>
529
+ EOS
530
+ assert_equal expected, actual
531
+
532
+ @config['caption_position']['list'] = 'bottom'
533
+ actual = compile_block("//cmd[cap1]{\nlineA\nlineB\n//}\n")
534
+ expected = <<-EOS.chomp
535
+ <list type='cmd'><pre>lineA
536
+ lineB
537
+ </pre><caption aid:pstyle='cmd-title'>cap1</caption></list>
452
538
  EOS
453
539
  assert_equal expected, actual
454
540
  end
@@ -461,6 +547,17 @@ bar
461
547
 
462
548
  buz
463
549
  </pre></source>
550
+ EOS
551
+ assert_equal expected, actual
552
+
553
+ @config['caption_position']['list'] = 'bottom'
554
+ actual = compile_block("//source[foo/bar/test.rb]{\nfoo\nbar\n\nbuz\n//}\n")
555
+ expected = <<-EOS.chomp
556
+ <source><pre>foo
557
+ bar
558
+
559
+ buz
560
+ </pre><caption>foo/bar/test.rb</caption></source>
464
561
  EOS
465
562
  assert_equal expected, actual
466
563
  end
@@ -498,6 +595,17 @@ EOS
498
595
  </listinfo><listinfo line="3">
499
596
  </listinfo><listinfo line="4" end="4">test<i>2</i>
500
597
  </listinfo></insn>
598
+ EOS
599
+ assert_equal expected, actual
600
+
601
+ @config['caption_position']['list'] = 'bottom'
602
+ actual = compile_block("//insn[this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
603
+ expected = <<-EOS.chomp
604
+ <insn><listinfo line="1" begin="1">test1
605
+ </listinfo><listinfo line="2">test1.5
606
+ </listinfo><listinfo line="3">
607
+ </listinfo><listinfo line="4" end="4">test<i>2</i>
608
+ </listinfo><floattitle type="insn">this is <b>test</b>&lt;&amp;&gt;_</floattitle></insn>
501
609
  EOS
502
610
  assert_equal expected, actual
503
611
  end
@@ -511,6 +619,17 @@ EOS
511
619
  </listinfo><listinfo line="3">
512
620
  </listinfo><listinfo line="4" end="4">test<i>2</i>
513
621
  </listinfo></box>
622
+ EOS
623
+ assert_equal expected, actual
624
+
625
+ @config['caption_position']['list'] = 'bottom'
626
+ actual = compile_block("//box[this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
627
+ expected = <<-EOS.chomp
628
+ <box><listinfo line="1" begin="1">test1
629
+ </listinfo><listinfo line="2">test1.5
630
+ </listinfo><listinfo line="3">
631
+ </listinfo><listinfo line="4" end="4">test<i>2</i>
632
+ </listinfo><caption aid:pstyle="box-title">this is <b>test</b>&lt;&amp;&gt;_</caption></box>
514
633
  EOS
515
634
  assert_equal expected, actual
516
635
  end
@@ -524,6 +643,17 @@ test1.5
524
643
 
525
644
  test<i>2</i>
526
645
  </box>
646
+ EOS
647
+ assert_equal expected, actual
648
+
649
+ @config['caption_position']['list'] = 'bottom'
650
+ actual = compile_block("//box[this is @<b>{test}<&>_]{\ntest1\ntest1.5\n\ntest@<i>{2}\n//}\n")
651
+ expected = <<-EOS.chomp
652
+ <box>test1
653
+ test1.5
654
+
655
+ test<i>2</i>
656
+ <caption aid:pstyle="box-title">this is <b>test</b>&lt;&amp;&gt;_</caption></box>
527
657
  EOS
528
658
  assert_equal expected, actual
529
659
  end
@@ -569,6 +699,10 @@ EOS
569
699
 
570
700
  actual = compile_block("//image[sampleimg][sample photo]{\n//}\n")
571
701
  assert_equal %Q(<img><Image href="file://images/chap1-sampleimg.png" /><caption>図1.1 sample photo</caption></img>), actual
702
+
703
+ @config['caption_position']['image'] = 'top'
704
+ actual = compile_block("//image[sampleimg][sample photo]{\n//}\n")
705
+ assert_equal %Q(<img><caption>図1.1 sample photo</caption><Image href="file://images/chap1-sampleimg.png" /></img>), actual
572
706
  end
573
707
 
574
708
  def test_image_with_metric
@@ -602,6 +736,10 @@ EOS
602
736
 
603
737
  actual = compile_block("//indepimage[sampleimg][sample photo]\n")
604
738
  assert_equal %Q(<img><Image href="file://images/chap1-sampleimg.png" /><caption>sample photo</caption></img>), actual
739
+
740
+ @config['caption_position']['image'] = 'top'
741
+ actual = compile_block("//indepimage[sampleimg][sample photo]\n")
742
+ assert_equal %Q(<img><caption>sample photo</caption><Image href="file://images/chap1-sampleimg.png" /></img>), actual
605
743
  end
606
744
 
607
745
  def test_indepimage_without_caption
@@ -972,5 +1110,10 @@ EOS
972
1110
  expected = %Q(<p><span type='eq'>式1.1</span></p><equationblock><caption>式1.1 The Equivalence of Mass <i>and</i> Energy</caption><replace idref="texblock-1"><pre>e=mc^2</pre></replace></equationblock>)
973
1111
  actual = compile_block(src)
974
1112
  assert_equal expected, actual
1113
+
1114
+ @config['caption_position']['equation'] = 'bottom'
1115
+ expected = %Q(<p><span type='eq'>式1.1</span></p><equationblock><replace idref="texblock-1"><pre>e=mc^2</pre></replace><caption>式1.1 The Equivalence of Mass <i>and</i> Energy</caption></equationblock>)
1116
+ actual = compile_block(src)
1117
+ assert_equal expected, actual
975
1118
  end
976
1119
  end
@@ -432,6 +432,22 @@ bar
432
432
  buz
433
433
  \\end{reviewcmd}
434
434
  \\end{reviewlistblock}
435
+ EOS
436
+ assert_equal expected, actual
437
+
438
+ @config['caption_position']['list'] = 'bottom'
439
+ actual = compile_block("//cmd[cap1]{\nfoo\nbar\n\nbuz\n//}\n")
440
+ expected = <<-EOS
441
+
442
+ \\begin{reviewlistblock}
443
+ \\begin{reviewcmd}
444
+ foo
445
+ bar
446
+
447
+ buz
448
+ \\end{reviewcmd}
449
+ \\reviewcmdcaption{cap1}
450
+ \\end{reviewlistblock}
435
451
  EOS
436
452
  assert_equal expected, actual
437
453
  end
@@ -507,6 +523,22 @@ bar
507
523
  buz
508
524
  \\end{reviewemlist}
509
525
  \\end{reviewlistblock}
526
+ EOS
527
+ assert_equal expected, actual
528
+
529
+ @config['caption_position']['list'] = 'bottom'
530
+ actual = compile_block("//emlist[cap1]{\nfoo\nbar\n\nbuz\n//}\n")
531
+ expected = <<-EOS
532
+
533
+ \\begin{reviewlistblock}
534
+ \\begin{reviewemlist}
535
+ foo
536
+ bar
537
+
538
+ buz
539
+ \\end{reviewemlist}
540
+ \\reviewemlistcaption{cap1}
541
+ \\end{reviewlistblock}
510
542
  EOS
511
543
  assert_equal expected, actual
512
544
  end
@@ -573,6 +605,22 @@ EOS
573
605
  4: buz
574
606
  \\end{reviewemlist}
575
607
  \\end{reviewlistblock}
608
+ EOS
609
+ assert_equal expected, actual
610
+
611
+ @config['caption_position']['list'] = 'bottom'
612
+ actual = compile_block("//emlistnum[cap1]{\nfoo\nbar\n\nbuz\n//}\n")
613
+ expected = <<-EOS
614
+
615
+ \\begin{reviewlistblock}
616
+ \\begin{reviewemlist}
617
+ 1: foo
618
+ 2: bar
619
+ 3:
620
+ 4: buz
621
+ \\end{reviewemlist}
622
+ \\reviewemlistcaption{cap1}
623
+ \\end{reviewlistblock}
576
624
  EOS
577
625
  assert_equal expected, actual
578
626
  end
@@ -589,6 +637,21 @@ bar
589
637
  buz
590
638
  \\end{reviewlist}
591
639
  \\end{reviewlistblock}
640
+ EOS
641
+ assert_equal expected, actual
642
+
643
+ @config['caption_position']['list'] = 'bottom'
644
+ actual = compile_block("//list[id1][cap1]{\nfoo\nbar\n\nbuz\n//}\n")
645
+ expected = <<-EOS
646
+ \\begin{reviewlistblock}
647
+ \\begin{reviewlist}
648
+ foo
649
+ bar
650
+
651
+ buz
652
+ \\end{reviewlist}
653
+ \\reviewlistcaption{リスト1.1: cap1}
654
+ \\end{reviewlistblock}
592
655
  EOS
593
656
  assert_equal expected, actual
594
657
  end
@@ -601,6 +664,16 @@ EOS
601
664
  \\begin{reviewlistlst}[caption={cap1},language={sql}]
602
665
  SELECT COUNT(*) FROM tests WHERE tests.no > 10 AND test.name LIKE 'ABC%'
603
666
  \\end{reviewlistlst}
667
+ EOS
668
+ assert_equal expected, actual
669
+
670
+ @config['caption_position']['list'] = 'bottom'
671
+ # XXX: caption_position won't work with highlight
672
+ actual = compile_block("//list[id1][cap1][sql]{\nSELECT COUNT(*) FROM tests WHERE tests.no > 10 AND test.name LIKE 'ABC%'\n//}\n")
673
+ expected = <<-EOS
674
+ \\begin{reviewlistlst}[caption={cap1},language={sql}]
675
+ SELECT COUNT(*) FROM tests WHERE tests.no > 10 AND test.name LIKE 'ABC%'
676
+ \\end{reviewlistlst}
604
677
  EOS
605
678
  assert_equal expected, actual
606
679
  end
@@ -633,6 +706,24 @@ EOS
633
706
  7: end
634
707
  \\end{reviewlist}
635
708
  \\end{reviewlistblock}
709
+ EOS
710
+ assert_equal expected, actual
711
+
712
+ @config['caption_position']['list'] = 'bottom'
713
+ actual = compile_block("//listnum[test1][ruby]{\nclass Foo\n def foo\n bar\n\n buz\n end\nend\n//}\n")
714
+ expected = <<-EOS
715
+ \\begin{reviewlistblock}
716
+ \\begin{reviewlist}
717
+ 1: class Foo
718
+ 2: def foo
719
+ 3: bar
720
+ 4:
721
+ 5: buz
722
+ 6: end
723
+ 7: end
724
+ \\end{reviewlist}
725
+ \\reviewlistcaption{リスト1.1: ruby}
726
+ \\end{reviewlistblock}
636
727
  EOS
637
728
  assert_equal expected, actual
638
729
  end
@@ -670,6 +761,22 @@ class Foo
670
761
  end
671
762
  end
672
763
  \\end{reviewlistnumlst}
764
+ EOS
765
+ assert_equal expected, actual
766
+
767
+ @config['caption_position']['list'] = 'bottom'
768
+ # XXX: caption_position won't work with highlight
769
+ actual = compile_block("//listnum[test1][ruby]{\nclass Foo\n def foo\n bar\n\n buz\n end\nend\n//}\n")
770
+ expected = <<-EOS
771
+ \\begin{reviewlistnumlst}[caption={ruby},language={}]
772
+ class Foo
773
+ def foo
774
+ bar
775
+
776
+ buz
777
+ end
778
+ end
779
+ \\end{reviewlistnumlst}
673
780
  EOS
674
781
  assert_equal expected, actual
675
782
  end
@@ -704,6 +811,21 @@ bar
704
811
  buz
705
812
  \\end{reviewsource}
706
813
  \\end{reviewlistblock}
814
+ EOS
815
+ assert_equal expected, actual
816
+
817
+ @config['caption_position']['list'] = 'bottom'
818
+ actual = compile_block("//source[foo/bar/test.rb]{\nfoo\nbar\n\nbuz\n//}\n")
819
+ expected = <<-EOS
820
+ \\begin{reviewlistblock}
821
+ \\begin{reviewsource}
822
+ foo
823
+ bar
824
+
825
+ buz
826
+ \\end{reviewsource}
827
+ \\reviewsourcecaption{foo/bar/test.rb}
828
+ \\end{reviewlistblock}
707
829
  EOS
708
830
  assert_equal expected, actual
709
831
  end
@@ -732,6 +854,19 @@ EOS
732
854
  foo
733
855
  bar
734
856
 
857
+ buz
858
+ \\end{reviewsourcelst}
859
+ EOS
860
+ assert_equal expected, actual
861
+
862
+ @config['caption_position']['list'] = 'bottom'
863
+ # XXX: caption_position won't work with highlight
864
+ actual = compile_block("//source[foo/bar/test.rb]{\nfoo\nbar\n\nbuz\n//}\n")
865
+ expected = <<-EOS
866
+ \\begin{reviewsourcelst}[title={foo/bar/test.rb},language={}]
867
+ foo
868
+ bar
869
+
735
870
  buz
736
871
  \\end{reviewsourcelst}
737
872
  EOS
@@ -888,6 +1023,18 @@ EOS
888
1023
 
889
1024
  actual = compile_block("//image[sampleimg][sample photo][]{\n//}\n")
890
1025
  assert_equal expected, actual
1026
+
1027
+ @book.config['pdfmaker']['use_original_image_size'] = nil
1028
+ @config['caption_position']['image'] = 'top'
1029
+ actual = compile_block("//image[sampleimg][sample photo]{\n//}\n")
1030
+ expected = <<-EOS
1031
+ \\begin{reviewimage}%%sampleimg
1032
+ \\reviewimagecaption{sample photo}
1033
+ \\label{image:chap1:sampleimg}
1034
+ \\reviewincludegraphics[width=\\maxwidth]{./images/chap1-sampleimg.png}
1035
+ \\end{reviewimage}
1036
+ EOS
1037
+ assert_equal expected, actual
891
1038
  end
892
1039
 
893
1040
  def test_image_with_metric
@@ -1008,6 +1155,17 @@ EOS
1008
1155
 
1009
1156
  actual = compile_block("//indepimage[sampleimg][sample photo][]\n")
1010
1157
  assert_equal expected, actual
1158
+
1159
+ @book.config['pdfmaker']['use_original_image_size'] = nil
1160
+ @config['caption_position']['image'] = 'top'
1161
+ actual = compile_block("//indepimage[sampleimg][sample photo]\n")
1162
+ expected = <<-EOS
1163
+ \\begin{reviewimage}%%sampleimg
1164
+ \\reviewindepimagecaption{図: sample photo}
1165
+ \\reviewincludegraphics[width=\\maxwidth]{./images/chap1-sampleimg.png}
1166
+ \\end{reviewimage}
1167
+ EOS
1168
+ assert_equal expected, actual
1011
1169
  end
1012
1170
 
1013
1171
  def test_indepimage_without_caption
@@ -1134,6 +1292,21 @@ EOS
1134
1292
  ccc & ddd\\textless{}\\textgreater{}\\& \\\\ \\hline
1135
1293
  \\end{reviewtable}
1136
1294
  \\end{table}
1295
+ EOS
1296
+ assert_equal expected, actual
1297
+
1298
+ @config['caption_position']['table'] = 'bottom'
1299
+ actual = compile_block("//table[foo][FOO]{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
1300
+ expected = <<-EOS
1301
+ \\begin{table}%%foo
1302
+ \\begin{reviewtable}{|l|l|}
1303
+ \\hline
1304
+ \\reviewth{aaa} & \\reviewth{bbb} \\\\ \\hline
1305
+ ccc & ddd\\textless{}\\textgreater{}\\& \\\\ \\hline
1306
+ \\end{reviewtable}
1307
+ \\reviewtablecaption{FOO}
1308
+ \\label{table:chap1:foo}
1309
+ \\end{table}
1137
1310
  EOS
1138
1311
  assert_equal expected, actual
1139
1312
  end
@@ -1240,6 +1413,26 @@ ccc & ddd\\textless{}\\textgreater{}\\& \\\\ \\hline
1240
1413
  \\end{reviewtable}
1241
1414
  \\end{table}
1242
1415
 
1416
+ \\begin{reviewtable}{|l|l|}
1417
+ \\hline
1418
+ \\reviewth{aaa} & \\reviewth{bbb} \\\\ \\hline
1419
+ ccc & ddd\\textless{}\\textgreater{}\\& \\\\ \\hline
1420
+ \\end{reviewtable}
1421
+ EOS
1422
+ assert_equal expected, actual
1423
+
1424
+ @config['caption_position']['table'] = 'bottom'
1425
+ actual = compile_block("//emtable[foo]{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n//emtable{\naaa\tbbb\n------------\nccc\tddd<>&\n//}\n")
1426
+ expected = <<-EOS
1427
+ \\begin{table}%%
1428
+ \\begin{reviewtable}{|l|l|}
1429
+ \\hline
1430
+ \\reviewth{aaa} & \\reviewth{bbb} \\\\ \\hline
1431
+ ccc & ddd\\textless{}\\textgreater{}\\& \\\\ \\hline
1432
+ \\end{reviewtable}
1433
+ \\reviewtablecaption*{foo}
1434
+ \\end{table}
1435
+
1243
1436
  \\begin{reviewtable}{|l|l|}
1244
1437
  \\hline
1245
1438
  \\reviewth{aaa} & \\reviewth{bbb} \\\\ \\hline
@@ -1285,6 +1478,21 @@ EOS
1285
1478
 
1286
1479
  actual = compile_block("//imgtable[sampleimg][test for imgtable][]{\n//}\n")
1287
1480
  assert_equal expected, actual
1481
+
1482
+ @book.config['pdfmaker']['use_original_image_size'] = nil
1483
+ @config['caption_position']['table'] = 'bottom'
1484
+ actual = compile_block("//imgtable[sampleimg][test for imgtable]{\n//}\n")
1485
+
1486
+ expected = <<-EOS
1487
+ \\begin{table}[h]%%sampleimg
1488
+ \\label{table:chap1:sampleimg}
1489
+ \\begin{reviewimage}%%sampleimg
1490
+ \\reviewincludegraphics[width=\\maxwidth]{./images/chap1-sampleimg.png}
1491
+ \\end{reviewimage}
1492
+ \\reviewimgtablecaption{test for imgtable}
1493
+ \\end{table}
1494
+ EOS
1495
+ assert_equal expected, actual
1288
1496
  end
1289
1497
 
1290
1498
  def test_imgtable_with_metrics
@@ -2039,6 +2247,21 @@ EOS
2039
2247
  e=mc^2
2040
2248
  \\end{equation*}
2041
2249
  \\end{reviewequationblock}
2250
+ EOS
2251
+ actual = compile_block(src)
2252
+ assert_equal expected, actual
2253
+
2254
+ @config['caption_position']['equation'] = 'bottom'
2255
+ expected = <<-EOS
2256
+
2257
+ \\reviewequationref{1.1}
2258
+
2259
+ \\begin{reviewequationblock}
2260
+ \\begin{equation*}
2261
+ e=mc^2
2262
+ \\end{equation*}
2263
+ \\reviewequationcaption{式1.1: The Equivalence of Mass \\reviewit{and} Energy}
2264
+ \\end{reviewequationblock}
2042
2265
  EOS
2043
2266
  actual = compile_block(src)
2044
2267
  assert_equal expected, actual