hiki2latex 0.9.12 → 0.9.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -3
  3. data/{README.en.md → README.md} +6 -4
  4. data/Rakefile +56 -28
  5. data/exe/#hiki2latex# +5 -0
  6. data/hiki2latex.gemspec +3 -0
  7. data/hiki2latex.wiki/AbstSample.pdf +0 -0
  8. data/hiki2latex.wiki/Math.png +0 -0
  9. data/hiki2latex.wiki/Report_head.png +0 -0
  10. data/hiki2latex.wiki/handout_sample.md +73 -0
  11. data/{docs/README.ja.md → hiki2latex.wiki/hiki2latex.md} +14 -16
  12. data/hiki2latex.wiki/hiki2latex_gemizing.md +221 -0
  13. data/hiki2latex.wiki/hiki2latex_init.md +97 -0
  14. data/hiki2latex.wiki/hiki2latex_listings.md +113 -0
  15. data/hiki2latex.wiki/hiki2latex_manual.md +31 -0
  16. data/hiki2latex.wiki/hiki2latex_math.md +147 -0
  17. data/hiki2latex.wiki/hiki2latex_table.md +103 -0
  18. data/hiki2latex.wiki/lpso_abst.pdf +0 -0
  19. data/hiki2latex.wiki/readme_en.md +60 -0
  20. data/{README.ja.md → hiki2latex.wiki/readme_ja.md} +46 -26
  21. data/hiki2latex.wiki/table.png +0 -0
  22. data/hikis/AbstSample.pdf +0 -0
  23. data/hikis/Math.png +0 -0
  24. data/hikis/Report_head.png +0 -0
  25. data/{docs/readme.ja.hiki → hikis/hiki2latex.hiki} +4 -6
  26. data/hikis/hiki2latex_gemizing.hiki +222 -0
  27. data/hikis/hiki2latex_init.hiki +95 -0
  28. data/hikis/hiki2latex_listings.hiki +113 -0
  29. data/hikis/hiki2latex_manual.hiki +32 -0
  30. data/hikis/hiki2latex_math.hiki +145 -0
  31. data/hikis/hiki2latex_table.hiki +102 -0
  32. data/hikis/lpso_abst.pdf +0 -0
  33. data/{docs/readme.hiki → hikis/readme_en.hiki} +2 -0
  34. data/hikis/readme_ja.hiki +133 -0
  35. data/hikis/table.png +0 -0
  36. data/latexes/AbstSample.pdf +0 -0
  37. data/latexes/Math.png +0 -0
  38. data/latexes/Report_head.png +0 -0
  39. data/latexes/head.tex +4 -0
  40. data/latexes/hiki2latex.aux +60 -0
  41. data/latexes/hiki2latex.log +307 -0
  42. data/latexes/hiki2latex.pdf +0 -0
  43. data/latexes/hiki2latex.synctex.gz +0 -0
  44. data/latexes/hiki2latex.tex +213 -0
  45. data/latexes/hiki2latex.toc +47 -0
  46. data/latexes/hiki2latex_gemizing.tex +212 -0
  47. data/latexes/hiki2latex_init.tex +103 -0
  48. data/latexes/hiki2latex_listings.tex +106 -0
  49. data/latexes/hiki2latex_manual.tex +38 -0
  50. data/latexes/hiki2latex_math.tex +151 -0
  51. data/latexes/hiki2latex_table.tex +108 -0
  52. data/latexes/lpso_abst.pdf +0 -0
  53. data/latexes/post.tex +17 -0
  54. data/latexes/table.png +0 -0
  55. data/lib/#hiki2latex.rb# +145 -0
  56. data/lib/hiki2latex/hiki2latex.rb +2 -1
  57. data/lib/hiki2latex/version.rb +1 -1
  58. data/lib/hiki2latex.rb +2 -2
  59. metadata +84 -13
  60. data/#Rakefile# +0 -42
  61. data/#hiki2latex.gemspec# +0 -42
  62. data/{docs/README.en.md → hiki2latex.wiki/readme.md} +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12076d5d0ba9927aa5c90cf3ca76272ecc0540c9
4
- data.tar.gz: e6e148da375fdc48d3a083554b07d809fd026d72
3
+ metadata.gz: a7f61b3eeb86e7a27f989b900398a479dc450adc
4
+ data.tar.gz: 3a53b98b515bdcb9065ad68b9f5b71dd2477df60
5
5
  SHA512:
6
- metadata.gz: 27e6493c92a853626cc67858f3b7e70035272de05c82c3758a2c832725f82fd7a6f863376f8690e6a3b3932852afb173dd261659cfb61f0ab52d9d1349092e0a
7
- data.tar.gz: ed43a50306c7a9af6fed161e5e53cd973feb8c352ebae7290b6ca40ea0bc5aae13edeb767bfe449043761395cc444b79ea1609fd8ed26d3b9d7ad3cb04d38f11
6
+ metadata.gz: c9c63ed2c36a0c6e85129529cc884973c88244ebe4b02a395bd54e127f7171747fe35830abd228cdc555d8d690e9730405424032912a27207f1432ae2e2cf07f
7
+ data.tar.gz: 8c16c4ae32dd6dd5a3e3209424c82c887f0aa40c5eca3a31052df9c6d40f702010e20cb5fef84eb175249d5048aa8c1edda3e6e7c66d71b1bb1bf1478497476b
data/.yardopts CHANGED
@@ -1,4 +1,2 @@
1
1
  -
2
- docs/README.en.md
3
- docs/README.ja.md
4
-
2
+ **/*.md
@@ -1,6 +1,8 @@
1
1
  # Hiki2latex
2
2
  convert hikidoc text to latex format.
3
3
 
4
+ \![badge](https://badge.fury.io/rb/hiki2latex.png)
5
+
4
6
  ## Installation
5
7
  Add this line to your application's Gemfile:
6
8
  ```ruby
@@ -29,6 +31,10 @@ or as a command line tool:
29
31
  <dt>Usage</dt><dd> hiki2latex [options] FILE</dd>
30
32
  </dl>
31
33
 
34
+ ```
35
+ > hiki2latex --pre PRICM_preamble.tex --post biblio.tex -p test.hiki > test.tex
36
+ > hiki2latex --listings --post post.tex -p ./test.hiki > test.tex
37
+ ```
32
38
 
33
39
  | option | operation|
34
40
  |:----|:----|
@@ -41,10 +47,6 @@ or as a command line tool:
41
47
  | --post FILE | put post file.|
42
48
  | --listings | use listings.sty for preformat with style.|
43
49
 
44
- ```
45
- > hiki2latex --pre PRICM_preamble.tex --post biblio.tex -p test.hiki > test.tex
46
- > hiki2latex --listings --post post.tex -p ./test.hiki > test.tex
47
- ```
48
50
 
49
51
  ## Development
50
52
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. Run `bundle exec hiki2latex` to use the gem in this directory, ignoring other installed copies of this gem.
data/Rakefile CHANGED
@@ -1,42 +1,70 @@
1
1
  require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
- require "rake/testtask"
4
2
  require 'yard'
5
- require 'systemu'
3
+ require "rake/testtask"
4
+ require 'fileutils'
5
+ p base_path = File.expand_path('..', __FILE__)
6
+ p basename = File.basename(base_path)
6
7
 
7
- #task :default => :test
8
8
  task :default do
9
9
  system 'rake -T'
10
10
  end
11
11
 
12
-
13
12
  desc "make documents by yard"
14
- task :yard do
15
- system "hiki2md docs/readme.hiki > docs/README.en.md"
16
- system "hiki2md docs/readme.ja.hiki > docs/README.ja.md"
13
+ task :yard => [:hiki2md] do
17
14
  YARD::Rake::YardocTask.new
18
15
  end
19
16
 
20
- RSpec::Core::RakeTask.new(:spec)
17
+ desc "transfer hikis/*.hiki to wiki"
18
+ task :hiki2md do
19
+ files = Dir.entries('hikis')
20
+ files.each{|file|
21
+ name=file.split('.')
22
+ case name[1]
23
+ when 'hiki'
24
+ p command="hiki2md hikis/#{name[0]}.hiki > #{basename}.wiki/#{name[0]}.md"
25
+ system command
26
+ when 'gif','png','pdf'
27
+ FileUtils.cp("hikis/#{file}","#{basename}.wiki/#{file}",:verbose=>true)
28
+ FileUtils.cp("hikis/#{file}","doc/#{file}",:verbose=>true)
29
+ end
30
+ }
31
+ readme_en="#{basename}.wiki/README_en.md"
32
+ readme_ja="#{basename}.wiki/README_ja.md"
33
+ if File.exists?(readme_en)
34
+ FileUtils.cp(readme_en,"./README.md",:verbose=>true)
35
+ elsif File.exists?(readme_ja)
36
+ FileUtils.cp(readme_ja,"./README.md",:verbose=>true)
37
+ FileUtils.cp(readme_ja,"#{basename}.wiki/Home.md",:verbose=>true)
38
+ end
39
+ end
40
+
41
+ desc "Make related report."
42
+ task :make_texes do
43
+ p files = Dir.entries('hikis')
44
+ files.each{|file|
45
+ next if file.include?('Readme')
46
+ name=file.split('.')
47
+ case name[1]
48
+ when 'hiki'
49
+ p command="hiki2latex -l 3 --listings -b hikis/#{name[0]}.hiki > latexes/#{name[0]}.tex"
50
+ system command
51
+ when 'gif','png','pdf'
52
+ FileUtils.cp("hikis/#{file}","latexes/#{file}",:verbose=>true)
53
+ end
54
+ }
55
+ source = File.join('hikis',basename+'.hiki')
56
+ target = File.join('latexes',basename+'.tex')
57
+ p command= "hiki2latex --listings --head latexes/head.tex --post latexes/post.tex -p #{source} > #{target}"
58
+ system command
21
59
 
22
- desc "all procedure for release."
23
- task :update =>[:setenv] do
24
- system 'emacs ./lib/hiki2latex/version.rb'
25
- system 'git add -A'
26
- system 'git commit'
27
- system 'git push -u origin master'
28
- system 'bundle exec rake release'
60
+ exit
29
61
  end
30
62
 
31
- desc "setenv for release from Kwansei gakuin."
32
- task :setenv do
33
- # status, stdout, stderr = systemu "scselect \| grep \'\*\' |grep KG"
34
- # puts stdout
35
- # p stdout != nil
36
- # if stdout != nil then
37
- p command='setenv HTTP_PROXY http://proxy.ksc.kwansei.ac.jp:8080'
38
- system command
39
- p command='setenv HTTPS_PROXY http://proxy.ksc.kwansei.ac.jp:8080'
40
- system command
41
- # end
42
- end
63
+ def kill_head_line(file_name)
64
+ cont = File.readlines(file_name)
65
+ unless cont[0]=~/\tableofcontents/ then
66
+ file = File.open(file_name,'w')
67
+ file.puts cont[1..-1]
68
+ file.close
69
+ end
70
+ end
data/exe/#hiki2latex# ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "hiki2latex"
4
+
5
+ Hiki2latex::Command.run(ARGV)
data/hiki2latex.gemspec CHANGED
@@ -38,5 +38,8 @@ EOF
38
38
  spec.add_development_dependency "test-unit"
39
39
  spec.add_development_dependency "systemu"
40
40
  spec.add_development_dependency "hiki2md"
41
+ spec.add_development_dependency "mathjax-yard"
42
+ spec.add_development_dependency "hiki2latex"
43
+
41
44
  spec.add_runtime_dependency "hikidoc","~>0.1.0"
42
45
  end
Binary file
Binary file
Binary file
@@ -0,0 +1,73 @@
1
+ # title:hiki2yardによる数値計算資料の作成システム
2
+ # author:情報科学科 西谷研究室 1234 西谷滋人
3
+
4
+ # 目的
5
+ hikiフォーマット文書をlatexフォーマットに変換するhiki2latex[1]をもちいて中間発表のabstract資料を作成する手順を紹介する.
6
+
7
+ # インストール
8
+ 最初に,作業を自動化するhiki2yard[2]をrubygemsからinstallする.terminal上で,
9
+ ```
10
+ gem install hiki2yaml
11
+ ```
12
+ によって環境を構築するCUIがinstallされる.
13
+ ```
14
+ hiki2yard --version
15
+ ```
16
+ によってversionが表示されれば,正常にinstallがなされていることが確認できる.
17
+
18
+ # 環境構築
19
+ terminal上で
20
+ ```
21
+ hiki2yard --init
22
+ ```
23
+ によって,必要となるファイルが自動的に配置される.指示に従って,hogehoge.gemspecを
24
+ 手動で修正する必要がある.さらに,
25
+ ```
26
+ bundle update
27
+ ```
28
+ によって,必要なgem filesがinstallされる.
29
+
30
+ # directory構成と各ファイルの意味
31
+ 次にdirectory構成を示す.これはbundle gem -bによって生成される標準gem構築環境に修正を加えた構成となる.
32
+ ```
33
+ bob% tree .
34
+ .
35
+ ├── CODE_OF_CONDUCT.md
36
+ ├── Gemfile
37
+ ├── Gemfile.lock
38
+ ├── LICENSE.txt
39
+ ├── README.md
40
+ ├── Rakefile
41
+ ├── bin
42
+ ├── doc
43
+ ├── exe
44
+ ├── hiki2yard.gemspec
45
+ ├── hiki2yard.wiki
46
+ ├── hikis
47
+ │ ├── README_en.hiki
48
+ │ ├── handout_sample.hiki
49
+ ...
50
+ ├── latexes
51
+ │ ├── handout_pre.tex
52
+ ├── lib
53
+ ├── pkg
54
+ └── spec
55
+ ```
56
+ hikisにtargetとなるfileをhiki構文で作る.Rakefileに必要なtaskが登録されている.latexesには現在のところ,中間発表のhandoutを生成するpre-formatのtexが置かれている.
57
+ ```
58
+ rake latex
59
+ ```
60
+ によって
61
+ ```
62
+ hiki2latex --pre latexes/handout_pre.tex hikis/handout_sample.hiki > latexes/handout_sample.tex
63
+ ```
64
+ が起動され,latexes上にtargetのtex format文書が生成される.この後,自動的に起動されるmacのapplicationであるTeXShop上でcommand-tを押下することで,latexからpdfへ変換を行い,中間発表のabstractを作成する.
65
+
66
+ # 個別の準備
67
+ - 各人は自分でhikis/hogehoge.hikiファイルを生成する
68
+ - Rakefileの:latexタスクにあるtarget変数を変更する
69
+ 後は,マニュアルに従ってpdf文書を作成できるはずである.質問がある場合は早めにね.
70
+
71
+ # 参考資料
72
+ 1. [hiki2latex](https://rubygems.org/gems/hiki2latex), 2016/08/11アクセス.
73
+ 1. [sakibts/hiki2yard](https://github.com/sakibts/hiki2yard), 2016/08/11アクセス.
@@ -2,9 +2,9 @@
2
2
  hiki formatで書かれた文章を,latex formatに変換する
3
3
  # 【documents】
4
4
  - ![](http://rubygems.org/gems/hiki2latex)
5
-
6
5
  # 【使用法】
7
- ```bash
6
+
7
+ ```tcsh
8
8
  Usage: hiki2latex [options] FILE
9
9
  -v, --version show program Version.
10
10
  -l, --level VALUE set Level for output section.
@@ -24,10 +24,10 @@ Usage: hiki2latex [options] FILE
24
24
 
25
25
  |ソース(hiki表示)|pdf(latex変換後)|
26
26
  |:----|:----|
27
- |[[Shunkuntype]]|[[Shunkuntype]]のレポート|
28
- |[[LPSO15研究会の例|LPSO15_fall_meeting_abst]]|{{attach_anchor(LPSO_abst.pdf)}}|
29
- |[[中間発表hand out例|AbstSample]]|{{attach_anchor(AbstSample.pdf)}}|
30
- |[[使っているformat集|DocumentFormatter_format_examples]]|
27
+ |[Shunkuntype](https://github.com/daddygongon/shunkuntype/wiki/Shunkuntype_report)|[Shunkuntypeのレポート](https://github.com/daddygongon/shunkuntype/wiki/shunkun_report.pdf)|
28
+ |[LPSO15研究会の例](LPSO15_fall_meeting_abst)|{{attach_anchor(LPSO_abst.pdf)}}|
29
+ |[中間発表hand out例](AbstSample)|{{attach_anchor(AbstSample.pdf)}}|
30
+ |[使っているformat集](DocumentFormatter_format_examples)|
31
31
 
32
32
 
33
33
  # 【仕様】
@@ -66,23 +66,21 @@ end
66
66
  ```
67
67
  本文(Shunkuntype_report.tex)と付録(targets.texs)がある.付録は'-l 2 -b'によってsubsectionからのtitle levelにしてbare modeで作っている.post.texにpostで付け加えるtex部を指定して,appendixをつけている.
68
68
 
69
- # 【code documents】
70
- [rdoc](http://nishitani0.kwansei.ac.jp/~bob/nishitani0/rdocs/hiki2latex/index.html)に置いといたけど,ruby gemsやgithubに置けば不要となる.
71
69
  # 【変更履歴,内容】
72
70
  変更履歴,内容を表に示す.15/8月期で基本開発.16/2月期にgem化.
73
71
  ## caption:変更履歴,内容
74
72
 
75
73
  |memo |date|hiki|
76
74
  |:----|:----|:----|
77
- |hikidoc.rbからhiki2latex.rb|15/8/4|[[hiki2latex_init]]|
75
+ |hikidoc.rbからhiki2latex.rb|15/8/4|![](hiki2latex_init)|
78
76
  |hiki2latex.rbひな形作成|15/8/5|
79
77
  |@fをStringIOからStringへ|15/8/5|
80
- |graph+caption|15/8/6|[[LPSO15_fall_meeting_abst]]|
81
- |math|15/8/7| [[hiki2latex_math]]|
82
- |table| 15/8/8| [[hiki2latex_table]]|
83
- |under_score| 15/8/11 | [[hiki2latex_math]]|
84
- |gem化| 16/2/13 | [[hiki2latex_gemizing]]|
85
- |listings| 16/2/16 | [[hiki2latex_listings]]|
78
+ |graph+caption|15/8/6|![](LPSO15_fall_meeting_abst)|
79
+ |math|15/8/7| ![](hiki2latex_math)|
80
+ |table| 15/8/8| ![](hiki2latex_table)|
81
+ |under_score| 15/8/11 | ![](hiki2latex_math)|
82
+ |gem化| 16/2/13 | ![](hiki2latex_gemizing)|
83
+ |listings| 16/2/16 | ![](hiki2latex_listings)|
86
84
 
87
85
 
88
86
  # 【開発メモ】
@@ -92,7 +90,7 @@ end
92
90
  ## 【 保留項目】
93
91
  1. includegraphicsの自動提供
94
92
  1. hikiに置かれているgraphは劣化版なんでそれをいじるのはあまり筋がよろしくない.
95
- 1. epsならできるかも.hikeのattach_viewでサイズをどういじっているか...
93
+ 1. epsならできるかも.hikiのattach_viewでサイズをどういじっているか...
96
94
  1. underbar(_)がlatexでは全て引っかかる.escapeする?-> 対応済み ![](hiki2latex_math)
97
95
  1. snake表記はrubyではfile名や変数名に頻繁に使われるので対処が必要かも.
98
96
 
@@ -0,0 +1,221 @@
1
+
2
+ # 【概要】
3
+ hikiフォーマットの記述をlatexフォーマットに変換する
4
+ # 【使用法】
5
+ gem化して配布可能とした.したがって,installがちゃんとできていれば,
6
+ :command lineから:
7
+ ```tcsh
8
+ bob% hiki2latex Shunkuntype_manual > tmp.tex
9
+ ```
10
+ :libraryとして:
11
+ ```ruby
12
+ require 'hiki2latex'
13
+
14
+ puts HikiDoc.to_latex(File.read(ARGV[0]))
15
+ ```
16
+ ```tcsh
17
+ bob% ruby trans.rb ./Shunkuntype_manual > tmp.tex
18
+ ```
19
+ などとして利用できる.
20
+
21
+ # 【help】
22
+
23
+ ```tcsh
24
+ bob% hiki2latex
25
+ Usage: hiki2latex [options]
26
+ -v, --version show program Version.
27
+ -l, --level VALUE set Level for output section.
28
+ -p, --plain FILE make Plain document.
29
+ -b, --bare FILE make Bare document.
30
+ --head FILE put headers of maketitle file.
31
+ --pre FILE put preamble file.
32
+ --post FILE put post file.
33
+ ```
34
+
35
+ # 【詳細使用例(-p)】
36
+ 以下のようなSampleDoc
37
+ ```hiki
38
+ bob% cat SampleDoc
39
+ !title
40
+ contents
41
+ *list1
42
+ *list2
43
+ !!title2
44
+ ```
45
+
46
+ ```tex
47
+ bob% hiki2latex -p SampleDoc
48
+ \documentclass[12pt,a4paper]{jsarticle}
49
+ \usepackage[dvipdfmx]{graphicx}
50
+ \begin{document}
51
+ \section{title}
52
+ contents
53
+ \begin{itemize}
54
+ \item list1
55
+ \item list2
56
+ \end{itemize}
57
+ \subsection{title2}
58
+ \end{document}
59
+ ```
60
+ となる.
61
+
62
+ # 【詳細使用例(-b)】
63
+ 上記
64
+ ```tex
65
+ \begin{document}
66
+ ...
67
+ \end{document}
68
+ ```
69
+ の中身だけを生成.いくつものtex filesをincludeしている場合の個別ファイル作成に便利.
70
+
71
+ この際,'-l 2'として付録のsectionとかを調整する.
72
+
73
+ # 【詳細使用例( --head, --pre, --post】
74
+ formatを標準と違うものにするために,pre,head,postがある.詳しくはsampleを見よ.
75
+ していしていく順番はないはずだけど,-p SampleDocだけは順番があるのかな.
76
+ あと,erbみたいにして使ったほうがいいかも.
77
+ ```tcsh
78
+ bob% hiki2latex --pre preamble.tex --head head.tex --post post.tex -p SampleDoc
79
+ ```
80
+ ```tex
81
+ %preamble.tex
82
+ \documentclass[12pt,a4paper]{jsarticle}
83
+ \usepackage[dvipdfmx]{graphicx}
84
+ \pagestyle{empty}
85
+ ```
86
+ ```tex
87
+ \begin{document}
88
+ ```
89
+ ```tex
90
+ %head.tex
91
+ \author{関西学院大学・理工学部・西谷滋人}
92
+ \title{touch typing習得環境shunkuntype}
93
+ \date{\today}
94
+ \maketitle
95
+ ```
96
+ ```tex
97
+ \section{title}
98
+ contents
99
+ \begin{itemize}
100
+ \item list1
101
+ \item list2
102
+ \end{itemize}
103
+ \subsection{title2}
104
+ ```
105
+ ```tex
106
+ %post.tex
107
+ \pagebreak
108
+ \appendix
109
+ \section{マニュアル}
110
+ \input{shunkuntype_manual}
111
+ \pagebreak
112
+ \section{gem化メモ}
113
+ \input{shunkuntype_gemizing}
114
+ \pagebreak
115
+ \section{初期版のコード解説}
116
+ \input{shunkuntype_coding}
117
+ ```
118
+ ```tex
119
+ \end{document}
120
+ ```
121
+ # 【lib/hiki2latex.rb】
122
+ ```ruby
123
+ require 'optparse'
124
+ require "hiki2latex/version"
125
+ #require "hiki2latex/hikidoc"
126
+ require "hiki2latex/hiki2latex"
127
+
128
+ module Hiki2latex
129
+ class Command
130
+
131
+ def self.run(argv=[])
132
+ new(argv).execute
133
+ end
134
+
135
+ def initialize(argv=[])
136
+ @argv = argv
137
+ @pre=@head=@post=nil
138
+ end
139
+
140
+ def execute
141
+ @argv << '--help' if @argv.size==0
142
+ command_parser = OptionParser.new do |opt|
143
+ opt.on('-v', '--version','show program Version.') { |v|
144
+ opt.version = Hiki2latex::VERSION
145
+ puts opt.ver
146
+ }
147
+ opt.on('-l VALUE','--level','set Level for output section.'){|level| @level=level.to_i}
148
+ opt.on('-p FILE', '--plain','make Plain document.') { |file| plain_doc(file) }
149
+ opt.on('-b FILE', '--bare','make Bare document.') { |file| bare_doc(file) }
150
+ opt.on('--head FILE', 'put headers of maketitle file.') { |file| @head=file }
151
+ opt.on('--pre FILE', 'put preamble file.') { |file| @pre=file }
152
+ opt.on('--post FILE', 'put post file.') { |file| @post=file }
153
+ opt.on('--listings', 'use listings.sty for preformat with style.') {@listings=true }
154
+ end
155
+ command_parser.banner = "Usage: hiki2latex [options] FILE"
156
+ command_parser.parse!(@argv)
157
+ plain_doc(@argv[0]) if @argv[0]!=nil
158
+ exit
159
+ end
160
+
161
+ # pre, post, listingsなどの拡張を処理
162
+ def plain_doc(file)
163
+ if @listings==true then
164
+ puts listings_preamble
165
+ elsif @pre==nil then
166
+ puts "\\documentclass[12pt,a4paper]{jsarticle}"
167
+ puts "\\usepackage[dvipdfmx]{graphicx}"
168
+ else
169
+ puts File.read(@pre)
170
+ end
171
+ puts "\\begin{document}"
172
+ puts File.read(@head) if @head!=nil
173
+ plain_tex = HikiDoc.to_latex(File.read(file),{:listings=>@listings})
174
+ puts mod_abstract(plain_tex)
175
+ puts File.read(@post) if @post!=nil
176
+ puts "\\end{document}"
177
+ end
178
+
179
+ def bare_doc(file)
180
+ bare_doc = HikiDoc.to_latex(File.read(file),{:level=>@level,:listings=>@listings})
181
+ puts kill_head_tableofcontents(bare_doc)
182
+ end
183
+ ```
184
+
185
+ ## kill_head_line
186
+ kill_head_lineで付録(bare_text)にtocが含まれている場合は削除.
187
+ ```ruby
188
+ def kill_head_tableofcontents(text)
189
+ text.gsub!(/^\\tableofcontents/,'')
190
+ end
191
+ ```
192
+
193
+ ## mod_abstract
194
+ mod_abstractで\verb|\section{abstract}|で書かれた内容をabstract環境へ移行する.一行づつの処理は有限状態マシン的に処理するのがいいらしい(Ruby Best Practice, p.112).一旦contentとabstractを分けて,その後,tableofcontentの前にabstractを挿入している.delete_at(0)は一行目に\verb|\section{【abstract】}|が存在するため.
195
+ ```ruby
196
+ # convert section to abstract
197
+ def mod_abstract(text)
198
+ abstract,section = [],[]
199
+ content = ""
200
+ text.split("\n").each do |line|
201
+ case line
202
+ when /^\\section(.+)/
203
+ section.push $1
204
+ end
205
+
206
+ case section[-1]
207
+ when /.+abstract.+/
208
+ abstract << line+"\n"
209
+ when /.+概要.+/
210
+ abstract << line+"\n"
211
+ else
212
+ content << line+"\n"
213
+ end
214
+ end
215
+ abstract.delete_at(0)
216
+ content.gsub!(/\\tableofcontents/){|text|
217
+ tt="\n\\abstract\{\n#{abstract.join}\}\n\\tableofcontents"
218
+ }
219
+ return content
220
+ end
221
+ ```
@@ -0,0 +1,97 @@
1
+ # 【変更作業の手順】
2
+ - hikiをhtmlに変換するhikidoc.rbに加えていく形で変更
3
+ - hikidocについて調べよ(澄田の宿題)
4
+
5
+ ```ruby
6
+ bob% diff hikidoc.rb master-hikidoc/lib/hikidoc.rb
7
+ 39d38
8
+ < require './hiki2latex.rb'
9
+ 58,61d56
10
+ < def HikiDoc.to_latex(src, options = {})
11
+ < new(LatexOutput.new(""), options).compile(src)
12
+ < end
13
+ <
14
+ 916,917c911
15
+ < # puts HikiDoc.to_html(ARGF.read(nil))
16
+ < puts HikiDoc.to_latex(ARGF.read(nil))
17
+ ---
18
+ > puts HikiDoc.to_html(ARGF.read(nil))
19
+ ```
20
+
21
+ - hiki2latex.rbに変更を加えていく.
22
+ # 【設計】
23
+ ## 【maketitleの挿入】
24
+ latex formatに仕込む際にテキストの順序が前後するコマンドが幾つかある.
25
+ \\maketitleの前に置かれた,
26
+ - title
27
+ - author
28
+ である.これらはheadersとしてtext部と別に返すことも可能である.
29
+ 具体的には,
30
+
31
+ | to_html | *fを返す|
32
+ |:----|:----|
33
+ | to_latex | *fと*headを返す.|
34
+
35
+ なおto_htmlとの互換性を維持するため*headを後に返すようにしている.
36
+
37
+ しかし,この部分は,to_htmlとの整合性を考えるとto_latexで処理してしまった方がよい.
38
+ そこで,
39
+
40
+ ```ruby
41
+ def finish
42
+ @f.string
43
+ end
44
+ ```
45
+ となっているのを,
46
+
47
+ ```ruby
48
+ def finish
49
+ if @head != "" then
50
+ @head << "\\maketitle\n"
51
+ return @head+@f
52
+ else
53
+ return @f
54
+ end
55
+ end
56
+ ```
57
+ とした.
58
+
59
+ # 【sample】
60
+ - ![](Jihou15)
61
+
62
+ # 【pdfの貼り込み】
63
+ pdfpagesを使おうとすると
64
+
65
+ ```
66
+ /usr/local/texlive/2015/texmf-dist/tex/latex/pdfpages/pdfpages.sty:70: LaTeX Er
67
+ ror: Missing \begin{document}.
68
+
69
+ See the LaTeX manual or LaTeX Companion for explanation.
70
+ Type H <return> for immediate help.
71
+ ...
72
+
73
+ l.70 \input{pp\AM@driver.def}
74
+ ```
75
+ というエラーが出る.この解決法がわからず,incudegraphicsで対応.
76
+
77
+ ```
78
+ ¥documentclass{jsarticle}
79
+ ¥usepackage[dvipdfmx,hiresbb]{graphicx}
80
+ ¥begin{document}
81
+ ¥includegraphics[width=5cm]{sample.pdf}
82
+ ¥end{document}
83
+
84
+ の4行目を
85
+ ¥includegraphics[page=3,width=5cm]{sample.pdf}
86
+ とすれば、
87
+
88
+ 普通に3ページ目の画像を使うことができました。
89
+
90
+ 美文書5版のCD-ROMから普通にインストールした TeXShopの環境です。
91
+
92
+ つまり、何も(といっても、同書 P114 にあるように、
93
+ --shell--escape--commands=extractbb
94
+ をTeXShop環境設定の「内部設定」タブ pdfTex のLatexのオプションとして付け加えています。)特別なことをせずに、ページ指定をするだけで、できてしまいました。
95
+
96
+ 次の、美文書の版には、ページ設定についても解説していただくといいかも知れません。>奥村先生お願いします。
97
+ ```