【#技術書典 宣伝】 LaTeX でハイフン入り URL が折り返されないときの対処法
今週の土曜日(2016/06/25)に,「技術書典」という いろんな技術にまつわる同人誌の即売会が開かれる.
私が筆頭の O'Creilly も,喜ばしいことに出展できる運びとなった.
これから宣伝も兼ねて,執筆中に得た知識を書いていきたい.
ことの経緯
飛ばすひとはこちら
月曜日の昼下りに一本の電話が入った. 普段電話などほとんど使わないので警戒していたのだが, スマホを見ると相手先の情報が載っている^google-call. 見てみると印刷を依頼した「日光企画」さんからだった.
先日,振り込む額を間違えてしまってメールがきたばかりだった^mailものだから, 内心またやらかしたのかと緊張していた.
電話の内容をまとめると,「文章がハミ出してるけど,今なら差し替えできますよ」^thx. 大ヘマをかましていた.火曜日の朝まで待ってくれるとのことだった.
何がハミ出していたのだろうか,手元の PDF を見てみることにしよう.
本題| hyperref の折り返し問題
実際にハミ出した部分を見てみよう.
見事なまでのハミ出しっぷりである. しかし,ここ以外の URL でハミ出しは起きていない. 一体どういうことなのか.
今回の原稿では,脚注の URL にリンクを貼っている.
Re:View だと,@<href>{https://example.com}
に該当する.
これを LaTeX にすると,\url{https://example.com}
になる.
このときに,ハイフンが含まれていることが問題になる.
解決策はこちら.
この\url{}
は, url パッケージに含まれているものである.
url パッケージは,ハイフン部分で折り返すオプションが通常はオフになっている.
\usepackage[hyphens]{url}
と書くと,ハイフン部分でも折り返してくれる.
しかし, Re:View のデフォルトテンプレートでは, hyperref パッケージが呼ばれている.
hyperref パッケージは内部で url パッケージを呼んでいるため,
\url{}
が使えるのだが,オプションの書き換えができない.
そこで,\PassOptionsToPackage
でオプションだけを渡しておいてやればいい.
Re:View のテンプレートに合わせると,こうなる.
%% Bookmarkの文字化け対策(日本語向け) \PassOptionsToPackage{hyphens}{url} \usepackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true,colorlinks=true,% pdftitle={<%= escape_latex(@config.name_of("booktitle")) %>},% pdfauthor={<%= escape_latex(@config.names_of("aut").join(I18n.t("names_splitter"))) %>}]{hyperref}
適応した結果がこちら.
綺麗に折り返してくれた.
まとめ
- URL が折り返されなかったら,ハイフンを疑え
- ハイフン入り URL の折り返しは
hyphens
オプション - hyperref パッケージを使う場合は
\PassOptionsToPackage
- 日光企画さん,本当にありがとうございます
明日も執筆時のノウハウを書いていきますよ!
オクライリーのお蔵入り本もよろしくお願いします.