Chapterbib을 사용하면 achemso 패키지에 대한 옵션이 제거됩니다.

Chapterbib을 사용하면 achemso 패키지에 대한 옵션이 제거됩니다.

참고문헌 형식을 지정하기 위해 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-controlachemso.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}

2장의 참고문헌

관련 정보