书目字母数字编号

书目字母数字编号

我想了解如何在参考文献中以 (a)、(b)、(c) 的形式列出书目条目,而不是 [1]、[2]、[3]。

答案1

thebibliographyLaTeX 用于处理参考书目和引文的列表环境基本上是一个花哨的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}

乱码(a)

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}

相关内容