初步评论
这个问题一直困扰着我,所以我想找到一个解决方案。根据我的经验,biber
我以为我只需要复制/重命名一些由创建的文件就可以bibtex
让它工作(参见下面的示例),但似乎bibtex
并不那么容易。
所以我的第二个想法似乎更实用:提取引用的参考文献列表,然后使用命令引用所有这些参考文献nocite
(请参阅下面我的想法的详细信息):
我的问题背景
我经常使用“编译区域”命令来Emacs auctex-mode
仅编译当前段落并快速查看我的编辑是否达到了预期的结果。
然而,引用没有得到正确处理,因为在该区域中只有引用的参考文献的一个子集,所以数字 citekey [95] 是不同的(并且这也会对换行和排版产生影响)。
因此,我想找到一种方法,让该地区使用与完整文档相同(长)的参考列表并进行相应的引用。
一些解决方案的想法(我的知识不足以使其自动工作)
\nocite{ref1, ref2, ... ref350}
也许定期从主文档中提取所有引用的参考文献,然后以某种方式向区域文件添加命令是有意义的。
也许我应该为主文件创建一个自定义书目文件,然后将其添加\nocite{*}
到序言中。这只会在引用新参考文献时出现问题,然后我必须刷新自定义 .bib 文件...- 我如何提取主文档的引用参考文献?
- 我可以修改区域文件
auctex
并附加一个\nocite{ref1, ref2, ..., refn)
使用提取的参考列表的命令吗? - 或者:我可以为主文件创建一个自定义书目文件,该文件仅包含引用的参考文献,然后将其添加
\nocite{*}
到我的序言
中吗?但是:如果我从正文中删除其中一个参考文献的所有引用会怎么样?我是否仍然可以在辅助文件中找出哪些文件仅通过命令引用,nocite
哪些文件真正由命令\cite{)
(或类似命令)引用?
我可以复制一些原始文件,
_region_....
从而让该地区使用相同的书目顺序和编号吗?如果我将 .aux 文件从主文档复制到
_region_.aux
,我会得到正确的参考编号,但每次运行 latex 时都会覆盖此 aux 文件。此外,排版/放置某些表格和浮点数(如 longtables 等)可能需要运行 2 次 pdflatex,并且通过在每次运行 pdflatex 之前覆盖 .aux 文件,我认为我会丢失第二次运行 pdflatex 所需的信息。- 参考文献的顺序和编号似乎写在这样的行中:
\abx@aux@number{25}{chiu}{0}{20}
。从完整文档的辅助文件中抓取这些行并将它们附加到_region_.aux
文件中是否有意义?我的大文档没有成功,因为每次我用编译时这些行似乎都会被覆盖pdflatex
。
我试过这样:grep -i \abx@aux@number main.aux >> _region_.aux
,但这没有效果——特别是,像地区.aux 如果我从中编译文档,则不会创建类似的行auctex
,但同一来源仍会获得另一个数字引用键......
例子
主文件BibtexRegion_FullDocument.tex
\documentclass{scrbook}
\usepackage[natbib=true, style=numeric-comp, backend=bibtex8, defernumbers, useprefix,firstinits=true, maxnames=99, maxcitenames=3]{biblatex} % für bessere Literaturverzeichnisse
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{*}
This document has 2 paragraphs. This is the first one.
This is the second one and it cites \textcite{chiu}.
\printbibliography
\end{document}
- 这与 TeXLive 2014 兼容,因为它使用了
biblatex
示例书目。
结果:\cite{chiu}
变成 [20]
Auctex 创建以下区域文件_region_.tex
:
如果我只标记第二段,并编译该区域,auctex
则会创建以下 tex 文件
\message{ !name(BibtexRegion_FullDocument.tex)}
\documentclass{scrbook}
\usepackage[natbib=true, style=numeric-comp, backend=bibtex8, defernumbers, useprefix,firstinits=true, maxnames=99, maxcitenames=3]{biblatex} % für bessere Literaturverzeichnisse
\addbibresource{biblatex-examples.bib}
\begin{document}
\message{ !name(BibtexRegion_FullDocument.tex) !offset(4) }
This is the second one and it cites \textcite{chiu}.
\message{ !name(BibtexRegion_FullDocument.tex) !offset(6) }
\end{document}
结果:\cite{chiu}
变成1- 我怎样才能在这里获得 [20]?
目录中的文件
-rw-r--r-- 1 mbg4 admin 306 6 Mär 11:05 BibtexRegion_FullDocument-blx.bib
-rw-r--r-- 1 mbg4 admin 3933 6 Mär 11:05 BibtexRegion_FullDocument.aux
-rw-r--r-- 1 mbg4 admin 84175 6 Mär 11:05 BibtexRegion_FullDocument.bbl
-rw-r--r-- 1 mbg4 admin 1986 6 Mär 11:05 BibtexRegion_FullDocument.blg
-rw-r--r-- 1 mbg4 admin 14524 6 Mär 11:05 BibtexRegion_FullDocument.log
-rw-r--r-- 1 mbg4 admin 39 6 Mär 11:01 BibtexRegion_FullDocument.out
-rw-r--r-- 1 mbg4 admin 114343 6 Mär 11:05 BibtexRegion_FullDocument.pdf
-rw-r--r-- 1 mbg4 admin 2765 6 Mär 11:05 BibtexRegion_FullDocument.run.xml
-rw-r--r-- 1 mbg4 admin 50679 6 Mär 11:05 BibtexRegion_FullDocument.synctex.gz
-rw-r--r-- 1 mbg4 admin 433 6 Mär 11:04 BibtexRegion_FullDocument.tex
-rw-r--r-- 1 mbg4 admin 306 6 Mär 11:06 _region_-blx.bib
-rw-r--r-- 1 mbg4 admin 495 6 Mär 11:06 _region_.aux
-rw-r--r-- 1 mbg4 admin 1394 6 Mär 11:05 _region_.bbl
-rw-r--r-- 1 mbg4 admin 1770 6 Mär 11:05 _region_.blg
-rw-r--r-- 1 mbg4 admin 13209 6 Mär 11:06 _region_.log
-rw-r--r-- 1 mbg4 admin 0 6 Mär 11:03 _region_.out
-rw-r--r-- 1 mbg4 admin 13426 6 Mär 11:06 _region_.pdf
-rw-r--r-- 1 mbg4 admin 2612 6 Mär 11:06 _region_.run.xml
-rw-r--r-- 1 mbg4 admin 942 6 Mär 11:06 _region_.synctex.gz
-rw-r--r-- 1 mbg4 admin 508 6 Mär 11:05 _region_.tex
答案1
最后,我似乎忽略了一个相当简单的解决方案:
cp BibtexRegion_FullDocument.bbl _region_.bbl
经过全面编译后,完整文档似乎运行良好。
但是,在该区域上运行是不可能的(也没有意义)bibtex
,因为这个 bbl 文件会被覆盖,信息会丢失。