#contents
*要件 [#a3ba2fa4]
-Windows
-日本語文書
-pdf, html両方出力可能
*インストール [#v1ee2bae]
**事前準備 [#w580a6c2]
Python2.4以上がインストールされていること。
**asciidoc のインストール [#s5df18f7]
c:\binにディレクトリを掘って配置することにする。
cd c:\bin
mkdir asciidoc
unzip asciidoc-8.5.3.zip -d asciidoc
a2x.pyの修正。PDFを作るときにdblatexはPython版のを使うので(後でインストールする)、それへのパスなどの書換え。
CONF_DIRとかを書き換えとく必要あり。
--- a2x.py.orig Thu Jan 28 22:26:32 2010
+++ a2x.py Fri Jan 29 21:32:46 2010
@@ -25,7 +25,7 @@
# AsciiDoc global configuration file directory.
# NOTE: CONF_DIR is "fixed up" by Makefile -- don't rename or change syntax.
-CONF_DIR = '/etc/asciidoc'
+CONF_DIR = 'C:/bin/asciidoc'
######################################################################
@@ -38,16 +38,16 @@
ENV = None
# External executables.
-ASCIIDOC = 'asciidoc'
+ASCIIDOC = 'C:/bin/asciidoc/asciidoc.py'
XSLTPROC = 'xsltproc'
-DBLATEX = 'dblatex' # pdf generation.
+DBLATEX = 'C:/Python26/Scripts/dblatex' # pdf generation.
FOP = 'fop' # pdf generation (--fop option).
W3M = 'w3m' # text generation.
LYNX = 'lynx' # text generation (if no w3m).
-XMLLINT = 'xmllint' # Set to '' to disable.
-EPUBCHECK = 'epubcheck' # Set to '' to disable.
+XMLLINT = '' # Set to '' to disable.
+EPUBCHECK = '' # Set to '' to disable.
# External executable default options.
ASCIIDOC_OPTS = ''
DBLATEX_OPTS = ''
FOP_OPTS = ''
XSLTPROC_OPTS = ''
@@ -533,7 +533,7 @@
docbook_file = self.dst_path('.xml')
xsl = self.asciidoc_conf_file(os.path.join('dblatex','asciidoc-dblatex.xsl'))
sty = self.asciidoc_conf_file(os.path.join('dblatex','asciidoc-dblatex.sty'))
- shell('"%s" -t %s -p "%s" -s "%s" %s "%s"' %
+ shell('python "%s" -t %s -p "%s" -s "%s" %s "%s"' %
(DBLATEX, self.format, xsl, sty, self.dblatex_opts, docbook_file))
def to_dvi(self):
以上でxhtmlは出力できるようになった。PDFはa2xのバッチ処理で、(PlainText)→asciidoc→(DocBook XML)→dblatex→(PDF)と
変換させてる。asciidocからはHTML, XHTML, DocBook形式に出力するだけ。次にPDF出力に必要な環境を整える。
**xsltproc, xmllintのインストール [#b93ae2d9]
xsltprocは必須だが、xmllintはxmlの構文チェックするだけみたいなので、無くてもよい。--no-xmllintオプションで処理を飛ばすこともできたりする。 http://www.zlatkovic.com/libxml.en.html にてlibxslt, libxmlのwin32版のバイナリを入手できる。xmllint.exe, xsltproc.exeと関連するDLLをC:\binに配置する。zlibが必要なときもあるかも。一応いれとけ。
**MikTeXのインストール [#b6551b67]
Windows版のTeX一式。インストーラが便利。 http://miktex.org/ からダウンロードできる。Basicインストール後、dblatexの実行に必要なパッケージをmpmにてインストールする必要あり。mpm.exeはMikTexのbin内にある。MiKTeXのバージョンはbasic-miktex-2.8.3582 を入れた。
必要なパッケージ
changebar, colortbl, fancybox, fancyhdr, fancyvrb, listings,
overpic, rotating, subfigure, titlesec, bibtopic, enumitem,
eepic, lm, lastpage, helvetic, times, symbol, courier.
appendix, footmisc, pdfpages, stmaryrd, wasysym
eso-pic, xcolor,
追加パッケージはまだあとで日本語関連で必要になったり、忘れてたりするのがある
かもしれないが、とりあえずここまで入れる。
ここで一度MiKTexのbinへパスが通っているか確認。通ってなければ通すこと。
**dblatexのインストール [#rccc9c7b]
MiKTeXにもdblatex.exeは入っているが、これは使わないでPython版のものを使う。
http://dblatex.sourceforge.net/ この辺から最新版の0.2.12をダウンロード。
zipなんかで固めてるのをunzipなどして、
cd dblatex-0.2.12
python setup.py install
でインストールする・・・前に、setup.pyの325行目
-- iroot = root.split(pref + os.path.sep)[1]
++ iroot = root.split(pref + os.path.sep)[0]
直しとかないと、インストールがこける。実行は
python C:/Python26/Scripts/dblatex book.xml
てな感じになる。
もし、
warning: failed to load external entity "file:custom.xsl"
というエラーが出る場合。次のファイルを修正する。~
C:\Python26\lib\site-packages\dbtexmf\core\dbtex.py
--- dbtex.py.orig Thu Jan 28 23:27:39 2010
+++ dbtex.py Thu Jan 28 23:28:40 2010
@@ -256,7 +256,7 @@
xslset = "doclist.xsl"
f = file(xslset, "w")
f.write(self.xsl_header)
- f.write('<xsl:import href="%s"/>\n' % path_to_uri(self.xslbuild))
+ f.write('<xsl:import href="%s"/>\n' % path_to_uri(self.tmpdir + '/' + self.xslbuild))
f.write('<xsl:import href="%s"/>\n' % path_to_uri(self.xslset))
f.write('</xsl:stylesheet>\n')
f.close()
**動作確認 [#vda4ba04]
ここまでで、asciidocでHTML,PDFの出力が可能になったはず。でも日本語のDocBookをPDFにすると文字化けする。ちょっと使って試してみる。
cd c:/bin/asciidoc
pyhon asciidoc.py doc/asciidoc.txt
これでdoc/asciidoc.htmlができる。ちなみに目次を作るときは -a toc オプションをつける。章に番号を振るには-a numbered オプションをつける。
python asciidoc.py -a toc -a numbered doc/asciidoc.txt
次。PDF。
python a2x.py -f pdf doc/asciidoc.txt
なんか途中でエラーになって止まるときは、-nオプションをつけてドライランさせてみる。すると実行予定のバッチが表示されるので、一つずつ実行して、原因を潰していく。たいていpdftexのエラーとか、モジュールが無いとかそういうのだ。
python a2x.py -n -f pdf doc/asciidoc.txt
ここまででasciidocのPlain Textからhtml、pdfを出力できるようになった。
**Vim用プラグインのインストール [#m5a00060]
asciidoc用のVimシンタックスプラグインをインストールする。asciidoc/vimにftdetect, syntaxディレクトリがあるので、これらのファイルをvim/vimfiles以下にコピーする。
cd c:/bin/asciidoc/vim
cp -uR syntax c:/vim/vimfiles
cp -uR ftdetect c:/vim/vimfiles
**dblatex(とpdflatex)の日本語対応化 [#ub42e853]
日本語のDocBookからPDFを出力するための環境整備をする。まずはテスト用のDocBookのXMLを作る。エンコーディングはUTF-8で書くこと。~
日本語のDocBookからPDFを出力するためのpdflatexの環境整備をする。まずはテスト用のDocBookのXMLを作る。エンコーディングはUTF-8で書くこと。(注:[[DblatexのバックエンドをXeTeXに変更してみる]]でpdflatexの変わりにxetexをバックエンドにする方法でやってみたら、こっちの方が良かった。dblatexはバックエンドをpdftexかxetexかどちらか選ぶことができるのだが、xetexの方が簡単で良い結果を得られたので、特別な理由がなければここで述べてるcyberbitフォントのインストールはせずに、xetexの設定をする[[DblatexのバックエンドをXeTeXに変更してみる]]へ進んだほうがいい。)
~
jptest.txt
= タイトル =
== あいうえお ==
12345
まあテストなのでこんなもんで・・・。
で、これをPDFにしてみる。
python a2x.py -f pdf jptest.txt
するとPDFは作られるが、日本語が文字化けしてしまう。ちなみにこのa2xでの中間のDocBookのXMLは次のようになっている。(↓データがちょっと変)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<?asciidoc-toc?>
<?asciidoc-numbered?>
<article lang="en">
<articleinfo>
<title>タイトル</title>
</articleinfo>
<section id="_">
<title>あいうえお</title>
<simpara>12345</simpara>
</section>
</article>
おかしい!DocBookのlang属性がデフォのままのenのままだ。ここはjpにする。またlang属性がarticleだけに付いてるが、これを文書全体の属性にするやりかたがある。asciidocのパラメータで、-d(--doctyppe)でarticle, book, manpageが選べるが、デフォがarticleなのでこれをbookにすれば解決するはず。
python a2x.py -a lang=ja -d book -f docbook jptest.txt
jptest.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<?asciidoc-toc?>
<?asciidoc-numbered?>
<book lang="ja">
<bookinfo>
<title>タイトル</title>
</bookinfo>
<chapter id="_">
<title>あいうえお</title>
<simpara>12345</simpara>
</chapter>
</book>
で、これをdblatexにかけてpdfを作るための環境を整備する。MiKTexのmpmで
cjk, miktex-cjkutils-bin-2.8, zhmetrics
をインストールする。次にCyberbitフォントをインストールする。このフォントは http://aol-4.vo.llnwd.net/pub/communicator/extras/fonts/windows/ からCyberbit.ZIP をダウンロードし、Vista, 7なら
C:/Users/YOURNAME/AppData/Roming/MiKTeX/2.8/fonts/truetype/cyberbit/cyberbit.ttf
XPなら(たぶん)
C:/Documents And Settings/YOURNAME/Local Settings/Application Data/MiKTeX/2.8/fonts/truetype/cyberbit/cyberbit.ttf
として配置する。次におもむろに
mktexlsr
でフォントデータベースを更新。
それから、
C:/Python26/share/dblatex/xsl/lang.xsl
--- lang.xsl.orig Sun Aug 23 08:13:19 2009
+++ lang.xsl Sat Jan 30 03:04:43 2010
@@ -7,7 +7,7 @@
<xsl:param name="latex.encoding">latin1</xsl:param>
<xsl:param name="korean.package">CJK</xsl:param>
-<xsl:param name="cjk.font">cyberbit</xsl:param>
+<xsl:param name="cjk.font">song</xsl:param>
<xsl:param name="xetex.font">
<xsl:text>\setmainfont{DejaVu Serif} </xsl:text>
<xsl:text>\setsansfont{DejaVu Sans} </xsl:text>
cyberbitをsongにz変更する。
以上で作業完了。日本語も正しくPDFで出力できるようになる。AsciiDocというよりほとんどpdflatexの設定になってしまった・・・。
#htmlinsert(adBigRect)
**コメントをどーぞ [#p4548f90]
#comment
----
[[CategoryTeX]] [[CategoryAsciiDoc]]
HTML convert time: 0.003 sec.