我创建了一份简历,并使用该biblatex
软件包创建了多个书目列表,其中包含我发表的出版物,这些出版物被分类为“文章”、“论文集”等。现在我想创建另一份文件(一份申请),在其中引用其中一些文章。如何在不从简历中硬编码参考编号的情况下做到这一点?
我知道这个包xcite
(它与 xr 包类似),但我无法让它工作(可能是因为这个biblatex
包的使用似乎创建了一个非标准.aux
文件)。
下面是我想要实现的一个小的工作示例:
在 CV.tex 中:
\begin{filecontents}{CV_bib.bib}
@article{Einstein1935,
AUTHOR = {Albert Einstein},
TITLE = {Can quantum-mechanical description of physical reality be considered complete?},
JOURNAL = {Physical review},
YEAR = {1935}
}
@unpublished{Einstein1913,
AUTHOR = {Albert Einstein and Michele Besso},
TITLE = {Motion of the perihelion of Mercury},
YEAR = {1913}
}
\end{filecontents}
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,style=numeric-comp,defernumbers]{biblatex}
\addbibresource{CV_bib.bib}
\begin{document}
Some citations: \cite{Einstein1935}, \cite{Einstein1913}.
\textbf{Submitted for review}
\printbibliography[type=unpublished, heading=none]
\textbf{Journal Publications}
\printbibliography[type=article, heading=none]
\end{document}
在 application.tex 中:
\documentclass[11pt]{article}
\usepackage{xcite}
\externalcitedocument{CV}
\title{Application}
\date{}
\begin{document}
\maketitle
As you can see in \cite{Einstein1913} we did....
\end{document}
正如您所看到的,我只想获取正确的引用编号而不打印参考书目。
答案1
我看到的唯一办法就是对参考书目条目进行分组。交叉点应该是第一组,在其他任何内容之前独立编号。您可以将它们放在 3 个不同的 bib 文件中(每个文件一个,两个文件一个)。
如果您不对条目进行分组,编号可能会有所不同。即使您可以以某种方式引用编号,也很容易出现这种情况:四个参考书目条目,编号为 [1]、[2]、[4]、[9]。
如果将文档包含在同一个文件中,则可以避免上述问题,但这可能会导致其他问题......
答案2
我编写了这个 Python 脚本来生成一个.aux
用于 xcite 和 Biblatex 的假文件。这是一个非常粗糙的尝试,但它在我需要的情况下很有用。按以下列出的 Python 脚本运行python gen_dummy_bib.py CV.bbl CV_fake.aux
它gen_dummy_bib.py
:
import sys
import re
replace_count = 1
infile = open(str(sys.argv[1]), 'r')
outfile = open(str(sys.argv[2]), 'w')
for line in infile:
if '\\entry' in line:
outfile.write(re.findall('\\\\entry\{[^{]+', line)[0].replace('entry', 'bibcite') + '{' + str(replace_count) + '}\n')
replace_count += 1
infile.close()
outfile.close()
它非常简单,会遍历指定的.bbl
文件,假设\entry
文件中的命令按照它们在文档中的编号顺序出现。然后\bibcite
根据它们在输出文件中的出现次数将它们转换为相应的命令.aux
。
我也将此脚本发布为 GitHub要旨。