从 Bibfile 中提取信息

从 Bibfile 中提取信息

我想按照这里概述的方式整理我读过的论文https://academia.stackexchange.com/questions/10578/how-to-read-and-take-notes-on-research-papers/10616#10616

但是写出作者和年份之类的信息让我有点烦,因为这些信息已经存在于我的全局 bib 文件中(或者应该存在)。此外,如果我在 bib 文件中更正了错误,我希望所有错误都能得到更正。有没有办法从 bib 文件中获取我的 latex 文档的信息?

因此,不要:(厚颜无耻地从上面的帖子中复制)

\section{Paper #1 Name, Authors, Date, \cite{...}}
My summary of the motivation and findings of the paper, or whatever I find interesting.
May be as short as a few sentences or as long as a page, depending on how relevant it is. 
\index{an important word}

我想写类似这样的内容:

\section{\mycitetitle{citekeyfrombibfile}}
\citeurl{citekeyfrombibfile}
notes and so on

where\mycitetitle将扩展为 Title、Authors、Year 并\citeurl扩展为 url(如果可用)。我猜这可能是 biblatex 的一个案例,但我才刚刚开始使用它,还不确定它能做什么。

答案1

这是一个使用的解决方案biblatex

\documentclass{article}
\usepackage[hyperref]{biblatex}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Goossens1994LaTeX,
  author = {Michel Goossens and Frank Mittelbach and Alexander Samarin},
  title = {The \LaTeX{} Companion, $2^{nd}$ Edition},
  publisher = {Addison-Wesley},
  year = {1994},
  url = {www.tex.stackexchange.com}
}
\end{filecontents*}

\DeclareCiteCommand{\citepaper}[\section]
  {}
  {\bibyhyperref{Paper 
     \printfield{title}, 
     \printnames{author}, 
     \printfield{year} 
     \mkbibbrackets{\printfield{labelnumber}}}}
  {}
  {}
\addbibresource{\jobname.bib}

\begin{document}

\citepaper{Goossens1994LaTeX}

\end{document}

该解决方案实现了一个新的 cite 命令(\citepaper),用于打印所需/所需的信息。

在此处输入图片描述

答案2

为什么不bibentry

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{mybib1.bib}
@book{Goossens1994LaTeX,
  author = {Michel Goossens and Frank Mittelbach and Alexander Samarin},
  title = {The \LaTeX{} Companion, $2^{nd}$ Edition},
  publisher = {Addison-Wesley},
  year = {1994{.}},
  url = {www.tex.stackexchange.com}
}
\end{filecontents*}
\usepackage{natbib}
\usepackage{bibentry}
\begin{document}
\bibliographystyle{unsrtnat}
\nobibliography{mybib1}

\subsection*{\bibentry{Goossens1994LaTeX}}

\end{document}

在此处输入图片描述

答案3

只是为了完整性,我在等待答案时发现的另一种方法是:

\documentclass{article}
\usepackage[hyperref]{biblatex}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Goossens1994LaTeX,
 author = {Michel Goossens and Frank Mittelbach and Alexander Samarin},
 title = {The \LaTeX{} Companion, $2^{nd}$ Edition},
 publisher = {Addison-Wesley},
 year = {1994},
 url = {www.tex.stackexchange.com}
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\newcommand{\mytitlecite}[1]
 {\texorpdfstring{\citetitle{#1}, \citeauthor{#1}, \citeyear{#1},\cite{#1}}{#1}}
\begin{document}

\section{\href{file.pdf}{Paper} \mytitlecite{Goossens1994LaTeX}}

\end{document}

其中 file.pdf 是本地文件系统中包含论文的文件。这也可以避免 hyperref 的警告。另一个回答但是可以扩展来做到这一点,并且有一个额外的功能,即整个部分标题都是可点击的,而不仅仅是标签。

相关内容