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가 제공한 아이디어를 기반으로 합니다.