hoge hoge - mk_maple_hiki Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}
!概要
ist2上のMapleHikiデータ構築メモ

!背景
ist2への移行に伴い,データの再構築を行う.
* latex2hikiを基本に
* 独自codeを追加
* Rakefileでの自動化
* directory構成による生成の自動化

!ディレクトリ構成
ディレクトリ構成は以下のとおり.
* .latex2hiki_rcにmk_latex_hikiが使う基本情報が入っている.
* Rakefileはlatex2hikiなどを自動化するcodeがはいっている
* MapleProgramming/MapleProgramming.texのlatex構造を元に,hikiのdirectory構造を作成.

<<<
.
├── .latex2hiki_rc
├── Equals -> ../MaplePrime/Equals
├── Etcetra -> ../MaplePrime/Etcetra/
├── FirstLeaf -> ../MaplePrime/FirstLeaf/
├── Functions -> ../MaplePrime/Functions/
├── MapleProgramming.out
├── MapleProgramming.pdf
├── MapleProgramming.tex
├── MapleProgramming.toc
├── Rakefile
├── Programming
│   ├── ExAnsIf
│   ├── ExAnsIf.tex
...
│   ├── figures
│   │   ├── MapleProgramming.log
│   │   ├── MapleProgramming.mw
│   │   ├── MapleProgramming.tex
│   │   ├── MapleProgramming.txt
│   │   ├── MapleProgrammingimage0.eps
...
│   ├── fsolve.tex
│   └── fsolve1.tex
└── figures
    ├── Equalsplot2d1.eps
....
7 directories, 73 files
>>>

!mk_maple_hiki
<<<
bob% mk_maple_hiki
For making maple hiki
    -v, --version                    show program Version.
        --init [NAME]                initialize NAME directory.
        --figures [NAME]             gather and convert figures in NAME dir.
        --scale [VAL]%               set scale for convert figures.
        --level [VAL]                set level for head start level .
        --hiki [NAME]                make hiki contents from NAME directory.
>>>

!Rakefile
<<< ruby
bob% cat Rakefile
task :default do
  system 'rake -T'
end

desc "make documents by mk_maple_hiki"
task :maple do
  dirs=Dir.glob('./*')
  dirs.each{|directory|
    next unless FileTest.directory?(directory)
    p directory
    FileUtils.cp('./.latex2hiki_rc',directory)
    system "mk_maple_hiki --hiki #{directory}"
    system "mk_maple_hiki --figures #{directory}"
  }

end

desc "strip multiple braces"
task :strip do
  lines = File.readlines(ARGV[1])
  text = ""
  lines.each{|line|
    #  if md=line.match(/\{\{(.+?)\}\}/) then
    if md=line.match(/\{\{.+?\}\}/) then
      line.gsub!(/\{\{\{(.+?)\}\}\}/){|text|
        "\{#{$1}\}"
      }
      line.gsub!(/\{\{(.+?)\}\}/){|text|
        "\{#{$1}\}"
      }
    end
    text << line
  }
  print text
end

desc "change commands"
task :change do
  lines = File.readlines(ARGV[1])
  text = ""
  change_pair = [["ChartElementTwo","subsection"]]
  lines.each{|line|
    if md=line.match(Regexp.new("\\A\\\\ChartElementTwo")) then
      line.gsub!(change_pair[0][0],change_pair[0][1])
    end
    text << line
  }
  print text
end

>>>