如何在LaTeX中引用文章标题?

33

我正在使用LaTeX和BibTeX编写一篇文章,并想引用参考文献中文章的标题。请问如何用命令实现这个功能?

我正在使用\bibliographystyle{chicago},但是似乎没有\citeT{}\citetitle{}\citeTitle{} 这些命令可以实现。

5个回答

35

Norman和其他评论者都正确,使用bibtex和其他工具可能很难实现此功能,但是有一种替代方案。Biblatex可以通过命令\citetitle实现这一点。如果您真的想要这样做,biblatex中的格式驱动程序易于阅读和修改,但前提是您有这个需求。不幸的是,它尚未包含在任何发行版中,因此必须下载并安装。


25
只需在标题中输入即可。即使是最强大的广泛使用的BibTeX软件包之一natbib,也不足以直接实现您想要的功能。尝试通过LateX命令让BibTeX为您提取标题是可能的,但这需要:
2.设计一种与现有格式不兼容的新格式来进行参考文献条目的排版。
3.编写自己的定制bst文件,使用BibTeX专用的非常奇怪的后缀语言,以与您的新格式兼容。
4.编写新的LaTeX命令,以从新格式中提取标题信息。
作为一个撰写了几个自定义bst文件以及BibTeX替代的人,我认为这样做根本不值得。毕竟,如果引用论文,您可能已经知道了标题。

编辑: 如果你需要对多篇论文进行此操作,我建议你可以采用一些小技巧。扩展bst文件,使其向bbl文件中写入一个命令,该命令将与每个bibkey相关联的标题写入到aux文件中。你可以以


谢谢Norman - 的确如此,我知道标题,但我正在尝试生成一种特定类型的文档,在其中可以引用这些标题(目前有20个参考文献)。我在这里找到了一个.bst文件制作工具:http://www.andy-roberts.net/misc/latex/latextutorial3.html - djq
@celenius:在这种情况下,我认为你别无选择,只能自己编写代码。 (bst制作工具很好用,但是那组特定的函数已经被“natbib”基本取代了。)你可以从bibtex开始,但它很痛苦;或者你可以从nbibtex开始,但也会以不同的方式感到痛苦。 - Norman Ramsey
我不太明白你所说的“扩展bst文件”的意思。我认为在编写代码方面我已经超出了我的能力范围,所以我只会复制/粘贴标题。感谢您的建议。 - djq
我曾经尝试黑客BST文件(让我可以使用BibTeX为我的简历生成参考文献列表),但是即使我只需要微调现有样式,这个过程也出奇地痛苦。 - dmckee --- ex-moderator kitten
2
也许 biblatex 可以实现这个功能? - Damien Pollet

7
这是我解决引用论文标题问题的方法: 在导言部分 包含Natbib:
```html

include Natbib:

```
\usepackage[sort&compress]{natbib}

如果你想在文本中引用标题而非作者,你需要在导言部分像这样定义标题:
\defcitealias{Weiser1996designingcalm}{Designing Calm Technology}

注意:您需要有一个bibtex项(标题为“Designing Calm Technology”)并使用关键字{Weiser1996designingcalm}。

在您想要写引用论文的论文中

\citetalias{Weiser1996designingcalm}

这将导致 => 设计平静技术(即您在上面使用\defcitealias命令指定的文本)
或者
\citepalias{Weiser1996designingcalm}

导致结果为 => (设计平静技术)(即带括号的标题)


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}

这个问题是从这里获得的。


3
感谢Anders的提示。 \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.*)来获取所有项目文本。

它会生成一系列\defcitealias,可以复制粘贴到其他地方:

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

最后,这可以用来构建自定义命令,例如:
\newcommand{\MyCite}[1]{\citet*{#1}. \citetalias{#1}.}

被用作\MyCite{Andrienko2003},产生的结果为:Andrienko等人(2003年)。GIS for Everyone:The CommonGIS Project and Beyond。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接