hiki2latex 0.9.12 → 0.9.12.1

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 (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
+ ```