참고문헌 형식을 지정하기 위해 achemso 패키지를 사용하는 동시에 각 장에 대해 별도의 참고문헌을 만들기 위해 Chapterbib을 사용하려고 합니다. 나는 두 개의 패키지를 다음과 같이로드합니다
\usepackage[sectionbib]{chapterbib}
\usepackage[articletitle=true,etalmode=truncate,maxauthors=5,biblabel=fullstop,doi=true]{achemso}
각 개별 장에 포함을 사용하고 있습니다.
\include{Chapters/Chapter1}
그리고 각 장에서 나는 다음을 사용하여 참고문헌을 만듭니다.
\bibliographystyle{achemso}
\bibliography{All_References}
All-References에는 bibtex 참고문헌 항목이 포함되어 있습니다. 이렇게 하면 문서가 컴파일되어 괜찮아 보이지만 achemso 패키지를 로드할 때 포함된 옵션은 무시됩니다. 그러나 Chapterbib 명령을 주석 처리하면 옵션이 따르지만 각 장에 대한 참고 문헌을 얻지 못합니다.
MWE:
Main.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 파일의 두 번째 줄을 주석 처리하고 주석 해제하면 참고문헌이 나타나는 방식이 변경됩니다(두 번째 줄이 있으면 DOI가 사라집니다).
답변1
achemso
참고문헌 스타일에 옵션을 전달하는 매우 영리한 방법을 사용합니다. 모든 옵션을 패키지 에서 자동으로 인용되는 내부 .bib
항목 에 넣습니다 . 이를 통해 파일의 패키지 옵션을 통해 참고문헌 스타일의 동작을 제어할 수 있습니다 .achemso-control
achemso
.tex
사용하는 경우 chapterbib
이 항목을 수동으로 인용해야 합니다. 쉬운 방법은 \nocite{achemso-control}
각각의 시작 부분에 put 을 두어 그렇게 하는 것입니다 \chapter
.
그러나 허위 경고를 방지하려면 좀 더 정교한 접근 방식이 필요합니다. 정의하다
\makeatletter
\newcommand*{\achemsocontrolbib}{%
\immediate\write\@auxout{%
\string\citation\string{achemso-control\string}%
}}
\makeatother
각 장의 시작 부분에서 이를 호출합니다.
다음은 두 장의 파일과 예제가 포함된 자체 포함 예제 파일입니다 .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}