2012年8月1日水曜日

TeX: caption に url を書く

TeXで図を貼り付け、説明文(caption)にURLを書きたいという場面は沢山あると思います。そのときにurlパッケージを使いたいのですが、\caption{} の中に単純に \url{http://hoge.com/foo.html} を記入するだけではエラーになってしまいます。
エラー内容は僕には意味不明ですが、以下の様なエラーメッセージが出ます。

! Undefined control sequence.
\\->\let \reserved@e 
                     \relax \let \reserved@f \relax \@ifstar {\let \reserved...

ミソは \protect を使うことです。以下のように。

\begin{figure}[htbp]
  \begin{center}
    \includegraphics{hoge.jpg}
  \end{center}
  \caption{図の説明 引用元 \protect\url{http://hoge.com/foo.html} }
  \label{fig:hoge}
\end{figure}

\urlの前に\protectをつけます。
\protectコマンドを僕は知らなかったわけですが、TeX Q and A [エラー編]によれば、マクロ展開を抑止するためのコマンドらしいですね。

0 件のコメント:

コメントを投稿