私のドキュメント内の 1 つの方程式に奇妙な問題があります。出力ファイルをクリアして新しく再コンパイルするたびに、参考文献関連のファイルもすべて再生成する必要があり、次のコードはコンパイルに失敗します。
\begin{equation}
A\stackrel{\cite{A01}}{=}B
\end{equation}
エラー:コマンド \bfseries は数式モードでは無効です。A\stackrel{\cite{A01}}{=}
次のようにファイルを編集すると、次のようになることがわかりました。
\begin{equation}
A\stackrel{\cite{A01}}{=}B
% A=B %First compile with this, then with the other!!
\end{equation}
最初の行をコメント化し、2 番目の行のコメントを解除し、コンパイルし、コメント化された行を元に戻して再度コンパイルするだけで動作します。
基本的に、新規コンパイル時にのみ失敗し、その後は問題ありません。しかし、私は論文に24時間365日取り組んでおり、少なくとも1日に2回はこれを実行する必要があるため、それでも面倒です。
また、論文(LaTeXコードを含む)を提出するときに、誰かがこの問題に遭遇しますが、ファイルをコンパイルできるようにするために何が間違っているのかを突き止めることを強制しないようにしたいと思います。
これに関して何か助けていただければ幸いです!
MWE:
\documentclass{scrreprt}
\usepackage{natbib}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents*}{foo.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
@misc{B02,
author = {Buthor, B.},
year = {2002},
title = {Bravo},
}
\end{filecontents*}
\begin{document}
\begin{equation}
A\stackrel{\cite{A01}}{=}B
% A=B %First compile with this, then with the other!!
\end{equation}
\nocite{*}
\bibliography{foo}
\bibliographystyle{plain}
\end{document}
答え1
で
\begin{equation}
A\stackrel{\cite{A01}}{=}B
\end{equation}
は\cite{A01}
数式モードです。x^2
次のように記述することでこれを簡単に確認できます。
LaTeX が最初の実行時に数式モードで引用を処理しようとすると、まだ不明なため、\reset@font\bfseries ?
natbib
印刷しようとすると次のエラーが発生しますCommand \bfseries invalid in math mode
。
これを避けるには、テキストモードに戻る必要があります。私は次のamsmath
ようにロードして実行します。
A\stackrel{\text{\cite{A01}}}{=}B
ちなみに、 の標準定義ではエラーは発生しません\cite
(つまり をロードしない場合natbib
)。これは に疑問符を出力し\hbox
、数式モードから抜け出すためです。
\hbox{\reset@font\bfseries ?}