以数字和字母作为参考标签的多功能标本

以数字和字母作为参考标签的多功能标本

我正在寻找一种方法,可以在文档中使用多参考书目和外部参考书目,但使用数字标签作为参考文献,使用字母标签作为附件。例如,我想写:参考文献 (1) 和附件 (a)。我有超过 26 个附件,因此它们必须环绕起来,然后从附件 (aa)、(bb) 等重新开始。

我在 Stack Exchange 上找到了这个例子,它讨论了如何更改对信件的引用。这是我想做的事,但不是我想要的具体执行方式。

以下是示例代码:

  \documentclass{article}
  \usepackage[utf8]{inputenc}
  \usepackage[resetlabels]{multibib}
  \newcites{enc}{Enclosures}
  \newcites{ref}{References}


  \begin{document}

  Here I'd like to cite reference \citeref{number1} and \citeref{number2}, and enclosures \citeenc{letter1} and \citeenc{letter2}.

  \bibliographystyleenc{plain}
  \bibliographyenc{enclosures}

  \bibliographystyleref{ieeetr}
  \bibliographyref{references}

  \end{document}

我的参考书目如下:

  @Article{number1,
author  =   {number author 1},
title       =   {number title 1},
year        =   {2023},
month   =   {January}
  }

  @Article{number2,
author  =   {number author 2},
title       =   {number title 2},
year        =   {2023},
month   =   {January}
  }

我的附件书目(我想用字母作为标注)如下所示:

  \makeatletter
  \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
    {\string\bibcite{#1}{\alphalph{\value{\@listctr}}}}\fi\ignorespaces}
  \def\@biblabel#1{[\alphalph{#1}]}
  \makeatother


  @Article{letter1,
  author    =   {letter author 1},
  title     =   {Letter title 1},
  year      =   {2023},
  month =   {January}
   }

  @Article{letter2,
  author    =   {letter author 2},
  title     =   {Letter title 2},
  year      =   {2023},
  month =   {January}
   }

根据给出的答案这个例子基本上,我想做的正是这个例子,但呈现方式与我在此处展示的方式相同。Andrew Swann 在他的回复中指出这个例子可以使用多书目环境和外部书目来完成,但我不知道该怎么做。我仍在学习 LaTeX,任何帮助我都感激不尽。

答案1

我设法弄清楚了如何使用外部书目来实现这一点。对于未来的自己,我做了以下事情:

使用 multibib 时,在主文档上执行 PDFLaTeX 将为两个参考书目创建 2 个 .aux 文件,即closures.aux 和 references.aux。这两个文件都需要使用 BibTeX 手动编译。编译后,将创建 .bbl 文件。在closures.bbl 文件中,粘贴命令

  \makeatletter
  \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
   {\string\bibcite{#1}{\alphalph{\value{\@listctr}}}}\fi\ignorespaces}
  \def\@biblabel#1{[\alphalph{#1}]}
  \makeatother

就在 \begin{thebibliography} 下方。编译 .bbl 文件,然后重新运行主文件。

此页背面帮助我了解 \begin(thebibliography) 环境中发生的情况以及 .bbl 文件的作用。 这个问题在 StackExchange 上整理了解决我的问题的最终方法。

我还需要补充

    \usepackage{alphalph,cite}

这是我的前言。

示例代码如下所示:

  \documentclass{article}
  \usepackage[resetlabels]{multibib}
  \usepackage{alphalph,cite}

  \newcites{num}{Numbers}
  \newcites{let}{Letters}

  \begin{document}

  Here I'd like to cite reference \citenum{number1} and \citenum{number2}, and 
  enclosures \citelet{letter1} and \citelet{letter2}.

   \bibliographystylenum{plain}
   \bibliographynum{numberbib}

  \bibliographystylelet{plain}
  \bibliographylet{letterbib}
  \end{document}

附件参考书目如下所示:

  @Article{letter1,
  author    =   {letter author 1},
  title     =   {Letter title 1},
  year      =   {2023},
  month =   {January}
  }

  @Article{letter2,
  author    =   {letter author 2},
  title     =   {Letter title 2},
  year      =   {2023},
  month =   {January}
  }

.bbl 文件如下所示

  \begin{thebibliography}{1}
  \makeatletter
  \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
    {\string\bibcite{#1}{\alphalph{\value{\@listctr}}}}\fi\ignorespaces}
  \def\@biblabel#1{[\alphalph{#1}]}
  \makeatother


  \bibitem{letter1}
  letter~author 1.
  \newblock Letter title 1.
  \newblock January 2023.

  \bibitem{letter2}
  letter~author 2.
  \newblock Letter title 2.
  \newblock January 2023.

  \end{thebibliography}

然而,我必须复制/粘贴

  \makeatletter
  \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
    {\string\bibcite{#1}{\alphalph{\value{\@listctr}}}}\fi\ignorespaces}
  \def\@biblabel#1{[\alphalph{#1}]}
  \makeatother

每次我添加新的附件引用时,它都会进入 .bbl 文件,因为每次使用新数据重新编译参考书目时,它都会创建一个新的 .bbl 文件。

相关内容