How do I cite the title of an article in LaTeX?

2019-06-14 21:25发布

I'm using LaTeX and BibTeX for an article, and I want to able to cite the title of an article I reference. What is the command to do this?

I'm using \bibliographystyle{chicago} and it does not appear to be \citeT{}, \citetitle{} or \citeTitle{}

标签: latex bibtex
5条回答
贼婆χ
2楼-- · 2019-06-14 21:56

Just type in the title. Even natbib, the most powerful widespread BibTeX package, is not powerful enough to do what you want out of the box. Trying to get BibTeX to extract the title for you, by means of a LateX command, is possible, but it would require that you

  1. Design a new format for bibliography items that is incompatible with existing formats.
  2. Write your own custom .bst file, using the very strange postfix language that is used only by BibTeX, to be compatible with your new format.
  3. Write a new LaTeX command to pull the title information out of the new format.

Speaking as someone who has written several custom bst files as well as a replacement for BibTeX, it's just not worth fooling with. After all, if you are citing the paper, you probably know the title anyway.


EDIT: If you have to do this with multiple papers, I would try to cheat. Extend the bst file so that it writes into the bbl file a command that writes into the aux file the title associated with each bibkey. You can model the bbl command on \label and the actual title-citing command on \ref.

查看更多
一夜七次
3楼-- · 2019-06-14 21:59

This question is old and maybe \citefield was not around back in the days, but now it works like charm for this kind of problems:

\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}

Got it from this question.

查看更多
女痞
4楼-- · 2019-06-14 22:04

@Norman, and the various commenters, are correct in that it would be difficult to do this with bibtex and other tools. But, there is an alternative. Biblatex does allow this through the command \citetitle. Also, if you really want to, the formatting drivers in biblatex are easily readable and modifiable, but only if you feel the need. Unfortunately, it is not part of any distribution, yet, so it has to be downloaded and installed.

查看更多
Fickle 薄情
5楼-- · 2019-06-14 22:17

Thanks to Anders for the hint. \defcitealias seems to be the way to go.

Bibtex produces a .bbl file which contains the bibliography entries. something like that

\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.

I use Eclipse, which is free and that you may already have to apply regular expressions in this file when needed. '\R' acts as platform independent line delimiter. Here is an example of multi-line search:

search:

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

and replace:

\\defcitealias{$2}{$3}

(For myself I use \\bibitem.*(\R.*)?\R?\{([^{]*)\}$\R^([^\\].*[^\}]$\R.*$\R.*) to get all the item text)

Et produces a series of \defcitealias that can be copypasted elsewhere:

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

Finally, this can be used to build a custom command such as:

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

Used as \MyCite{Andrienko2003} and producing: Andrienko et al. (2003). GIS for Everyone: The CommonGIS Project and Beyond.

查看更多
爱情/是我丢掉的垃圾
6楼-- · 2019-06-14 22:21

This is how I solve the title issue for cited papers:

In the preamble

include Natbib:

\usepackage[sort&compress]{natbib}

If you want to cite a TITLE instead of an author in the text you define the title like this in the preamble:

\defcitealias{Weiser1996designingcalm}{Designing Calm Technology}

Note: You need to have a bibtex item (for the title ''Designing Calm Technology'') with the key {Weiser1996designingcalm}.

In the paper where you want to write the cited paper's title

\citetalias{Weiser1996designingcalm}

this results in => Designing Calm Technology (i.e. the text you specified with the \defcitealias command above)

or

\citepalias{Weiser1996designingcalm}

that results in => (Designing Calm Technology) (i.e. title with parenthesis)

查看更多
登录 后发表回答