summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/notoccite/notoccite.tex
blob: 1f7298fe4a09e48cfe38206bfa8de5388279d345 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
\documentclass[pagesize=auto, parskip=half, fontsize=12pt, DIV=9]{scrartcl}

\usepackage{fixltx2e}
\usepackage{etex}
\usepackage{xspace}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{microtype}
\usepackage{hyperref}

\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
\newcommand*{\pkg}[1]{\textsf{#1}}
\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
\makeatletter
\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}}
\makeatother

\addtokomafont{title}{\rmfamily}

\title{The \pkg{notoccite} package}
\author{Donald Arseneau\thanks{\mail{asnd@triumf.ca}; TRIUMF, Vancouver, Canada}}
\date{Jul 20, 2000}


\begin{document}

\maketitle

\noindent
Ordinarily, cites used in titles or figure captions also appear in
the table of contents and list of figures.  If you then run \texttt{bibtex}
using the \pkg{unsrt} (unsorted) style, they get numbered starting from 1,
not the number they should have in the main text.

A good option is to avoid cites in titles, and to specify optional
caption text without cites:\\[0.4ex]
\small
\verb+\caption [Picture of a bird.]{Picture of a bird \cite{audobon}.}+
\normalsize

If you must use moving cites, you could manage them by deleting \textsc{toc} 
and \textsc{lof} files, then running \texttt{latex} once, then \texttt{bibtex}\@.  However, the
following definition fixes the problem so you don't need to worry
about that.  

\emph{NOTE:} This definition works for the ordinary \LaTeX\ definitions
for \cmd{\cite} and others (\cmd{\addtocontents}, \cmd{\label}) but it may well
fail when used with various packages for citations or cross
references.  

It works by locally setting \cmd{\@fileswfalse}, which is something like
\cmd{\nofiles}, but \cmd{\@fileswfalse} does not affect \cmd{\label} or \cmd{\addtocontents}.
\cmd{\nofiles} does most of its work by redefining \cmd{\protected@write}, and
neither \cmd{\addtocontents} nor \cmd{\label} check for \cs{if@filesw}.  \cmd{\cite} \emph{does}
check \cs{if@filesw}.

\end{document}