bibファイルを用いずに、bibitemでHarvardスタイル表示、引用表示をしたい

bibファイルを用いずに、bibitemでHarvardスタイル表示、引用表示をしたい

- 小島 広久 の投稿
返信数: 6
bibファイルを用いずに、bibitemでHarvardスタイル表示、
引用表示をしたいです。

以下を実行すると、著者名[1]と本文中に表示されます。
number modeになっているのが原因だと思うのですが、
author-year modeへの変更方法が分かりません。

通常だと、bibファイルを用意するようですが、
文献数が多く、すでにbibitem環境で
文献リストを入力してしまったので、
それを用いて、Harvardスタイル、つまり
著者名(年)の形式で、文献引用表示を本文中に行いたいと考えているので、bibファイルをつくった方がいいというアドバイス以外でお願いします。

-------------------------
\documentclass[review,12pt]{elsarticle}
\usepackage{natlib}

\begin{document}
\cite{bi1}

\begin{thebibliography}{99}

\bibitem[\protect\citeauthoryear{Glover and Doyle}{1988}]{bib1}
Glover, K., and Doyle, C. J. (1988) `State-Space formulae for all stabilizing controllers that satisfy an $H_{\infty}$ - norm bound and relations to risk sensitivity', {\it Systems \& Control Letters}, Vol.11, No.3, pp.167--172.

\end{thebibliography}
\end{document}
小島 広久 への返信

Re: bibファイルを用いずに、bibitemでHarvardスタイル表示、引用表示をしたい

- 和田 勇 の投稿
>\usepackage{natlib}
これ natbib のタイポだとして

>\cite{bi1}
こっちは bib1 だとして想定して...

#elsarticleを利用すると natbib は自動で読み込まれるようです。

今回の検証にあたっては texdoc natbib で表示される情報をもとに実施しました。今回の質問「著者名(年)で表記」に該当するのはその12ページのsetcitestyle の Citation mode とBraces の項を参考に考えてみました。参考にcite のほか citep citet の例も表示してみました。

\documentclass[review,12pt]{elsarticle}
%\usepackage{natbib}% 自動で読み込まれるようです。
\begin{document}
%\bibliographystyle{abbrvnat}% スタイルはお好みを
%\bibliographystyle{unsrtnat}% 選んでもよし、なくてもよし
%\bibliographystyle{plainnat}
\setcitestyle{authoryear,open={(},close={)}}% ここ
\begin{itemize}
\item cite \cite{bib1} %三つの方法からお好きなものを
\item citep \citep{bib1}%書式はsetcitestyle で
\item citet \citet{bib1}
\end{itemize}
\begin{thebibliography}{99}
\bibitem[\protect\citeauthoryear{Glover and Doyle}{1988}]{bib1}
Glover, K., and Doyle, C. J. (1988) `State-Space formulae for all stabilizing controllers that satisfy an $H_{\infty}$ - norm bound and relations to risk sensitivity', {\it Systems \& Control Letters}, Vol.11, No.3, pp.167--172.
\end{thebibliography}
\end{document}
和田 勇 への返信

Re: bibファイルを用いずに、bibitemでHarvardスタイル表示、引用表示をしたい

- 小島 広久 の投稿
ありがとうございます。

\setcitestyle{authoryear,open={(},close={)}}% ここ

この部分を試してはみたのですが、
\setcitestyle
のコマンドが未定義、というエラーが出ます。

小島 広久 への返信

Re: bibファイルを用いずに、bibitemでHarvardスタイル表示、引用表示をしたい

- 和田 勇 の投稿
先程私が投稿したサンプルをそのまま再度コピペして TeXLive 2018 および 2019 で実施しましたが問題なく処理できます。

ちなみに \setcitestyle はtexmf-dist/tex/latex/natbib/natbib.sty で定義されています。

■独自拡張パッケージ利用されていますか?
もしかしたら当初 natlib とされているところを見ると独自に拡張されたパッケージをおつかいでしょうか?
うまくいかなかったときの .log ファイルを見せていただけると状況がわかるかと思います。

■私の投稿したサンプルでコンパイルした際にできる .log ファイルを添付していただけませんか
小島 広久 への返信

Re: bibファイルを用いずに、bibitemでHarvardスタイル表示、引用表示をしたい

- TONE Kozaburo の投稿
追試してみました。elsarticle.cls が手元に無かったので以下から拾ったものを使いました。

http://users.ece.utexas.edu/~garg/dist/garg/elsarticle.cls

問題なく通ります。
\seccitestyle は natbib.sty で定義されているようですが、和田さんがおっしゃるように elsarticle.cls は内部で naibib.sty を呼んでいます。

懸案事項は elsarticle.cls のバージョン確認でしょうか。
TONE Kozaburo への返信

Re: bibファイルを用いずに、bibitemでHarvardスタイル表示、引用表示をしたい

- 小島 広久 の投稿
ご確認ありがとうござました。

natbib.styが古かったみたいです。

新しいものに変更したところ、エラーもでず、期待した通りの表示になりました。

ありがとうございました。
和田 勇 への返信

Re: bibファイルを用いずに、bibitemでHarvardスタイル表示、引用表示をしたい

- 和田 勇 の投稿
解決したとのこと&大して変わりはないのですが elsarticle をつかわれているので別解

あらためて「texdoc elsarticle 」を見たところ
その13ページ「11. Bibliography」にヒントが書かれていましたね。

==引用開始==
You can change this to author-year or harvard scheme by adding option authoryear in the class loading command.
==引用終了==


\documentclass[review,12pt,authoryear]{elsarticle}%class オプションでも可能
\begin{document}
%\biboptions{authoryear}% natbib の機能を利用して他のスタイルにするとき
%\setcitestyle{authoryear,open={(},close={)}}% 書式を変更したい時
\begin{itemize}
\item cite \cite{bib1} %三つの方法からお好きなものを
\item citep \citep{bib1}%書式はsetcitestyle で
\item citet \citet{bib1}
\end{itemize}
\begin{thebibliography}{99}
\bibitem[\protect\citeauthoryear{Glover and Doyle}{1988}]{bib1}
Glover, K., and Doyle, C. J. (1988) `State-Space formulae for all stabilizing controllers that satisfy an $H_{\infty}$ - norm bound and relations to risk sensitivity', {\it Systems \& Control Letters}, Vol.11, No.3, pp.167--172.
\end{thebibliography}
\end{document}