私は、achemsoパッケージを使用して参考文献をフォーマットし、chapterbibを使用して各章ごとに別々の参考文献を作成しようとしています。2つのパッケージを次のようにロードします。
\usepackage[sectionbib]{chapterbib}
\usepackage[articletitle=true,etalmode=truncate,maxauthors=5,biblabel=fullstop,doi=true]{achemso}
私は各章ごとにincludeを使用しています
\include{Chapters/Chapter1}
そして各章では参考文献を次のように作成します
\bibliographystyle{achemso}
\bibliography{All_References}
All-References には、bibtex の参考文献エントリが含まれています。これを実行すると、ドキュメントはコンパイルされ、正常に表示されますが、achemso パッケージをロードするときに含まれるオプションは無視されます。ただし、chapterbib コマンドをコメント アウトすると、オプションは従われますが、各章の参考文献は取得されません。
MWE:
メイン.tex:
\usepackage[utf8]{inputenc}
%\usepackage[sectionbib]{chapterbib}
\usepackage[articletitle=true,etalmode=truncate,maxauthors=5,biblabel=fullstop,doi=true]{achemso}
\begin{document}
\include{Section}
\end{document}
セクション.tex:
Something\cite{VanOrden2015}
\section{References}
\bibliographystyle{achemso}
\bibliography{References}
参考文献.bib:
@article{VanOrden2015,
author = {Melnykov, Artem V. and Nayak, Rajesh K. and Hall, Kathleen B. and Van Orden, Alan},
title = {Effect of Loop Composition on the Stability and Folding Kinetics of RNA Hairpins with Large Loops},
journal = {Biochemistry},
volume = {54},
number = {10},
pages = {1886-1896},
year = {2015},
doi = {10.1021/bi5014276},
PMID= {25697574},
URL = {
https://doi.org/10.1021/bi5014276
},
eprint = {
https://doi.org/10.1021/bi5014276
}
}
main.tex ファイルの 2 行目をコメントアウトしてコメント解除すると、参考文献の表示方法が変わることに注意してください (2 行目が存在すると DOI は表示されなくなります)。
答え1
achemso
は、非常に巧妙な方法でオプションを参考文献スタイルに渡します。すべてのオプションを、パッケージによって自動的に引用される と.bib
呼ばれる内部エントリに格納します。これにより、ファイル内のパッケージ オプションを介して参考文献スタイルの動作を制御できます。achemso-control
achemso
.tex
を使用する場合は、このエントリを手動で引用する必要があります。簡単な方法は、各 の先頭に をchapterbib
入れることです。\nocite{achemso-control}
\chapter
しかし、誤った警告を避けるためには、もう少し洗練されたアプローチが必要です。定義
\makeatletter
\newcommand*{\achemsocontrolbib}{%
\immediate\write\@auxout{%
\string\citation\string{achemso-control\string}%
}}
\makeatother
各章の冒頭でそれを呼び出します。
以下は、2 つの章と例のファイルを含む自己完結型のサンプル ファイルです.bib
。
\documentclass{report}
\usepackage[sectionbib]{chapterbib}
\usepackage[biblabel=fullstop,
etalmode=truncate,maxauthors=5,
articletitle=true,doi=true]{achemso}
\makeatletter
\newcommand*{\achemsocontrolbib}{%
\immediate\write\@auxout{%
\string\citation\string{achemso-control\string}%
}}
\makeatother
% chapter 1
\begin{filecontents}{\jobname-1.tex}
\achemsocontrolbib
\chapter{One}
Something\cite{VanOrden2015}
\bibliographystyle{achemso}
\bibliography{\jobname}
\end{filecontents}
% chapter 2
\begin{filecontents}{\jobname-2.tex}
\achemsocontrolbib
\chapter{Two}
Something else\cite{VanOrden2015,sigfridsson}
\bibliographystyle{achemso}
\bibliography{\jobname}
\end{filecontents}
% bib file
\begin{filecontents}{\jobname.bib}
@article{VanOrden2015,
author = {Melnykov, Artem V. and Nayak, Rajesh K.
and Hall, Kathleen B. and Van Orden, Alan},
title = {Effect of Loop Composition on the Stability
and Folding Kinetics of {RNA} Hairpins with Large Loops},
journal = {Biochemistry},
volume = {54},
number = {10},
pages = {1886-1896},
year = {2015},
doi = {10.1021/bi5014276},
PMID = {25697574},
}
@article{sigfridsson,
author = {Sigfridsson, Emma and Ryde, Ulf},
title = {Comparison of Methods for Deriving Atomic Charges from the
Electrostatic Potential and Moments},
journal = {Journal of Computational Chemistry},
year = 1998,
volume = 19,
number = 4,
pages = {377-395},
doi = {10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P},
}
\end{filecontents}
\begin{document}
\include{\jobname-1}
\include{\jobname-2}
\end{document}