0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

dvipdfmxを使うとbookmarksopenでしおりが展開しない問題

Posted at

dvipdfmxを使うとbookmarksopenでしおりが展開しない

platexで文書を組版していて、dvipdfmxで生成したpdfのしおりが展開されない問題がありました。例えば以下のような場合です。

\documentclass{jsarticle}
\usepackage[dvipdfmx,%
bookmarksopen=true,% ブックマーク展開
bookmarksopenlevel=3,% 展開レベル
% hidelinks,% リンク枠色なし
]{hyperref}
\usepackage{pxjahyper} % 文字化け防止

\begin{document}
\tableofcontents
\part{piyo}
\section{hoge}
section.
\subsection{hogehoge}
subsection.
\subsubsection{hogehogehoge}
bookmarksdepth=tocdepth(\the\value{tocdepth})
\end{document}

このコードではhyperrefパッケージをbookmarksopenオプション付きで読み込んでいるため、section・subsectionのしおり木構造は展開した状態で表示設定されるはずでした1。しかし、Acrobat Reader等で開いてみても下図のように閉じたままです。PDFリーダーの設定や対応状況によるものかとも思い調べてみましたが、他の方もupLaTeX + dvipdfmxの環境下ではしおり展開されないことが分かりました。
image.png

うまく行かないことを知ると気になってしまい、対処法を色々と調べてみました。

まずヒットしたページでは、私と同様にdvipdfm(x)でしおり展開されないことを質問していました。回答には、dvipdfm(x)のサポートするspecialではbookmarksopenを取り扱えないため、dvipdfm(x)に-Eオプションを付加して展開を指示する旨の記述があります。しかし、試しても変化はありませんでした。日時が2003年ですし仕様が変わったのかもしれません。

解決法

-Eオプションは使用できませんでしたが、dvipdfmxの他のオプションを調べてみました。その結果、dvipdfmxのコマンドラインオプション-O 数値の形式で、しおりの展開深度を指定できることが分かりました23

例えば、dvipdfmx -O 1 foo.dviならsectionまでの展開。dvipdfmx -O 2 foo.dviならsubsectionまでの展開になります。-O 2を設定した場合、以下のようにsubsectionまで展開されるようになりました!
image.png

まとめ

hyperrefパッケージを用いてURLリンクする方法については、この記事で説明しています。リンクやしおりに限らずhyperrefには様々な機能があるので、文書クオリティを上げるために調べてみましょう!

  1. デフォルトでは、subsubsection以下の見出し語はしおりになりません。これはhyperrefbookmarksdepthオプションで決定され、初期値はtocdepthです。jsarticleにおいてはtocdepthが2(subsection)に設定されています。変更方法には、bookmarksdepth=subsubsectionのように設定を変更する手法や、tocdepthカウンタ値をsetcounterで直接変更する手法があります。

  2. 先の質問サイトに記されている通り、hyperrefのbookmarksopenオプション指定はdvipdfmxを使用する場合では無視されます。

  3. デフォルトでは0です。jsarticleなどのarticle系クラスにおいては、深さレベル番号0に相当するコマンドは\partなので、partまでしおり展開されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?