当我在研究笔记本中做笔记时,我经常会引用许多论文,因为我正在写摘要的论文已经引用了它们:我想记录每个主张的充分依据,并且希望能够在将来需要时找到来源。
但是,停下来阅读当前论文引用的每一篇参考文献对我来说并不现实。因此,我笔记本中的一些参考文献我读过,而有些我没读过。这让我很困扰,因为它们在实际文档中没有明确标记。
我怎样才能引用我的 Bibtex 资料(我实际上在 Miktex/Texstudio 下使用 JabRef 和 biber)以便区分我已读过的资料和未读过的资料?
我想要什么逻辑层次
理想情况下,我希望有三门课程:
- 我读过的参考文献
- 我还没读过但打算读的参考文献
- 我没有读过并且不打算读的参考文献
但如果只能进行二元歧视,那么最后两个就可以合并为一个组。
我希望它看起来像什么
理想情况下,我希望在引用时标记每一类引用。例如:
近来人们发现水是湿的[1],天空是蓝色的[+2],但一磅铁是否比一磅棉花重仍然存在争议[-3]。
这里,[1] 是我读过的参考文献,[+2] 是我还没读过但计划读的参考文献,[-3] 是我并不想读的参考文献。实际格式并不重要,只要它与主流引用样式(数字和作者年份)兼容即可 - 可以是星号、匕首、颜色、括号类型、字体、字母等(虽然越简单越好)
那么参考书目将如下所示:
1.布鲁克斯,R.一氧化二氢的令人惊讶的流体特性。流体化学杂志30 (2013年7月),40-52。
+2。Brown, N.、Blum, M.、Maruyama, E. 和 Martinez, P. 一种用于评估色度的新型、强大的光谱方法。英国皇家占星学会会刊(1999 年 5 月)。
-3。马丁内斯(M.)和莫里森(RT)哪一个更重:区分事实与虚构。第 17 届国际无聊论证大会(2012 年 10 月)。
再次强调,确切的符号并不重要。除了此方案之外,如果它可以输出三个单独的参考书目,并且每个参考类别都有自己的参考书目,那么也是可以的。
我希望能够一眼就看出文本和参考书目中哪些参考文献我读过,哪些没有读过,但如果这很难,那么只看参考书目就足够了。
答案1
另一种方法是将参考书目分成三个子书目,这同样要感谢 biblatex。您可以使用关键字过滤它们,然后prefixnumber
为每个子书目添加一个。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=bibtex]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{bib.bib}
@article{Hubert2013,
author={Hubert, Michel},
title={A First Example},
journal={An example of journal},
year=2013,
keywords={to-be-read}
}
@article{Hubert2012,
author={Hubert, Michel},
title={A Second Example},
journal={An example of journal},
year=2012,
keywords={read}
}
@article{Hubert2011,
author={Hubert, Michel},
title={A Third Example},
journal={An example of journal},
year=2011,
keywords={other}
}
\end{filecontents*}
\addbibresource{bib}
\begin{document}
\cite{Hubert2011, Hubert2012, Hubert2013}
\printbibliography[heading=subbibliography,
title={To be read},
keyword=to-be-read,
prefixnumbers=+]
\printbibliography[heading=subbibliography,
title={Read},
keyword=read]
\printbibliography[heading=subbibliography,
title={Not to be read},
keyword=other,
prefixnumbers=-]
\end{document}
(来源:toile-libre.org)
额外的好处是,你只需要改变关键词就可以改变其引用键。
坏消息是,你的参考书目一定分为三个子书目。
答案2
最近开发的吸水工程这使得实现起来很容易。以 OP 为例,我们有一个数据库文件 ( readtag.bib
),readtag
其中每个条目都插入了一个字段:
@article{Brooks2013,
author = {R. Brooks},
title = {Surprising fluidic characteristics of dihydrogen monoxide},
journal = {Journal of Fluidic Chemistry},
volume = 30,
month = 7,
year = 2013,
pages = {40-52},
readtag = {{}}
}
@article{Brown1999,
author = {N. Brown and M. Blum and E. Maruyama and P. Martinez},
title = {A novel, powerful spectrometric method for evaluating chromaticity},
journal = {Proceedings of the Royal Astrological Society},
month = 5,
year = 1999,
readtag = {+}
}
@inproceedings{Martinez2012,
author = {M. Martinez and R. T. Morrison},
title = {Which one is heavier: Separating facts from fiction},
booktitle = {17th International Conference of Boring Arguments},
month = 10,
year = 2012,
readtag = {-}
}
readtag.bst
接下来我们可以开发一个利用该字段的样式文件( ) readtag
:
TEMPLATES:
article = \textbf{[<readtag>]<citenum>}. <au>, <title>. \textit{<journal>}[ <volume>] ([<month.monthabbrev()> ]<year>)[, <startpage>--<endpage>|, <startpage>|, <eid>].
inproceedings = \textbf{[<readtag>]<citenum>}. <au>, <title>. \textit{<booktitle>}[ <volume>] ([<month.monthabbrev()> ]<year>)[, <startpage>--<endpage>|, <startpage>|, <eid>].
SPECIAL-TEMPLATES:
citelabel = (<citenum>)
readtag = - ## default tag is "have not read"
OPTIONS:
namelist_format = last_name_first
最后,我们可以使用readtag.tex
文件
\documentclass{article}
\makeatletter
\renewcommand{\@biblabel}[1]{}
\renewcommand{\@cite}[2]{{#1\if@tempswa , #2\fi}}
\makeatother
\begin{document}
It has recently been discovered that water is wet\cite{Brooks2013} and the sky is blue\cite{Brown1999}, but it is still controversial whether a pound of iron is heavier than a pound of cotton\cite{Martinez2012}.
\bibliographystyle{readtag}
\bibliography{readtag}
\end{document}
此处使用这一\renewcommand{\@cite}...
行是为了允许文本中的引用标签与参考文献列表中的引用标签不同。编译readtag.tex
并用 Bibulous 作为参考书目引擎替换 BibTeX 可得到格式化的参考文献列表
答案3
迈向更简单的解决方案的第一步可能是使用 biblatex,该解决方案可以使用该shorthand
字段。摘自 biblatex 手册:
字段(文字)引文样式使用的特殊名称,而不是通常的标签。此字段用于引用别名。如果已定义,它将覆盖默认标签。如果任何引用的书目条目包含简写字段,biblatex 会自动构建一个可以打印的简写列表,以补充常规书目;有关详细信息,请参阅 § 3.5.3。另请参阅标签。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=bibtex]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{bib.bib}
@article{Hubert2013,
author={Hubert, Michel},
title={A First Example},
journal={An example of journal},
year=2013,
shorthand={+1}
}
@article{Hubert2012,
author={Hubert, Michel},
title={A Second Example},
journal={An example of journal},
year=2012,
shorthand={-2},
}
@article{Hubert2011,
author={Hubert, Michel},
title={A Third Example},
journal={An example of journal},
year=2011,
shorthand={3},
}
\end{filecontents*}
\addbibresource{bib}
\begin{document}
\cite{Hubert2011, Hubert2012, Hubert2013}
\printbibliography
\end{document}
(来源:toile-libre.org)
缺点是它与任何引用风格都不兼容:您必须手动定义将出现在您的文档中的密钥!