Bibtex를 사용하여 참고문헌 순서에서 머리말의 인용을 제외하는 방법은 무엇입니까?

Bibtex를 사용하여 참고문헌 순서에서 머리말의 인용을 제외하는 방법은 무엇입니까?

frontmatter내 박사 학위 논문에는 논문 인용을 포함하여 일부 장이 논문으로 출판되었음을 공개하는 몇 페이지를 포함해야 합니다 . 이러한 인용은 처음으로 사용되므로 , 등 [1]으로 표시됩니다.[2]

결과적으로 내 서문의 첫 번째 인용은 [5]. Bibtex가 실제로 내 인용 순서를 소개(에서 mainmatter)부터 시작하여 이러한 인용이 에서 시작하고 [1], 인용이 frontmatter마지막에 계산 되도록 강제하는 방법이 있습니까 ?

저는 unsrt추가 패키지가 없는 스타일과 report문서 클래스를 사용하고 있습니다.

답변1

당신은 사용할 수 있어야합니다

{\csname @fileswfalse\endcsname\cite{aaa}}

당신의 서문에 그리고 그 다음에

\nocite{aaa}

마지막에.

이것은 필요한 곳에 일반적인 인용을 수행하지만 aux 파일에 bibcite 줄을 쓰는 것을 중지합니다. 그런 다음 \nocite나중에 aux 파일에 쓰고 생성된 참고문헌에 항목을 넣으려면 가 필요합니다 .

답변2

David의 아이디어로 frontmatter수정할 수 있습니다 .mainmatter

\documentclass{book}

\usepackage{letltxmacro}
\makeatletter
\LetLtxMacro\@citexOrig\@citex
\g@addto@macro\frontmatter{%
\def\@citex[#1]#2{\leavevmode
  \let\@citea\@empty
  \@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\ }%
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
%     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{\hbox{\reset@font\bfseries ?}%
       \G@refundefinedtrue
       \@latex@warning
         {Citation `\@citeb' on page \thepage \space undefined}}%
       {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}{#1}%
   \AtEndDocument{\nocite{#2}}%
  }%
}
\g@addto@macro\mainmatter{\LetLtxMacro\@citex\@citexOrig}
\makeatother

\usepackage{lipsum}
\begin{document}
\frontmatter
frontmatter Text \cite{article-full} and \cite{article-minimal}

\mainmatter
mainmatter Text \cite{book-full} and \cite{book-minimal}

\bibliography{xampl}
\bibliographystyle{unsrt}

\end{document}

물론 재정의를 통해 동일한 결과를 얻을 수 있습니다.\cite

\documentclass{book}

\usepackage{letltxmacro}
\makeatletter
\LetLtxMacro\citeOrig\cite
\g@addto@macro\frontmatter{%
 \renewcommand*\cite[2][]{%
   \ifx\relax#1\relax {\@fileswfalse\citeOrig{#2}}\else {\@fileswfalse\citeOrig[#1]{#2}}\fi%
    \AtEndDocument{\nocite{#2}}%
  }%
}
\g@addto@macro\mainmatter{\LetLtxMacro\cite\citeOrig}
\makeatother

\usepackage{lipsum}
\begin{document}
\frontmatter
frontmatter Text \cite{article-full} and \cite{article-minimal}

\mainmatter
mainmatter Text \cite{book-full} and \cite{book-minimal}

\bibliography{xampl}
\bibliographystyle{unsrt}

\end{document}

두 솔루션 모두 David가 제공한 아이디어를 기반으로 합니다.

관련 정보