我知道之前有一个关于更改参考书目的起始编号,但我的问题是我没有使用它\begin{thebibliography}
来构建参考书目,而是直接从 bibtex 文件中读取它。有没有方法可以更改默认编号,例如在编译时从 10 开始而不是从 1 开始?我的文件结尾如下:
% REFERENCES AND NOTES
\bibliography{bibtextfile}
\bibliographystyle{style}
\end{document}
答案1
\setcounter{enumiv}{9}
\thebibliography
如果不适用则会起作用\usecounter{enumiv}
,从而重置enumiv
计数器。
从article.cls
\newenvironment{thebibliography}[1]
{\section*{\refname}%
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}% This is the 'culprit'!!!!!
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
以及来自latex.ltx
\def\usecounter#1{\@nmbrlisttrue\def\@listctr{#1}\setcounter{#1}\z@}
即\setcounter{#1}{0}
有效。
以下代码使用虚拟计数器mybibstartvalue
并设置enumiv
计数器后 \usecounter{enumiv}
使用补丁。
然而,此代码仅适用于article.cls
。
\documentclass{article}
\usepackage{xpatch}
\newcounter{mybibstartvalue}
\setcounter{mybibstartvalue}{9}
\xpatchcmd{\thebibliography}{%
\usecounter{enumiv}%
}{%
\usecounter{enumiv}%
\setcounter{enumiv}{\value{mybibstartvalue}}%
}{}{}
\begin{document}
\cite{Lam94}
\cite{GSM97}
\bibliography{biblio}
\bibliographystyle{unsrt}
\end{document}
答案2
取自:https://latex.org/forum/viewtopic.php?t=15487
\begin{document}
\let\oldthebibliography=\thebibliography
\let\oldendthebibliography=\endthebibliography
\renewenvironment{thebibliography}[1]{
\oldthebibliography{#1}
\setcounter{enumiv}{9} % Start reference from [10]
}{\oldendthebibliography}
\end{document}