29

我在一篇文章中使用 LaTeX 和 BibTeX,我希望能够引用我引用的一篇文章的标题。执行此操作的命令是什么?

我正在使用\bibliographystyle{chicago},但它似乎不是\citeT{}\citetitle{}\citeTitle{}

4

5 回答 5

29

@Norman 和各种评论者是正确的,因为使用 bibtex 和其他工具很难做到这一点。但是,还有另一种选择。Biblatex确实通过命令允许这样做\citetitle。此外,如果你真的想要,biblatex 中的格式化驱动程序很容易阅读和修改,但前提是你觉得有必要。不幸的是,它还不是任何发行版的一部分,因此必须下载并安装它。

于 2010-04-17T04:30:26.013 回答
25

只需输入标题。甚至natbib,最强大的 BibTeX 包,也不足以做你想要的开箱即用。尝试让 BibTeX 通过 LateX 命令为您提取标题是可能的,但这需要您

  1. 为与现有格式不兼容的书目项目设计一种新格式。
  2. 使用仅 BibTeX 使用的非常奇怪的后缀语言编写您自己的自定义.bst文件,以与您的新格式兼容。
  3. 编写一个新的 LaTeX 命令以将标题信息从新格式中提取出来。

作为一个编写了几个自定义bst文件以及替代 BibTeX的人来说,这不值得被愚弄。毕竟,如果你引用了这篇论文,你可能无论如何都知道标题。


编辑:如果你必须用多篇论文来做这件事,我会试着作弊。扩展 bst 文件,使其将一个命令写入 bbl 文件,该命令将与每个 bibkey 关联的标题写入 aux 文件。您可以在 bbl 命令上建模,\label\ref.

于 2010-03-23T03:59:53.907 回答
6

这就是我解决被引论文标题问题的方法:

在序言中

包括 Natbib:

\usepackage[sort&compress]{natbib}

如果您想在文本中引用 TITLE 而不是作者,您可以在序言中这样定义标题:

\defcitealias{Weiser1996designingcalm}{Designing Calm Technology}

注意: 您需要有一个带有键 {Weiser1996designingcalm} 的 bibtex 项目(标题为“Designing Calm Technology”)。

在您要写被引​​论文标题的论文中

\citetalias{Weiser1996designingcalm}

这导致 => Designing Calm Technology(即您使用上面的 \defcitealias 命令指定的文本)

或者

\citepalias{Weiser1996designingcalm}

这导致 => (Designing Calm Technology)(即带括号的标题)

于 2010-04-22T15:54:43.647 回答
4

这个问题很老,也许\citefield在过去不存在,但现在它对这类问题很有魅力:

\documentclass[varwidth]{standalone}

\usepackage{biblatex}
\begin{filecontents}{\jobname.bib}
@article{example,
  title   =  {NAME OF PAPER},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}

\citefield{example}{title}

\end{document}

从这个问题中得到它。

于 2018-03-08T10:31:21.030 回答
3

感谢安德斯的提示。\defcitealias似乎是要走的路。

Bibtex 生成一个.bbl包含参考书目条目的文件。类似的东西

\bibitem[\protect\citeauthoryear{Andrienko
  {\itshape{et~al.}}}{2003}]{Andrienko2003}
Andrienko, G., Andrienko, N., and Voss, H., 2003. {GIS for Everyone: The
  CommonGIS Project and Beyond}. {\itshape {In}}: {\itshape {Maps and the
  Internet}}.,  131--146  Elsevier.

我使用 Eclipse,它是免费的,您可能已经需要在需要时在此文件中应用正则表达式。'\R' 充当独立于平台的行分隔符。下面是一个多行搜索的例子:

搜索:

\\bibitem.*(\R.*)?\R?\{([^{]*)\}\R^[^\\].*\d\d\d\d\.\s([^\.]*\R?[^\.]*)\R?.*\R?.*

并替换:

\\defcitealias{$2}{$3}

(对于我自己,我\\bibitem.*(\R.*)?\R?\{([^{]*)\}$\R^([^\\].*[^\}]$\R.*$\R.*)用来获取所有项目文本)

Et 生成了一系列\defcitealias可以复制粘贴到其他地方的内容:

\defcitealias{Andrienko2003}{{GIS for Everyone: The
  CommonGIS Project and Beyond}}

最后,这可用于构建自定义命令,例如:

\newcommand{\MyCite}[1]{\citet*{#1}. \citetalias{#1}.}

用作\MyCite{Andrienko2003}和生产:Andrienko et al. (2003). GIS for Everyone: The CommonGIS Project and Beyond.

于 2010-05-09T20:51:15.650 回答