주어진 .bst 파일을 사용해야 하므로 일반 BibTeX만 사용할 수 있습니다.
\fullcite
이 상황에서 BibLaTeX와 동등한 것을 얻을 수 있는 방법이 있습니까 ?
답변1
내 설정에서는 bibentry 패키지(참조:본문에서 하나의 bibentry를 전체 길이로 인용하는 방법은 무엇입니까?) 작동하지 않았다. 다음 오류나 경고 중 하나가 표시됩니다.
! Package natbib Error: Bibliography not compatible with author-year citations.
pdfTeX warning ext4: destination with the same identifier name{cite.xxxx2015}
has been already used, duplicate ignored
그러나 내 목적을 위해 참고문헌 항목이 패턴을 따른다는 점을 활용할 수 있었습니다 \bibitem[LABEL]{CITEKEY} BIBLIOGRAPHYENTRY\par
. 나에게 필요한 것은 내가 정의한 참고문헌에서 발췌한 것이었기 때문에
\documentclass{scrreprt}
\usepackage{pgffor}
\begin{document}
\makeatletter
\newcommand{\filterbib}[1]{
% Requires enumitem package.
\nocite{#1}% ensure that the entries are in the bibliography.
\def\bibitem[##1]##2##3\par{
\edef\fb@keyA{##2}
\foreach \fb@keyB in {#1}{
\ifx\fb@keyA\fb@keyB \item ##3\fi
}
}
\begingroup
\renewenvironment{thebibliography}[1]{
\itemize
}{\enditemize}
\InputIfFileExists{\jobname.bbl}{}{%
\PackageWarning{kdb:backmatter}{No file \jobname.bbl}%
}%
\endgroup
}
\filterbib{Adles2008prb,Eisenthal2006,Bauer2015}
\bibliographystyle{draftabbrev}
\bibliography{library}
\end{document}
해결책은 대략적이지만 작동합니다. 몇 가지 제한사항:
- 인용은 항상 주요 참고문헌에 추가됩니다.
- 인용 순서는 항상 참고문헌의 순서와 동일합니다(의도적).
- 잘못된 키 확인이 부족하지만 \nocite~해야 한다그것을 처리하십시오.
- .bbl 파일의 형식에 따라 다릅니다. 예를 들어 마지막 인용과 \end{thebibliography} 사이에 빈 줄이 없으면 실패합니다.