我正在寻找一种方法,可以在文档中使用多参考书目和外部参考书目,但使用数字标签作为参考文献,使用字母标签作为附件。例如,我想写:参考文献 (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 文件。