はじめに
秘密はね、最後に明かされるんだよ。 nikkieです。
拡張を自作したり、技術同人誌を作るときに選択したりと使い込んでいるSphinx。
原稿(今回はreST)をドキュメント(今回はPDF)に変換できるツールなのですが、モノクロのPDFを作ろうとしてリンクまわりで少しつまづきました。
ちなみに、この記事で一番言いたいことはP.S.です。
アイうた合同誌の新刊を、よろしくお願いします!!
目次
- はじめに
- 目次
- サンプルプロジェクト
- 設定をせずにPDFを作る(色付きのリンク)
- hyperrefにcolorlinks=falseと指定して、モノクロに設定(ただし水色の囲み線)
- モノクロかつ囲み線無しはhidelinks指定
- 参考サイト
- 終わりに
- P.S. 📣『アイの歌声を聴かせて』合同誌の新刊が出ました!📣
サンプルプロジェクト
今回のSphinxプロジェクトの全容は以下からご確認ください。
sphinx-quickstart
した1後、index.rstにはリンクがあるだけです
Welcome to Black and White PDF's documentation! =============================================== Awesome link: https://github.com/ftnext/sphinx-playground Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`
conf.pyで設定して、リンクをモノクロにしていきましょう!
設定をせずにPDFを作る(色付きのリンク)
quickstartでできたままのconf.pyでPDFをビルドしてみましょう。
Dockerイメージsphinxdoc/sphinx-latexpdfがとても重宝しています。
docker run --rm -v $PWD:/docs sphinxdoc/sphinx-latexpdf:7.1.2 make latexpdf
できたPDFではリンクに色がついています。
※この記事ではmacOSのプレビュー.appでPDFを開いています
hyperrefにcolorlinks=falseと指定して、モノクロに設定(ただし水色の囲み線)
モノクロにする方法を調べて見つけたのが、こちらのGist。
https://gist.github.com/uchida/4545280
はじめて技術同人誌を作ったとき2には大変助けられました。
「できるだけモノクロにする」に設定があります。
PC 等で閲覧する場合はハイパーリンクに色がついていると便利ですが、 印刷する際には不要かもしれません。 リンクに色をつけないようにするには、プリアンブルに以下を追加します。:
\hypersetup{colorlinks=false} % ハイパーリンクの色を無効に
プリアンブルとは前口上
LATEX 文書ファイルの \documentclass[...]{...} と \begin{document} の間にさらに細かい指定を書くことができます。この部分のことをプリアンブル(preamble,前口上)といいます。(『[改訂第8版]LaTeX2ε美文書作成入門』3p.34)
Sphinxでは原稿を一度LaTexに変換してからPDFにしています。
conf.pyを使って(HTMLをビルドする時のカスタマイズと同様に)LaTeXもカスタマイズできます
カスタマイズに使うのは、latex_elements
という辞書(dict
)です。
https://www.sphinx-doc.org/ja/master/latex.html#the-latex-elements-configuration-setting
'preamble'
というキーに値を指定したら、中間のLaTeXファイルにプリアンブルを指定できます。
Gistで案内された設定をconf.pyに追加します。
PREAMBLE = r""" \hypersetup{colorlinks=false} """ latex_elements = { "preamble": PREAMBLE }
この状態でPDFをビルドすると...
(コマンドは同様なので省略します)
リンクがモノクロになりました!
ですが、水色の囲み線がありますね4
モノクロかつ囲み線無しはhidelinks指定
囲み線をなくすには、conf.pyを以下のように変えます。
PREAMBLE = r""" -\hypersetup{colorlinks=false} +\hypersetup{hidelinks} """ latex_elements = { "preamble": PREAMBLE }
ビルドすると、リンクはモノクロ、かつ、囲み線がありません!🙌5
参考サイト
colorlinks
リンクのテキストに色をつけるかどうか。true のときテキストの色が変わり,false のときリンクに枠がつく。
hidelinks
リンクに色や枠をつけない。リンク自体は残る。印刷版にするときにはこうするとよい。
注意点2:リンクの「枠」
リンクに色や枠が確実に付かないようにするためには,hidelinksオプションを利用しましょう.
2つ目の記事からhyperrefのドキュメントを見に行けばいいのかと気づき、確認しました。
5.6 Extension options
https://ftp.kddilabs.jp/CTAN/macros/latex/contrib/hyperref/doc/hyperref-doc.html#x1-180005.6
hidelinks
Hide links (removing color and border).
終わりに
Sphinxで作るPDFでリンクをモノクロにする場合は、プリアンブルでhyperrefにhidelinksを指定です。
PREAMBLE = r""" \hypersetup{hidelinks} """ latex_elements = { "preamble": PREAMBLE }
これでリンクの囲み線も出ません!
この件はググるのが難しかったのですが、少しつまづく程度で解決できて幸運でした。
P.S. 📣『アイの歌声を聴かせて』合同誌の新刊が出ました!📣
C102で合同誌に参加しています
通販で入手できます
https://www.melonbooks.co.jp/detail/detail.php?product_id=2062761
合同誌参加の中で、PDFのリンクに水色の囲み線がある事象を解決しました。
原稿提出締め切り間際で、私としてはモノクロになっていると思いこんでいたので嫌な汗をかきましたね...
さて、アイうた合同誌ですが、C103でも新刊が出ました!👏
C102の既刊に参加した縁で #アイの歌声を聴かせて 合同誌新刊をいただきました。ありがとうございます!
— nikkie / にっきー (@ftnext) 2023年12月30日
事前に資料価値が高いとお見かけした覚えがあるのですが、まさにその通り!網羅してる👏
アドベントカレンダーの縁で私が言及されたとこ見つけてうれしい!#C103 2日目と通販で入手できます〜 https://t.co/QqtQHk4IIZ
色々と網羅されていて、きわめて資料価値が高い1冊です!
アイうたはAmazon Prime VideoやNetflixなどで見放題配信が解禁されています(2023年6月〜)。
アイうたに触れ、撃ち抜かれた方には垂涎の1冊でしょう(2巻あるから2冊か)。
新刊にある網羅コンテンツでは、当時の盛り上がりを追体験できちゃいますよ〜🤗
C103新刊の通販はこちらです!
https://www.melonbooks.co.jp/detail/detail.php?product_id=2160382
よろしくお願いします!