我想了解如何在参考文献中以 (a)、(b)、(c) 的形式列出书目条目,而不是 [1]、[2]、[3]。
答案1
thebibliography
LaTeX 用于处理参考书目和引文的列表环境基本上是一个花哨的enumerate
环境。您可以通过更改相关计数器的格式来更改编号。
的确切定义thebibliography
取决于您使用的文档类别,并可能取决于您在序言中加载的参考书目/引用相关的包。
以下内容应该适用于article
。
我们只需将所有内容更改\@arabic\c@enumiv
为,\@alph\c@enumiv
即可将阿拉伯数字转换为字母。然后我们还需要修改,\@bibitem
因为这会保存计数器的值,而不是其当前表示到文件中.aux
。最后,我们重新定义\@cite
和\@biblabel
并将方括号更改为圆括号。
\documentclass[british]{article}
\usepackage{babel}
\usepackage{csquotes}
\makeatletter
\def\@cite#1#2{({#1\if@tempswa , #2\fi})}
\def\@biblabel#1{(#1)}
\def\@bibitem#1{%
\item
\if@filesw
\immediate\write\@auxout{%
\string\bibcite{#1}{\csname the\@listctr\endcsname}}%
\fi
\ignorespaces}
\renewenvironment{thebibliography}[1]
{\section*{\refname}%
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\list{\@biblabel{\theenumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@alph\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
\makeatother
\begin{document}
Lorem \cite{sigfridsson}
\begin{thebibliography}{9}
\bibitem{sigfridsson}
Sigfridsson, Emma and Ulf Ryde (1998). \enquote{Comparison of methods for
deriving atomic charges from the electrostatic potential and moments}.
\emph{Journal of Computational Chemistry} 19.4, pp. 377–395.
\end{thebibliography}
\end{document}
latex.ltx
为了进行比较,和 中的原始定义article.cls
是
% latex.ltx
\def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}
\def\@biblabel#1{[#1]}
\def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
{\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces}
% 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}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}