Mac!!!ガジェットとはちょっとした小物・気のきいた小道具のこと。Macのコネタを紹介。スマートフォンなどなど。ishogaki2ドキュメント作成システムSphinxが便利という話を書きました。PDFを出力する方法は2つあって,rst2pdfという拡張を使う方法とLaTeXのファイルをつくってPDFに変換する方法です。ここでは自動で生成されるTeXのフォーマットを変更する方法について述べます。Sphinxは1.2.2を使ってます。LaTeXでPDFを作るにはまずTeXを一式インストールしておく必要があります。これはユーザー会のサイトに詳しい説明があります。SphinxとLaTeXの設定が終わったとして,いざ日本語のドキュメントを作ってみると,ドキュメントクラスにjsarticleを使っていてもかなり個性的なフォーマットになっています。気に入らないので,SphinxのTeXソース自動生成の設定を変更します。(ただし,まだ試行錯誤中なので,完全に自分の好みにするには至ってません)まずSphinxのPythonのソースコードを見ます。MacPortsでMacにインストールした場合は/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/sphinx/にSphinxのソースコードがあります。他の方法でインストールした場合は適宜探して下さい。このディレクトリには多くのファイルがあります。writers/がでます。sphinxmanual.clsです。config.pyです。Sphinxではデフォルトの用紙サイズがletterpaperになっているので,a4paperに変更します。これはconfig.pyの中のlatex関係の設定のところにあります。None),latex_paper_sizeの設定を変更します。diffの様子(-が修正前,+が修正後です。以下同様)sphinxにはsphinx-quickstartという必要なファイルを一気に作ってくれるコマンドがあります。便利なのですが,LaTeXのreportクラスを使う”manual”がデフォルトになっています。(jsarticle)クラスを使う”howto”をデフォルトにします。これはquickstart.pyにあります。quickstart.py内に自動生成するconf.pyの内容がそのまま書いてあるので,そこのLaTeX関連のところを変更します。‘howto’),上のように自動生成するタイプを変更します。次にwriterディレクトリのlatex.pyを変更します。このファイルで,元のreSTファイルからTeXのソースファイルを生成するための設定を行っていると思われます。デフォルトの行間が広すぎ気がするので,行間を狭くするように設定しました。全体の行間指定をどこで行っているのかよくわからないので,とりあえず\baselinestretchのコマンドを挿入するようにしました。\baselinestrechを1以下にすると全体の行間が狭くなります。TeXソースの最初のほうに設定が入るように,BEGIN_DOCを以下のように設定しました。r”’\begin{document}%(shorthandoff)s\renewcommand{\baselinestretch}{0.8}”’途中にdefault_elementsという設定があるので,とりあえず余計な設定は消しました。ここでもpapersizeとpointsizeがありますが,ここだけ変更しても反映されません。config.pyの修正が必要になります。jsbookを使いたいので,以下のようにしました。sphinxmanual.clsを変更します。ドキュメントをhowtoにすると,sphinxhowto.cls,manualにするとsphinxmanual.clsが使われます。ここではsphinxhowto.clsを使うとします。manualの場合は適宜読み替えて下さい。ページ番号が表示されるようにpagestyleをplainにします。sphinx.styにあります。\pagestyle{plain}最初のページのページスタイルはsphinxhowto.clsで指定していますので,それを修正します。ページスタイルが全体で統一されるように81行目あたりの\thispagestyleをコメントアウト。sectionにしか番号がふられないので,番号がふられる階層を深くします。sphinxhowto.clsのsecnumdepthを変えます。preamble.%-\setcounter{secnumdepth}{2}+\setcounter{secnumdepth}{3}タイトルと目次を変更します。sphinxhowto.clsを修正します。デフォルトの設定だとタイトル部分が広すぎるので,狭くなるように文字サイズを縮小して,リリース番号を消去しました。仕切りの横罫線も消すようにしました。\par\end{flushright}目次の横罫線を消去。sphinxmanual.clsの修正で行えます。これらの修正はTeXの知識が必要になってきます。今回書いたことがSphinxユーザーの役に立てば幸いです。疑問なこともまだあります。情報あれば教えて下さい。languageをjaにすると日本語設定になる。”release”が「リリース」になったり,日付が「年月日」になったりする。languageをjaにすると日本語設定になる。”release”が「リリース」になったり,日付が「年月日」になったりする。writer(latexコマンド実行)という順番で動作しています。行間の設定はどこでしているのか?特に記載はないのでデフォルトの値を使っているのではないでしょうか。¥renewcommand{¥baselinestretch}{2.0}などとpreambleに付け加えれば、行間を変えられます。22:08どうもアドバイスありがとうございます。日本語への変換の技術がどうなってるのか知らなかったので,参考になります。正解かはわかりませんが,locale/ja/LC_MESSAGES内のsphinx.poを編集して,msgfmtで処理したら,翻訳される部分の文言を変更できました。TeXのコマンドをconf.pyのプリアンブルに設定できたんですね。ブログの記事には行間と書きましたが,よく考えると自分がやりたかったのはパラグラフ間の間隔の調整でした。\parskip=0zw\parindent=1zwをプリアンブルで設定することで,割りと好みの感じになりました。英語のときはデフォルトのほうがいいかと思いますが。コメントをキャンセルメールアドレスが公開されることはありません。WordPress.com.。