Auto reading package in LyX
前回書いたBreakable \url with long-hyphenation-wordという記事で調査の都合上breakurlパッケージをインストールしたのだが、これが原因でLyXでuplatexが通らなくなって困った。
今まではうまくいったファイルであってもなぜかうまくいかなかった。エラーメッセージをみるとどうやら内部でbreakurlパッケージを読み込もうとしてエラーが出ている。breakurlパッケージはpdflatex系でしか動作しないので、uplatexを実行しているので、もし読み込んでいるならエラーが出るのは当然だ。しかし、自分でbreakurlパッケージを読み込んだつもりはない。
\usepackage{breakurl}
しかし、これが記述されているのはLyXが自動的にパッケージの読み込みを行う箇所であり、ユーザーの干渉の余地がない。LyXのバージョンを2.1.0beta2にしたのが原因なのかといろいろ探ったところ、原因がわかった。
LyXはTools⇒Reconfigureを実行すると、mktexlsrコマンドを実行したあとにできるls-Rの中身を参照してパッケージが利用可能かどうかを識別する。そして、利用可能であれば.lyxファイルの作成時にいくつかのパッケージを自動的に読み込むようだ。
LyXが自動で読み込むパッケージについては私はよくわかっていない。他の人の参考になるように、私が普段作成している文書でLyXが自動に読み込んでいるパッケージのリストを掲載する(breakurlは載っていない)。
\usepackage{mathptmx} \usepackage{helvet} \renewcommand{\ttdefault}{txtt} \usepackage{listings} \usepackage{geometry} \synctex=1 \usepackage{etex} %% HERE %% \usepackage{color} \usepackage[japanese]{babel} \usepackage{longtable} %% when using long table \usepackage{float} \usepackage{booktabs} %% when using formal table \usepackage{url} %% when using \url command \usepackage{amsmath} \usepackage{amssymb} \usepackage[authoryear]{natbib} \usepackage[unicode=true,pdfusetitle, bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=3, breaklinks=true,pdfborder={0 0 0},backref=false,colorlinks=true] {hyperref} \hypersetup{ pdfencoding=pdfdoc}
上記リストはLyXの設定(Document⇒Settings…)によってユーザーごとに異なると思われる。上記で登場したLyXが自動的に読み込むパッケージにオプションを設定したければ、以下のいずれかの方法を取るしかない。
- LyXからDocument⇒Settings…やTools⇒Preferenceから設定できるものはそこで設定する。
- hyperrefの\hypersetupのように後からオプションを追記できる場合はそのコマンドをLyXのDocument⇒Settings…⇒LaTeX Preambleに記述する。
- LyXのDocument⇒Settings…⇒Document Class⇒Customにdocumentclassオプションとして設定する。documentclassのオプションに書いた内容は各パッケージにオプションとして引き渡される。
\synctex=1 \usepackage{etex}