いものやま。

雑多な知識の寄せ集め

TeXで同人誌を作ってみた。(ハイパーリンク)

f:id:yamaimo0625:20190918075457j:plain

今日は電書版でリンクをつける方法について。

なお、印刷用と電書用の分離については以下を参照:

hyperrefパッケージ

ファイル内でリンクによる移動ができるようにするにはhyperrefパッケージを使う。
ただし、和文だと問題があるようなので、pxjahyperパッケージも一緒に使うようにする。
そして、リンクの色の設定などは\hypersetupでやる。

自分は以下のようにしてみた:

% 目次や索引、参照にリンクをつける
\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}  % 日本語環境での問題を解決するらしい
\hypersetup{colorlinks=true,%
    linkcolor=blue,%
    citecolor=blue,%
    filecolor=blue,%
    urlcolor=blue}

これで目次や索引、参照にリンクが入り、ページ間の移動が簡単に出来るようになる。
さらには、PDFに目次も入ったり。

あと、『Math Poker Girl』では調査不足で出来なかったんだけど、オプションを指定すればPDFにタイトルや著者名などの情報も入れられたみたい:

\hypersetup{
    ...,
    pdftitle=xxx, % PDFのタイトル
    pdfauthor=xxx, % PDFの作成者
}

なお、hyperrefパッケージはなんか悪名も高いパッケージらしく、もしかしたら何かレイアウトがおかしくなってたりするかも。
その場合は調査が必要・・・
自分の場合、幸いにも何も問題は起きなかった。

外部リンク

リンクに関してもう一つやったことがあって、それは外部リンクの設定。

印刷用だとリンクが貼られていても何も嬉しくないけど、電書用の場合はリンクからWebページなどにジャンプできるようになっていた方が嬉しい。
なので、共通部でマクロを用意しておいて、電書用ではリンクを貼るようにマクロを上書きするようにした。

まず、共通部で用意したマクロは以下:

% URL表記(印刷用/電書用で切り替えられるようにするため)
\newcommand{\linkurl}[1]{\texttt{#1}}
\newcommand{\linktext}[2]{#1}

\linkurl{https://www.yamaimo.dev/}とか\linktext{\texttt{@yappy0625}}{https://twitter.com/yappy0625}と使う。

そして、電書用のソースでは以下のように定義を上書き:

% URLにリンクをつける
\renewcommand{\linkurl}[1]{\url{#1}}
\renewcommand{\linktext}[2]{\href{#2}{#1}}

これで印刷用は単に文字が出力され、電書用はリンクのついた文字が出力されるようになる。


宣伝!
『Math Poker Girl』はBOOTHで販売中!

今日はここまで!