検討!目論見委員会Z

サーバインフラ屋10年余りやってる人

Sphinxをアップデートしたらchapterが変わっていた件

環境

  • CentOS release 5.7 (Final)
  • さくらのVPS
    • 安定しすぎているので正直あまり手を入れたくない
  • そろそろImmutable Infrastructureを活かしてポータブルな環境づくりをしていきたい

症状

  • SphinxでビルドしたPDFのchapterの見た目が変わっていた

変わる前

f:id:tboffice:20140727110631p:plain

変わってしまった後

f:id:tboffice:20140727110735p:plain

対策

  • easy_install でインストールした Sphinx 1.2.2 を 1.1.3にダウングレード
  • easy_installにuninstall機能はないので、pipをインストールして、
# pip uninstall Sphinx
# easy_install-2.6 Sphinx
  • こんなんで元に戻った
  • なお、pipにSphinx 1.1.3のパッケージはないようだ

原因

  • sphinxmanual.clsがかわっているぽいのでこの辺りだとおもうけど、いつみてもlatexのクラスファイルは波瀾万丈
[user@host]/home/nanaka/sphinx-template% diff /usr/lib/python2.6/site-packages/Sphinx-1.2.2-py2.6.egg/sphinx/texinputs/sphinxmanual.cls /usr/lib/python2.6/site-packages/Sphinx-1.1.3-py2.6.egg/sphinx/texinputs/sphinxmanual.cls
2c2
< % sphinxmanual.cls for Sphinx (http://sphinx-doc.org/)
---
> % sphinxmanual.cls for Sphinx (http://sphinx.pocoo.org/)
100d99
<   \pagenumbering{roman}%
118d116
< \pagenumbering{alph}
136,148d133
< 
< % Same for the indices.
< % The memoir class already does this, so we don't duplicate it in that case.
< %
< \@ifclassloaded{memoir}{}{
<   \let\py@OldTheindex=\theindex
<   \renewcommand{\theindex}{
<     \cleardoublepage
<     \phantomsection
<     \py@OldTheindex
<     \addcontentsline{toc}{chapter}{\indexname}
<   }
< }
  • こっちも原因かも
[user@host]/home/nanaka/sphinx-template% diff /usr/lib/python2.6/site-packages/Sphinx-1.2.2-py2.6.egg/sphinx/texinputs/ /usr/lib/python2.6/site-packages/Sphinx-1.1.3-py2.6.egg/sphinx/texinputs/                
diff /usr/lib/python2.6/site-packages/Sphinx-1.2.2-py2.6.egg/sphinx/texinputs/Makefile /usr/lib/python2.6/site-packages/Sphinx-1.1.3-py2.6.egg/sphinx/texinputs/Makefile
19c19
<    for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done
---
>    for f in *.pdf *.png *.gif *.jpg *.jpeg; do ebb $$f; done
23c23
<    -for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
---
>    for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
diff /usr/lib/python2.6/site-packages/Sphinx-1.2.2-py2.6.egg/sphinx/texinputs/sphinx.sty /usr/lib/python2.6/site-packages/Sphinx-1.1.3-py2.6.egg/sphinx/texinputs/sphinx.sty
11,12d10
< \@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}}
< 
13a12
> \RequirePackage{fancyhdr}
33,34d31
< % For parsed-literal blocks.
< \RequirePackage{alltt}
51,57d47
< % use pdfoutput for pTeX and dvipdfmx
< \ifx\kanjiskip\undefined\else
<   \ifx\Gin@driver{dvipdfmx.def}\undefined\else
<     \newcount\pdfoutput\pdfoutput=0
<   \fi
< \fi
< 
107c97,98
< \pagestyle{empty}               % start this way
---
> \pagestyle{empty}               % start this way; change for
> \pagenumbering{roman}           % ToC & chapters
123,126d113
<     % define chaptermark with \@chappos when \@chappos is available for Japanese
<     \ifx\@chappos\undefined\else
<       \def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}}
<     \fi
141c128
< \newcommand{\strong}[1]{{\textbf{#1}}}
(以下略)
  • 私信:私はお手上げなので、打田さん、よろしくお願いします(投げた