![工作流](https://linux22.com/image/237352/%E5%B7%A5%E4%BD%9C%E6%B5%81.png)
您管理参考文献的工作流程是怎样的?该工作流程如何扩展?
您使用过zotero
、mendeley
、等程序吗jabref
?它们的优点和缺点是什么?
它是否允许轻松集成 BibLaTeX 或者仅限于 BibTeX?
答案1
我用佐特罗我发现这个工作流程到目前为止效果很好,如果你找到更好的方法来完成同样的工作,请告诉我。以下工作流程将提供
LaTeX 中自动进行人为防错书目引用,或博士论文中书目管理和引用的路线图
工作流程设置:
以下工作流程利用了 Zotero 引文管理器biblatex
++Biber
后端 + TexStudio 作为文本编辑器来自动化最后,在 LaTeX 中引用参考文献的整个过程无需手动输入数据,因为手动输入数据容易出错。Zotero 负责从网络上捕获引用并对其进行标记的所有繁重工作(我更喜欢将所有参考文献放在一个项目的文件夹中,这样可以更有效地利用标记来查找相关条目)。对于 LaTeX 中不同软件包和后端之间的差异,这可以有所帮助。纺织工作室易于学习,文档齐全,功能齐全,直观,并biblatex
支持biber
,你可能需要阅读博客了解更多信息。但首先,您必须调整所有这些工具才能实现这一目标,如下所示:
Zotero 引文管理器:
它是一款多功能的参考书目管理工具。您应该通过阅读文档和教程来了解如何使用 Zotero,并且假设您拥有此开源免费软件中所有参考资料的数据库,您现在需要将这些条目导出到另一个扩展文件中,.bib
以供 LaTeX 文件使用biblatex
。将 Zotero 备份文件夹保留在与 FireFox 默认路径不同的路径上。
下载
bibtex-citep.js
翻译器这里将此文件添加到
translators
Zotero 的文件夹中,要了解您平台中的此路径,请打开 Zotero -> 工具 -> 选项 -> 高级 -> 文件和文件夹选项卡,在数据目录位置下(从这里您也可以自定义 Firefox 中的不同路径到您喜欢的任何安全位置)-> 显示数据目录:如果您忘记了 Zotero 的目录在哪里,这将向您显示 Zotero 的目录,然后将下载的翻译文件添加到translators
文件夹 中编辑
bibtex-citep.js
使用你喜欢的任何文本编辑器记事本++并只更改两行,如下所示,这将允许您复制和粘贴citation key
仅有的从 Zotero 中的特定参考文献导入 LaTeX 文档,而无需被特别指定标记字符串://Zotero.write((first ? "\\citep{" : ",") + citekey); //original one commented out to be Zotero.write(citekey); //replaced by doctorate first = false; } //Zotero.write("}"); //original line commented out to be... Zotero.write("");// replaced by doctorate
从 Zotero 选项中,转到“导出”选项卡,并从“默认输出格式”下拉菜单中选择,此步骤只是为了在破解翻译器后
BibTex-citep
启用Ctrl++快捷方式,仅此而已。根据以下更新,导出格式将采用更优雅的Shift格式。 CBibTex-citep
biblatex
更新
Zotero(版本 4.0.17)已更新导出列表,并幸运地包含了格式BibLaTex
(见下图)。这意味着通往重要时刻的路程大大缩短,您可以愉快地跳过上述所有步骤。
现在,这是重要时刻每次你想要引用参考文献时,你所要做的就是选择该参考文献,然后按Ctrl+ Shift+将其从 Zotero 复制到剪贴板C,然后将其粘贴到你喜欢的文本编辑器中的 LaTeX 文档中,这将自动生成
citation key
每个数据条目独有的,不要浪费你的时间自己生成,过一段时间你会忘记很多,让密钥生成计算机模拟,不会引入人为错误,密钥将通过组合生成,author_title_year
并且这些密钥将通过识别,biblatex
因为它们在从 Zotero 导出的文件中是相同的.bib
;相信我,打开文件并用自己的眼睛看到它们。如果你发现任何拼写错误或参考书目中缺少字段,请始终在 Zotero 内部进行更正,而不是在
.bib
,因为后者将始终根据不断变化的 Zotero 数据库进行更新。因此,在编译 PDF 之前,务必确保导出最新的 Zotero 数据库。此外,如果您想对标题中的某些单词或其他内容(例如物种名称)进行一些格式化,激进的做到这一点的方法是从 Zotero 内部一劳永逸地完成,请参阅我的回答这里,或者您必须在每次导出时在导出的文件中执行乳胶标记.bib
,我认为这不是一个优雅的解决方案。要导出文件
.bib
,请选择 Zotero 的整个数据库,然后右键单击并选择export itmes
,选择BibLaTeX
格式和不是或者BibTex-citep
,将文件BibTex
保存在您的文件可以识别的.bib
路径位置.tex
TexStudio文本编辑器:
选项 -> 配置 TexStudio -> 构建;将默认书目更改为
biber
选项 -> 配置 TexStudio -> 构建;将默认编译器更改为
XeLaTeX
支持某些字体,否则保留默认完成
.tex
文件后,按F6+ F11+F6作为 LaTeX 排版、参考书目biber
后端和 LaTeX 排版的 快捷方式进行编译
Biblatex 定制:
这是最困难的一步,需要阅读手册来定制样式
我想到了一种风格,最初取自这里通过一些调整来删除 Zotero 格式导出
.bib
文件中的某些字段bibtex
,您可以根据需要进行更改,请参阅以下代码中的注释请注意,我曾经说过,
\begin{filecontents}{\jobname.bib}
您\end{filecontents}
不需要自己编写参考书目,但这只是在这篇文章中提供了一个最小工作示例 (MWE)。通常,在您自己的情况下,您想要做的是取消注释此行,而是使用从 Zotero 导出的biblatex
您自己的文件进行输入;.bib
\addbibresource{C:/Users/Dropbox/phd/ref/Exported Items.bib}
不要忘记在 TexStudio 中按F6+ F11+F6来编译您的 PDF 文件。完成!
代码:
\documentclass[oneside]{scrbook}
\usepackage[none]{hyphenat}%
%=====================Language, Fonts============================
\usepackage[ngerman,english]{babel}
\selectlanguage{english}
\usepackage{courier,amsmath,amsfonts} %fonts
%=====================Referencing============================
\usepackage{xcolor} %
\usepackage{hyperref} %
\definecolor{dark-red}{rgb}{0.4,0.15,0.15}
\definecolor{dark-blue}{rgb}{0.15,0.15,0.4}
\definecolor{medium-blue}{rgb}{0,0,0.5}
\hypersetup{
colorlinks, linkcolor={dark-red},
citecolor={dark-blue}, urlcolor={medium-blue} %url can be magenta
}
\usepackage{filecontents} % just to provide a .bib file for the MWE, comment out if you have your own .bib file that can be fed into biblatex by \addbibresource{C:/Users/Dropbox/ph...etc, you can find this line below, just uncomment it and add your own .bib file
\begin{filecontents}{\jobname.bib}
@article{voth_bacterial_2012,
title = {Bacterial type {IV} secretion systems: versatile virulence machines},
volume = {7},
issn = {1746-0921},
shorttitle = {Bacterial Type {IV} secretion systems},
doi = {10.2217/fmb.11.150},
number = {2},
journal = {Future microbiology},
author = {Voth, Daniel E and Broederdorf, Laura J and Graham, Joseph G},
month = feb,
year = {2012},
note = {{PMID:} 22324993},
keywords = {Bacterial Proteins, Bacterial Secretion Systems, {DNA}, Bacterial, Gram-Negative Bacteria, Gram-Negative Bacterial Infections, Host-Pathogen Interactions, Humans, must read, Protein Transport, review, Signal Transduction, Species Specificity, {T4SS}, Transcription, Genetic, Ubiquitination, Virulence Factors},
pages = {241--257}
}
@article{vignali_il-12_2012,
title = {{IL-12} family cytokines: immunological playmakers},
volume = {13},
copyright = {© 2012 Nature Publishing Group, a division of Macmillan Publishers Limited. All Rights Reserved.},
issn = {1529-2908},
shorttitle = {{IL-12} family cytokines},
url = {http://www.nature.com/ni/journal/v13/n8/full/ni.2366.html},
doi = {10.1038/ni.2366},
language = {en},
number = {8},
urldate = {2012-11-20},
journal = {Nature Immunology},
author = {Vignali, Dario A. A. and Kuchroo, Vijay K.},
year = {2012},
keywords = {{IL-12} family, key reference, language, review},
pages = {722--728}
}
@book{kennedy_pcr_2011,
title = {{PCR} Troubleshooting and Optimization: The Essential Guide},
isbn = {9781904455721},
shorttitle = {{PCR} Troubleshooting and Optimization},
language = {en},
publisher = {Horizon Scientific Press},
author = {Kennedy, Suzanne},
month = jan,
year = {2011},
keywords = {{PCR} troubleshooting, Polymerase Chain Reaction, {qPCR}, Science / Chemistry / General, Science / Life Sciences / Genetics \& Genomics}
}
@article{yamaoka_pathogenesis_2012,
title = {Pathogenesis of \textit{Helicobacter pylori}-related gastroduodenal diseases from molecular epidemiological studies},
volume = {2012},
issn = {1687-6121},
url = {http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3398592/},
doi = {10.1155/2012/371503},
urldate = {2013-01-01},
journal = {Gastroenterology Research and Practice},
author = {Yamaoka, Yoshio},
year = {2012},
note = {{PMID:} 22829807
{PMCID:} {PMC3398592}},
keywords = {{CagA}, {dupA}, H.pylori, must read, {OipA}, review, {VacA}, virulence}
}
@article{radstrom_pre-pcr_2004,
title = {Pre-{PCR} processing: strategies to generate {PCR-compatible} samples},
volume = {26},
issn = {1073-6085},
shorttitle = {Pre-{PCR} processing},
url = {http://www.ncbi.nlm.nih.gov/pubmed/14764939},
doi = {10.1385/MB:26:2:133},
number = {2},
urldate = {2011-04-21},
journal = {Molecular Biotechnology},
author = {Rådström, Peter and Knutsson, Rickard and Wolffs, Petra and Lövenklev, Maria and Löfström, Charlotta},
month = feb,
year = {2004},
note = {{PMID:} 14764939},
keywords = {Animals, Blood Chemical Analysis, {DNA}, Feces, Humans, Microchemistry, {PCR} inhibitors, Polymerase Chain Reaction, Pre-{PCR} process, {qPCR}, Specimen Handling},
pages = {133--146}
}
\end{filecontents}
\usepackage[backend=biber,style=chem-acs,terseinits=true,sorting=none,isbn=false,doi=false]{biblatex}
\addbibresource{\jobname.bib} % extension must be written
%\addbibresource{C:/Users/Dropbox/phd/ref/Exported Items.bib} % don't forget to writhe the path and extension of .bib file
\ExecuteBibliographyOptions{%
citetracker=true,% Citation tracker enabled in order not to repeat citations, and have two lists.
sorting=none,% Don't sort, just print in the order of citation
alldates=long,% Long dates, so we can tweak them at will afterwards
dateabbrev=false,% Remove abbreviations in dates, for same reason as ``alldates=long''
articletitle=true,% To have article titles in full bibliography
maxcitenames=999% Number of names before replacing with et al. Here, everyone.
}
% No brackets around the number of each bibliography entry
\DeclareFieldFormat{labelnumberwidth}{#1\addperiod}
% Suppress article title, doi, url, etc. in citations
\AtEveryCitekey{%
\ifentrytype{article}
{\clearfield{title}}
{}%
\clearfield{doi}%
\clearfield{url}%
\clearlist{publisher}%
\clearlist{location}%
\clearfield{note}%
}
% Print year instead of date, when available; make use of urldate
\DeclareFieldFormat{urldate}{\bibstring{urlseen}\space#1}
\renewbibmacro*{date}{% Based on date bib macro from chem-acs.bbx
\iffieldundef{year}
{\ifentrytype{online}
{\printtext[urldate]{\printurldate}}
{\printtext[date]{\printdate}}}
{\printfield[date]{year}}}
% Remove period from titles
\DeclareFieldFormat*{title}{#1}
% Make year bold for @book types
\DeclareFieldFormat[book]{date}{\textbf{#1}} % doctorate added this line
% Embed doi and url in titles, when available
\renewbibmacro*{title}{% Based on title bib macro from biblatex.def
\ifboolexpr{ test {\iffieldundef{title}}
and test {\iffieldundef{subtitle}} }
{}
{\ifboolexpr{ test {\ifhyperref}
and not test {\iffieldundef{doi}} }
{\href{http://dx.doi.org/\thefield{doi}}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}}}
{\ifboolexpr{ test {\ifhyperref}
and not test {\iffieldundef{url}} }
{\href{\thefield{url}}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}}}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}}}%
\newunit}%
\printfield{titleaddon}%
\clearfield{doi}%
\clearfield{url}%
\clearlist{language}% doctorate added this
\clearfield{note}% doctorate added this
\ifentrytype{article}% Delimit article and journal titles with a period
{\adddot}
{}}
\begin{document}
The book reference is here~\parencite{kennedy_pcr_2011}. All references have the year in bold format as shown in the bibliography~\parencite{vignali_il-12_2012}, whereas this one has some diacritics~\parencite{radstrom_pre-pcr_2004}. This article has a species name that you might want to change radically from within Zotero by surrounding the word with HTML-like tags like this: \verb| <i> Helicobacter pylori </i>| to italicize the species name~\parencite{yamaoka_pathogenesis_2012}, the species name called ``\textit{Helicobacter pylori}'' that you want to be italicized as it should be.
By the way I have Zotero now opened and doing \verb|CTR+ALT+C| of the selected reference in Zotero and pasting it into this \LaTeX{} document by using \verb|TexStudio| wonderful editor, you may use a different one, but that shouldn't be a problem anyway, as long as it supports \verb|biber| and \verb|biblatex| wonderful tools. \verb|TexStudio| also has the autocomplete feature that will show you all references after invoking it by the citation commands, but I find copy \& paste from Zotero much easier. How about experiencing \verb|multicite| commands of the \verb|Biblatex| neat package by citing all of the above~\parencites(compare)()[10--15]{kennedy_pcr_2011}[136]{radstrom_pre-pcr_2004}[725]{vignali_il-12_2012}{voth_bacterial_2012}{yamaoka_pathogenesis_2012}?
Did you notice that the prenote ``compare'' was to all citations, and the specific page numbers for individual references. You can cite authors, titles, and more others just read \verb|Biblatex| manual 3.7.3 Qualified Citation Lists. Please note that whenever an entry type has a DOI then you will have a clickable title in the bibliography section that will direct you into the website of that reference.
\printbibliography[title={References}] % change from bibliography to references
\end{document}
MWE的引用结果:
MWE 的参考书目结果:
更新:对于 Emacs 用户
从 Zotero 复制引文键仍然是一个不可省略的行为。您希望保持 Zetoro 数据库干净且最新,并且我认为除了 Zotero 之外,没有必要保持其他文件或数据库更新。因此与 TexStudio 一样,只需从 Zotero 获取该引用,通过CTRL+ SHIFT+复制它C(现在在剪贴板中)并将其拉入 Emacs CTRL+ y,如下所示:
快乐使用 ZoteroBiblatex!
答案2
这里似乎有三个不同的问题。我将依次回答我最喜欢的设置。
工作流
我使用 Emacs(带有 AUCTeX 和 RefTeX)进行写作,因此当我想添加参考文献时,只需C-[输入密钥的开头即可。如果我想引用的作品不在我的参考书目中,我会切换到参考书目文件并立即使用添加C-c C-b。这样,在写作过程结束时,我就不必再经历那段可怕的时期,必须将所有参考文献放在正确的位置。
书目管理
我有一个巨大的参考书目文件,用于记录我所有的工作。我不使用 Zotero、Mendeley 或类似的软件。在我看来,它们似乎比它们的价值更麻烦。由于我参考了很多书,所以我必须手动添加大量参考资料。
RefTeX 允许我以合理的方式搜索并插入条目。我看不出自动化有多大用处。也许是因为在我的领域,参考文献列表往往相对较小,而 Mendeley 数据库(我尝试过一次)管理不善……
BibLaTeX
任何系统都应该可以很好地与 BibLaTeX 配合使用。切换到 BibLaTeX实际上不需要做太多工作,也不会真正影响您的工作流程。如果您使用 say\parencite
和其他仅限 BibLaTeX 的引用命令,您可能需要将它们添加到您最喜欢的“自动引用插入器”方法中。我当前的设置是使用\let\cite\autocite
,然后只需使用。我想将和朋友添加到 aucTeX 的引用插入机制中\cite
不会太棘手。\autocite
你可能想要切换到使用 biber也。
答案3
我使用 Mendeley。
操作方法:使用 Mendeley 使用 LaTeX 和 BibTeX 创建引文。
我使用它的创建功能一 bib
文件每个集合。
Mendeley 很方便,因为它可以让导出保持最新和同步。
得益于此,我避免使用一个大bib
文件。相反,我将它们收集到组中,并将其中一些包含在 TeX 文档中。
我没有直接链接 TeX 文档,而是使用将bib
文件复制到我的文档中的脚本。
感谢使用Git 源代码版本控制我可以跟踪参考书目中的变化并且感到安全 - 如果 Mendeley 崩溃或丢失了某些内容,我总是有以前的版本。
由于手动更新了文档目录中的 bib 文件,我可以在很长时间后返回文档目录并继续编译它。因为它有自己的私有bib
文件副本(或bib
多个文件副本)。
总结一下:Mendeley + Git + LaTeX + BibTex 加上一些与参考文献管理间接相关但具有工作流程和效率的软件:Vim +剪接伴侣
答案4
目前我的工作流程如下:
我使用以下方式管理我的纸张收藏佐特罗。它可以非常轻松地将新读的论文或尚待阅读的论文添加到收藏中。一旦您在互联网上找到该论文,只需单击一下即可!借助标签,您可以按主题组织您的收藏。虽然可以将数据库导出到文件bib
,但在某些情况下我必须手动微调结果。例如更改Philip
为{\relax Ph}ilip
以进入Ph.
参考书目。
因此我不使用 Zotero 的导出功能,但我使用贾布雷夫生成bib
论文的实际文件。如果我想引用我的一篇论文佐特罗集合,我从 zotero 中获取 DOI 并使用DOI 转 BibTeX的特征贾布雷夫。然后我可以对条目进行微调bib
,这样如果我稍后要添加新论文时就无需再做这项工作了。
此工作流程适用于 BibTeX 和 BibLaTeX。
编辑:更准确地说,最后一点是,JabRef 是bib
BibTeX 和 BibLaTeX 都使用的文件格式的编辑器。在必填字段方面有一些区别。例如,建议使用journaltitle
BibLaTeX 而不是journal
(BibTeX)。但 BibLaTeX 也适用于旧的 BibTex 样式。原则上,JabRef 可以配置为使用 BibLaTeX 字段约定(选项 --> 首选项 --> 高级,复选框BibLaTeX 模式),但DOI 到 BibTex功能仍会创建该journal
字段。因此,如果您坚持使用新的 BibLaTeX 字段,则必须手动更改。