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.
- checksums.yaml +4 -4
- data/.yardopts +1 -3
- data/{README.en.md → README.md} +6 -4
- data/Rakefile +56 -28
- data/exe/#hiki2latex# +5 -0
- data/hiki2latex.gemspec +3 -0
- data/hiki2latex.wiki/AbstSample.pdf +0 -0
- data/hiki2latex.wiki/Math.png +0 -0
- data/hiki2latex.wiki/Report_head.png +0 -0
- data/hiki2latex.wiki/handout_sample.md +73 -0
- data/{docs/README.ja.md → hiki2latex.wiki/hiki2latex.md} +14 -16
- data/hiki2latex.wiki/hiki2latex_gemizing.md +221 -0
- data/hiki2latex.wiki/hiki2latex_init.md +97 -0
- data/hiki2latex.wiki/hiki2latex_listings.md +113 -0
- data/hiki2latex.wiki/hiki2latex_manual.md +31 -0
- data/hiki2latex.wiki/hiki2latex_math.md +147 -0
- data/hiki2latex.wiki/hiki2latex_table.md +103 -0
- data/hiki2latex.wiki/lpso_abst.pdf +0 -0
- data/hiki2latex.wiki/readme_en.md +60 -0
- data/{README.ja.md → hiki2latex.wiki/readme_ja.md} +46 -26
- data/hiki2latex.wiki/table.png +0 -0
- data/hikis/AbstSample.pdf +0 -0
- data/hikis/Math.png +0 -0
- data/hikis/Report_head.png +0 -0
- data/{docs/readme.ja.hiki → hikis/hiki2latex.hiki} +4 -6
- data/hikis/hiki2latex_gemizing.hiki +222 -0
- data/hikis/hiki2latex_init.hiki +95 -0
- data/hikis/hiki2latex_listings.hiki +113 -0
- data/hikis/hiki2latex_manual.hiki +32 -0
- data/hikis/hiki2latex_math.hiki +145 -0
- data/hikis/hiki2latex_table.hiki +102 -0
- data/hikis/lpso_abst.pdf +0 -0
- data/{docs/readme.hiki → hikis/readme_en.hiki} +2 -0
- data/hikis/readme_ja.hiki +133 -0
- data/hikis/table.png +0 -0
- data/latexes/AbstSample.pdf +0 -0
- data/latexes/Math.png +0 -0
- data/latexes/Report_head.png +0 -0
- data/latexes/head.tex +4 -0
- data/latexes/hiki2latex.aux +60 -0
- data/latexes/hiki2latex.log +307 -0
- data/latexes/hiki2latex.pdf +0 -0
- data/latexes/hiki2latex.synctex.gz +0 -0
- data/latexes/hiki2latex.tex +213 -0
- data/latexes/hiki2latex.toc +47 -0
- data/latexes/hiki2latex_gemizing.tex +212 -0
- data/latexes/hiki2latex_init.tex +103 -0
- data/latexes/hiki2latex_listings.tex +106 -0
- data/latexes/hiki2latex_manual.tex +38 -0
- data/latexes/hiki2latex_math.tex +151 -0
- data/latexes/hiki2latex_table.tex +108 -0
- data/latexes/lpso_abst.pdf +0 -0
- data/latexes/post.tex +17 -0
- data/latexes/table.png +0 -0
- data/lib/#hiki2latex.rb# +145 -0
- data/lib/hiki2latex/hiki2latex.rb +2 -1
- data/lib/hiki2latex/version.rb +1 -1
- data/lib/hiki2latex.rb +2 -2
- metadata +84 -13
- data/#Rakefile# +0 -42
- data/#hiki2latex.gemspec# +0 -42
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7f61b3eeb86e7a27f989b900398a479dc450adc
|
4
|
+
data.tar.gz: 3a53b98b515bdcb9065ad68b9f5b71dd2477df60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9c63ed2c36a0c6e85129529cc884973c88244ebe4b02a395bd54e127f7171747fe35830abd228cdc555d8d690e9730405424032912a27207f1432ae2e2cf07f
|
7
|
+
data.tar.gz: 8c16c4ae32dd6dd5a3e3209424c82c887f0aa40c5eca3a31052df9c6d40f702010e20cb5fef84eb175249d5048aa8c1edda3e6e7c66d71b1bb1bf1478497476b
|
data/.yardopts
CHANGED
data/{README.en.md → README.md}
RENAMED
@@ -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
|
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
|
-
|
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
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
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
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
|
-
|
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
|
-
|[
|
28
|
-
|[
|
29
|
-
|[
|
30
|
-
|[
|
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
|
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
|
81
|
-
|math|15/8/7| [
|
82
|
-
|table| 15/8/8| [
|
83
|
-
|under_score| 15/8/11 | [
|
84
|
-
|gem化| 16/2/13 | [
|
85
|
-
|listings| 16/2/16 | [
|
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ならできるかも.
|
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
|
+
```
|