情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

「Something’s wrong–perhaps a missing \item.」の原因が.bblのときは

BibTeX (2) LaTeX (24) TeX (5) WinShell (11) エラー (15) 論文 (6) 論文執筆 (2)

今回は「Something's wrong--perhaps a missing \item.」というエラーが表示される理由とその対策についてです。

Something's wrong--perhaps a missing \item.

このエラーは、本来「\begin{enumerate}-\end{enumerate}」や「\begin{itemize}-\end{itemize}」の中に「\item」を書き忘れたときに表示されるものなのですが、それとは全く違う原因で表示されることがあります。

その一つは自分も体験していて、「\newtheorem{Theorem}{定理}[section]」のように自分で新しく環境を作ったときに、「\begin{Theorem}」の直後にいきなり数式環境を書いてしまうことで発生するものです。これは、いきなり数式環境を書かずに「\mbox{}」を間に挟むことで解決できます。

今回:.bblが原因

今回紹介するのは、エラーが表示されたときに、エラー本文が

reference.bbl(3): エラー: LaTeX Error: Something's wrong--perhaps a missing \item.

と表示された場合についてです。これは、上記の症状とは少し異なります。

直接的な原因

直接的な原因は、やはり「.bbl」ファイルにあります。このとき、「.bbl」ファイルは次のようになっていました。

\begin{thebibliography}{}

\end{thebibliography}

これには、とある問題があります。「\begin{thebibliography}-\end{thebibliography}」に中身がないのは別にしても、引数を書くべき部分({})に引数が無いことが問題です。thebibliography環境は引数が必須で、引数を忘れたときに「Something's wrong--perhaps a missing \item.」が表示されるようなのです。

つまり、「.bbl」を作り直せばよいのですが、このときWinShellで「BibTeXを実行」したとしても解決しないことがあります。

BibTeXを再実行しても解決しない場合の「もしかして」

この原因は、「BibTeX(jbibtex)」を実行する前に「LaTeX(platex)」を実行する設定になっていたからです。つまり、BibTeXを再実行するためにLaTeXを再実行してしまい、またエラーが発生し、BibTeXを再実行する前にプログラムが停止してしまっていたのです。つまり、この状態から抜け出すためにはBibTeXを単独で再実行する必要があるわけです。

無難な解決策:.bblを削除すればいい

このような場合もあるので、無難な方法は一旦「.bbl」を削除してしまう方法です。すると、「.bbl」が無い分にはLaTeXの実行に成功するので、問題なくそれに続けてBibTeXを実行して再び.bblを作り直すことができます。ただし、「.bbl」を直接編集していたりする場合には、確実にバックアップを取り直してください。

そもそもの原因:なぜ.bblが壊れてしまっていたのか

ここまでで問題自体は解決なのですが、ではなぜ.bblファイルが壊れてしまっていたのでしょうか。

今回私の場合この原因は、「\bibliography{}」に、間違ったファイル名を書いてしまっていたことにありました。

ファイル名を間違えると、BibTeXは.bibファイルを見つけられません。

I couldn't open database file reference.bib

しかし、このときBibTeXは、あたかも.bibファイルが空であったかのように動作してしまいます。

I found no database files---while reading file thesis.aux
Warning--I didn't find a database entry for "Cite-Tag"
...
(There were 2 error messages)

その結果、「.bbl」が空になってしまうと同時に、引数が空になってしまうのです(ちなみに、.bblの引数部分に「0」や他の数字を入力しても、環境の中身が空のままの場合、「Something's wrong--perhaps a missing \item.」のエラーが出てしまいました)。これがそもそもの原因だったようです。

まとめ

「Something's wrong--perhaps a missing \item.」のエラーがなぜこんなときにも登場するのか、という仕組みはよくわかりませんが、LaTeXでエラーが表示されてしまったときは、エラー文に書いてあることを考えるだけでなく、エラー文で検索してみて、同じエラーが書いてあることと全く違う原因で発生することが無いかチェックすることが重要そうです

コメント(0)

新しいコメントを投稿




  • カテゴリ ナビ
  • 著者紹介

    ブログが趣味で、 月間1,000万PV を達成しました。

    自分が困ったことをブログに書けば、次に困る人の参考になって、みんながみんな同じ苦労をせずに済む、というのが原点です。

    最近の関心は、スマホやパソコンに詳しくない人の行動や思考、 そしてそんな人を手助けする方法や枠組み。 また、それに関連するような、"身近な"セキュリティ。

    ※SNS(特にTwitter)でシェアされた記事は、内容の追加・更新を行っています。 必ず、ではありませんが、気に入った記事は積極的にシェアしてみてください。

    RSS | Facebook | Twitter | About