LoginSignup
5
2

More than 5 years have passed since last update.

arXivでcleverefを使う

Last updated at Posted at 2016-12-11

※cleverefについては前の記事を参照してください。
※このページの内容はここの回答cleverefのマニュアルを参考にしました。

arXivでcleverefを使う方法

arXivはコンパイルの際に勝手にhyperrefを読み込む1ため、cleverefを用いたコードを何も考えずに投稿すると正しく表示されません。
しかし、以下の2点を守れば正しく表示されるようになります。

  1. \usepackage{hyperref}\usepackage{cleveref}よりも前に、ソースコードに自ら書く。
  2. \crefnameを用いて、\crefでの表示名を明示的に指定する。

cleverefのマニュアルに書いてあるように、(もし使うなら)hyperrefはcleverefよりも先に読み込まれなければいけません。
そのため、arXivによってcleverefよりも後にhyperrefが読み込まれないように、自ら先にhyperrefを読み込む必要があります。
また、2.に書いてある\crefによる指定は普段の環境では省略できる場合も多いため、忘れていたりそもそも知らなかったりする可能性がありますね。

poormanオプション

arXivでは上記の方法でうまく行くと思いますが、他の状況でどうしてもうまく行かない場合にはpoormanオプションを用いることでほぼ確実に解決できます。
このオプションは、cleverefを利用できないような"poor man"の環境でもコンパイルが通るようにするためのものです。

具体例と使い方を述べましょう。

hoge.tex
\documentclass{article}
\usepackage[poorman]{cleveref}
\newtheorem{theorem}{Theorem}
\crefname{theorem}{Theorem}{Theorems}
\begin{document}

\begin{theorem}
 \label{theorem:foo}
 This is a theorem.
\end{theorem}

 By \cref{theorem:foo}, we have ...

\end{document}

上記のように、cleverefにpoormanオプションを指定して読み込みます。
これをコンパイルすると、同じディレクトリにhoge.sedなるファイル2が生成されます。
これはhoge.texからcleveref依存の部分を全て取り去る方法が記されたテキストファイルで、terminal上で次のように入力して利用します3

sed -f hoge.sed hoge.tex > hogeforpoorman.tex

これを実行すると、次のようなファイルが生成されます。

hogeforpoorman.tex
\documentclass{article}

\newtheorem{theorem}{Theorem}

\begin{document}

\begin{theorem}
 \label{theorem:hoge}
 This is a theorem.
\end{theorem}

 By Theorem\nobreakspace \ref {theorem:hoge}, we have ...

\end{document}

確かにcleverefに依存する部分が全て取り除かれた上で、元々はcleverefによって補われていたTheoremがソースコードに挿入されていますね。
このファイルであれば、おそらくどんな環境のLaTeXでも正しくコンパイルできると思います。

(12/11 25時ごろ追記)
\cref\Crefについて勘違いしていたことを指摘されたので、修正しておきました。
詳細は前の記事を参照してください。


  1. 00README.XXXなる名前のファイルを用いればhyperrefの読み込みを抑制できますが、何故かこの場合でも明示的に\crefnameによって設定をする必要があります。 

  2. ファイル名は元々のTeXファイルの名前で決まります。 

  3. こちらで動作確認したのはubuntuのみ。macはhogeおそらくそのままで使えると思いますが、windowsは自分でsedをインストールする必要があるかもしれません。"windows sed"などでググってください。 

5
2
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
5
2