pytho****@googl*****
pytho****@googl*****
2011年 3月 26日 (土) 09:17:02 JST
Revision: 1019fd328c9b Author: anywa****@gmail***** Date: Fri Mar 25 17:16:21 2011 Log: Edited wiki page LaTeXBuild through web user interface. http://code.google.com/p/python-doc-ja/source/detail?repo=wiki&r=1019fd328c9b Modified: /LaTeXBuild.wiki ======================================= --- /LaTeXBuild.wiki Fri Mar 25 16:51:24 2011 +++ /LaTeXBuild.wiki Fri Mar 25 17:16:21 2011 @@ -118,6 +118,123 @@ $TEXMFLOCAL は TeX ディストリビューション等環境に依存して変わります。 例えば TeXLive 2010 では /usr/local/texlive/2010/texmf-local など。 +== クラスファイル周りの設定 == + +日本語用のクラスファイルは pTeX に付属する jarticle, jreport, jbook と +奥村晴彦氏によるメンテされている pLaTeX2e 新ドキュメントクラス jsarticle, jsbook があり、 +章などを日本語で表示するにはこれらを使う必要があります。 + +これらを利用するには conf.py で +{{{ +latex_docclass = {"manual": "jreport"} +}}} +とします。 + +これらのクラスファイルでのマクロの定義が sphinx のクラスファイルやスタイル ファイルと競合して一部うまく表示されません。 +とりあえず、現段階でわかっている問題としては + + * j, js クラスファイルで章の表示が「第1章」となるべきところ(章の初めの ページ、フッタ)で「第1」となる + * j, js クラスで目次で付録が「付録A章」のように「章」が表示されてしまう + * jsbook でフッタと本文の間隔がつまる + * jsbook で参考文献や索引が目次で二重に表示される + * js クラスで 10pt 以外のフォントサイズを設定すると内容がページをはみだす + +などです。 + +これらの解決法を以下に書いておきます。 + +=== 章の表示の問題 === + +章の初めでの表示の問題は fncychap.sty との衝突によって、フッタでの問題は sphinx.sty の中での設定と衝突によって起きます。 + +fncychap.sty は国際化されたドキュメントのデフォルト設定に対して は '\\usepackage[Sonny]{fncychap}' が読み込まれるので、 +fncychap.sty の Sonny オプションの部分を適切に再定義して上書きします。 +フッタは sphinx.sty の fancyhdr を利用したフッタ設定を変更して再定義しま す。 + +とりあえず、conf.py の latex_preamble に追加することで解決を試みます。 +# sphinx-ja に変更を加えることも考えられますが。。。 + +具体的な方法としては conf.py の latex_preamble に +{{{ +\makeatletter +\renewcommand{\DOCH}{ + \raggedleft\CNV\FmN{\@chapapp}\space + \CNoV\thechapter\CNV\FmN{\@chappos} + \par\nobreak\vskip40\p@ +} +\fancypagestyle{normal}{ + \fancyhf{} + \fancyfoot[LE,RO]{{\py @ HeaderFamily\thepage}} + \fancyfoot[LO]{{\py @ HeaderFamily\nouppercase{\rightmark}}} + \fancyfoot[RE]{{\py @ HeaderFamily\nouppercase{\leftmark}}} + \fancyhead[LE,RO]{{\py @ HeaderFamily \@title, \py @ release}} + \renewcommand{\headrulewidth}{0.4pt} + \renewcommand{\footrulewidth}{0.4pt} + \def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}} +} +}}} +を追加します。 + +\DOCH の再定義が章の初めでの表示の対策で、 +\fancypagestyle{normal} がフッタの設定です。 + +\@chapapp が英語なら「Chapter」で日本語なら「第」に対応し、\@chappos が日本 語で「章」に対応するので、 +\@chappos を適切な位置に入れて再定義しているだけです。 + +=== 目次での付録の表示 === +jsbook からの定義を拝借して、conf.py の latex_preamble に +{{{ +\makeatletter +\renewcommand{\appendix}{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \gdef\@chapapp{\appendixname}% + \gdef\@chappos{}% + \gdef\thechapter{\@Alph\c @ chapter} +} +\makeatother +}}} +を追加 + +=== jsbook でのフッタの問題 === +conf.py の latex_preamble に +{{{ +\setlength\footskip{2\baselineskip} +\addtolength{\textheight}{-2\baselineskip} +}}} +を追加します。 + +参考 http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/#FAQ の目次や章の最初の ページも他のページと同じデザインにするには + +=== jsbook で参考文献や索引が目次で二重に表示される === +jsbook と sphinx.sty の両方が目次を追加するコマンド \addcontentsline{toc}{chapter}{\indexname} を呼び出すため起きます。 +なので、sphinx.sty の定義からこのコマンドを除いて再定義します。 +latex_preamble に +{{{ +\makeatletter +\renewcommand{\theindex}{ + \cleardoublepage + \phantomsection + \py @ OldTheindex +} +\renewcommand{\thebibliography}[1]{ + \cleardoublepage + \phantomsection + \py @ OldThebibliography{1} +} +\makeatother +}}} +を追加します。 + +jsbook 等の命令は \py @ Old* に置き換えられています。 + +=== js クラスで 10pt 以外のフォントサイズを設定すると内容がページをはみだし てしまう === +おそらく +http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/#FAQ の長さがずれますの問題だ と思われます。 + +sphinx の読み込むクラスファイル、スタイルファイルの長さを全て、 true{pt,cm,in} などに変更すれば直るかもしれません。 + + == nightly build == nightly build 環境