sphinxでの控えめな表 2

前回の続き。pdf出力の表の表示を変更する。

pdfの場合

conf.pyの変更とlatex用にcustom.styを作る。

この表が

../../../_images/spxTbl01pdf.png

この表のようになる。

../../../_images/spxTbl02pdf.png

薄い枠線。シマシマ表示。ヘッダは少し濃い色でボールド体。多分印刷するとそこそこ見やすいようにした(つもり)。

(1) custom.styの作成

色々とググったり、実験してみたところ、以下のような感じになった。

% 使用パッケージ
\usepackage[table]{xcolor}
\usepackage{etoolbox}

% 使用する色の定義
\definecolor{headerColor}{RGB}{192, 192, 192}
\definecolor{oddColor}{RGB}{240, 240, 240}

% tabular環境の開始と終了をホンノリ書き換える
\let\oldtabular\tabular
\let\endoldtabular\endtabular

% 2行目からシマシマ表示を開始する。
\renewenvironment{tabular}{\rowcolors{2}{oddColor}{}\oldtabular}{\endoldtabular}

% sphinxstyletheadを再定義してヘッダー行に色をつける
\renewcommand{\sphinxstylethead}{\cellcolor{headerColor}\small\textbf}

\arrayrulecolor{oddColor} % 罫線も薄くするといい感じになる

配置場所は”source/custom.sty”。conf.pyの”latex_additional_files”でファイルパスを指定できる。

latexは詳しく無いので、コメントに書いている以上のことはわからない。

(2) conf.pyの変更

公式サイトの以下の記事を参考に、conf.pyのを変更。

latex_elements = {
    # 1. xcolorの方は、rowcolorsを使いたいため
    # 2. hyperrefの方は、pdfの目次を作るため
    'passoptionstopackages': r'\PassOptionsToPackage{table}{xcolor} \PassOptionsToPackage{dvipdfmx}{hyperref}',

    # 同じディレクトリにあるcustum.styを読み込む。app.add_latex_package('custom')は使えないようだ。
    'preamble': r'\usepackage{custom}',
}

# preambleに長々と書きたく無いので、custom.styへ外出ししたものを読み込むようにする。
latex_additional_files = ['custom.sty']

latexもpythonも詳しく無いので、コメントに書いている以上のことはわからない。

pythonの文字列リテラル表現で改行も含めて表記できる方法があった気がしたが、忘れた。

忘れたので、custom.styをファイルとして外に出したが、結果的にこれが正解の気がする。

( spxTblPdf.zip )