summaryrefslogtreecommitdiff
path: root/info/bibtex/tamethebeast/ttb_en.sec2.tex
blob: 66a008dfc2cd288500979ccd3ec109b24ff095ef (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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
%% ttb_en.sec2.tex
%% Copyright 2003-2005  Nicolas Markey
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt 
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
% 
% This work has the LPPL maintenance status "maintained".
% The Current Maintainer of this work is Nicolas Markey  
% 
% This work consists of the files
%       ttb_en.tex
%       ttb_en.sec1.tex  ttb_en.sec2.tex  ttb_en.sec3.tex
%       ttb_en.sec4.tex  ttb_en.sec5.tex  ttb_style.sty
%       local.bib        idxstyle.ist     Makefile
% and the derived ttb_en.dvi, ttb_en.ps and ttb_en.pdf


\mypart{How to use \bt?}
\parttoc
\mtcskip

\mysection{How does it work?} \label{bibtex}

As mentioned earlier, \bt can be seen as a general database manager:
It extracts items from a database, sorts them, and exports the 
result, generally as a \LaTeX{}able \env{thebibliography} 
environment. 

This description is a somewhat optimistic view, however, and reality
is a little more complex: In order to tell \bt which entries have to
be extracted, you have to first run \LaTeX on your document. And once
\bt has finished its job, you have to run \LaTeX anew in order to take
the resulting bibliography into account. Here are some more details:

\begin{itemize}
\item At the very first stage, you run \LaTeX on your document. Since this is
  the first time you compile it, no bibliographic
  information is included, and references are left
  empty. Nevertheless, each time \LaTeX encounters a bibliographic reference 
  in the document, it writes the key of the reference in the \ext{aux}
  file\footnote{This is the role of the \cmd{citation} command issued
  by the \cmd{cite} command (\cf page~\pageref{citation}).}. During
  the compilation, \LaTeX also indicates in the \ext{aux} file which
  databases have to be used, and which bibliography style has
  to be applied for typesetting the bibliography;

\item \bt can now be executed: It takes the \ext{aux} file as
  argument, which contains all the relevant informations
  for extracting the bibliography: The style (\ext{bst} file) to be
  applied to the 
  bibliography, the database (\ext{bib} file) to be used, and the
  entries to be  extracted from the database.  With this stuff, \bt
  will then extract the \cmd{cite}{}d references 
  and write the bibliography in a \ext{bbl}
  file. Logs of this operation are written in a \ext{blg} file;

\item The next step is to rerun \LaTeX. The \ext{bbl} file will then
  be included, and its \cmd{bibitem} commands executed. This writes
  the necessary bibliographic cross references in the \ext{aux}
  file. However, this does not define the cross references for the
  current compilation, and bibliographic references still won't be
  defined;

\item We then run \LaTeX a third time: When reading the \ext{aux} file
  at the beginning of the compilation, \LaTeX will store the
  references of the bibliographic citations, and those references
  will be correct in the document.
\end{itemize}


It follows that, in the best case, we need to compile the file three
times, and to run \bt once. There are some cases where this is still
not sufficient: If, for instance, a bibliographic entry cites another
one, another run of both \bt and \LaTeX is needed. And so on. 
Finally, here is the global pattern to be applied:
\begin{center}
\LaTeX (\bt {} \LaTeX )$^+$ \LaTeX.
\end{center}


Everything else works as in part~\ref{part1}, since \bt generally creates the
complete \env{thebibliography} environments with all the \cmd{bibitem}{}s of
the references that are cited in your document.
There are two new \LaTeX commands, however: Those
defining the style file to consider and bibliographic database(s):
\begin{itemize}
\item \cmd{bibliographystyle} is the command to be used to declare the
  bibliography style to be used by \bt. Here is how it is defined:
\begin{listing}{1}
\def\bibliographystyle#1{%
  \ifx\@begindocumenthook\@undefined\else
    \expandafter\AtBeginDocument
  \fi
    {\if@filesw
       \immediate\write\@auxout{\string\bibstyle{#1}}%
     \fi}}
\end{listing}


This simply writes a \cmd{bibstyle} command in the \ext{aux} file,
whose argument is the name of the style. \cmd{bibstyle} itself is a
command that has one argument, but does nothing. Indeed, the
name of the bibliography style is only needed by \bt, and \LaTeX doesn't
care about it.

\item \cmd{bibliography} is the command for defining the bibliographic
  database to be used. Contrary to the previous command, the argument
  of \cmd{bibliography} might be a comma-separated list of
  bibliographic databases. Note that ``comma-separated'' is strict
  here: No space and no line break are allowed. Apart from this, the
  behavior of this command is similar to the behavior of the previous
  one: It writes its argument in the \ext{aux} file, as the 
  argument of
  a command named \cmd{bibdata} (which is then read by \bt, 
  but does nothing in \LaTeX).  Last, this
  \cmd{bibliography} command includes the \ext{bbl} file, 
  which writes
  the bibliography. Here is the precise definition:
\begin{listing}{1}
\def\bibliography#1{%
  \if@filesw
    \immediate\write\@auxout{\string\bibdata{#1}}%
  \fi
  \@input@{\jobname.bbl}}
\end{listing}

You've probably already understood that \cmd{jobname} returns the name
of the file being compiled.
\end{itemize}


Last precision: The \ext{aux} file also contains the list of keys of
the entries to be extracted. This is achieved by the \cmd{citation}
commands echoed by \cmd{cite} in the \ext{aux} file. \cmd{citation}
does the same thing as \cmd{bibstyle} and \cmd{bibdata}: Nothing.


\mysection{Some bibliography styles...}

There exist quite a bunch
of  bibliography styles, since each publisher has his own
needs 
and preferences. I'll present some generic styles here, together with  their
specificities. 

\mysubsection{Classical bibliography styles}

The following four styles were originally written by Oren
\textsc{Patashnik}, whom I forgot to introduce but is in fact the
author of \bt. The styles are named \bst{plain}, \bst{alpha},
\bst{unsrt} and \bst{abbrv}. If you want to use the
\bst{plain}~style, you'll write \verb+\bibliographystyle{plain}+ 
(anywhere) in your document.


Globally speaking, the bibliography style has to manage
everything. ``Everything'' here can be decomposed into three points:
Defining the available entry types, with their relevant 
fields\footnote{I insist that entry types and field names depend 
on the bibliography style, and are not fixed by \bt.}; 
Extracting and sorting 
bibliographic items; And typesetting the bibliography.


So the first role of the style file is to define entry types, such as
\ent{book}, \ent{article} or \ent{inproceedings} in classical styles,
and for each of them, the relevant fields  that will be
either mandatory or optional or just ignored\footnote{The following
  rule applies: A field that is neither mandatory nor optional, is
  ignored. Thus you can add any comment or personal field in your
  bibliography, even if they're not in the list below. Some other
  fields might of course be used by other, non classical styles.}.
The table below describes the role of the fields that are used in
classical style files. Descriptions are short, but more details can be
easily found in any \LaTeX book.\label{champ}

\begin{center}
%\centerline{%
\begin{longtable}{|>{\vrule height8pt depth0pt width 0pt\noindent\bgroup\bfseries}p{.17\textwidth}<{\egroup}>{\noindent}p{.77\textwidth}<{\vrule height0pt depth7pt width 0pt}|}
\hline\endfirsthead
\hline\endhead
\hline\endfoot
\hline\endlastfoot
address & Generally the city or complete address of the publisher.
\\
author & For author names. The input format is quite special, since
\bt 
has to be able to distinguish between the first and last
names. Section~\ref{author} and~\ref{noms-start} are completely 
dedicated to this topic.
\\
booktitle & For the title of a book one part of which is cited.
\\
chapter & The number of the chapter (or any part) of a book being
cited. If not a chapter, the \texttt{type} field might be used for
precising the type of sectioning.
\\
crossref & This one is quite peculiar. It's used to cross-reference
within the bibliography. For instance, you might cite a 
document, and a part of it. In that case, the second one 
can reference
the first one, or at least inherit some of its fields from the first
one. This deserves some more comments, see section~\ref{crossref}.
\label{cetaitla} \\
edition & The edition number. Or in fact its ordinal, for instance
\texttt{edition = "First"}. This  might raise
problems when trying to export a bibliography into another language.
\\
editor & The name of the editor(s) of the entry. The format is the 
same as for authors.
\\
howpublished & Only used in rare cases where the document being cited
is not a classical type such as a \ent{book}, an \ent{article} or an
\ent{inproceedings} publication.
\\
institution & For a technical report, the name of the institution that
published it.
\\
journal & The name of the journal in which the cited article has 
been published. 
\\
key & Used for defining the label, in case it cannot be computed by
\bt. It does not force the label, but defines the label when
\bt needs one but can't compute it.
\\
month & Well... The month during which the document has been
published. This also raises the problem of the translation of the
bibliography: It's better having a numerical value, or an abbreviation,
instead of the 
complete name of the month. Having the number would also allow \bt
to sort the entries more precisely (even though, as far as I know, no
bibliography style does this at the present time).
\\
note & For any additional data you would want to add. Since classical
styles were written in 1985, they don't have a \texttt{url} field, and
\texttt{note} is often used for this purpose, together with the
\sty{url} package.
\\
number & A number... Not whichever, but the number of a report. For
volume numbers, a special 
\texttt{volume} field exists.
\\
organization & The organizing institution of a conference.
\\
pages & The relevant pages of the document. Useful for the reader when
you cite a huge book; Note that such a precision could be added
through the optional argument of \cmd{cite} (see
page~\pageref{citeopt}), in which case it would appear in the document
but not in the bibliography. 
\\
publisher & The institution that published the document.
\\
school & For theses, the name of the school the thesis has been
prepared in.
\\
series & The name of a collection of series or books.
\\
title & The title of the document being cited. There are some rules to
be observed when entering this field, see section~\ref{title}.
\\
type & The type. Which type? It depends... The type of publication, if
needed. For thesis, for instance, in order to distinguish between
a masters thesis and a PhD. Or the type of section being cited (see
\texttt{chapter} above). 
\\
volume & The volume number in a series or collection of books.
\\
year & The publication year.
\\
%\hline
%\caption{ }\label{chp}
\end{longtable}
\end{center}
\label{fin-champ}


The table below describes the different entry types. Once again, you
can find more details in any \LaTeX documentation, so I won't go deep
into the details. \label{type}
{%
\hfuzz=50pt%
\begin{longtable}{|>{\vrule height11pt depth0pt width 0pt}p{.45\textwidth}
%>{\noindent}p{.27\textwidth}
>{\noindent\raggedright\relax}p{.22\textwidth}
>{\noindent\raggedright\relax}p{.25\textwidth}<{\vrule height0pt depth9pt width 0pt}|}
\hline\endfoot
\hline\endlastfoot
\hline
\vrule depth7pt height 10pt width 0pt\normalfont Entry type & 
Mandatory fields & Optional fields \tabularnewline\hline\endhead
\hline\vrule depth7pt height 10pt width 0pt\normalfont Entry type  &
Mandatory fields & Optional fields \tabularnewline\hline\endfirsthead

\ent{article} :  An article published in a journal. &
\chp{author}, \chp{title}, \chp{year}, \chp{journal}. &
\chp{volume}, \chp{number}, \chp{pages}, \chp{month}, \chp{note}.\tabularnewline

\ent{book} :  Well... A book. &
\chp{author} or \chp{editor}, \chp{title}, \chp{publisher}, \chp{year}.&
\chp{volume} or \chp{number}, \chp{series}, \chp{address}, \chp{edition}, \chp{month}, \chp{note}.\tabularnewline

\ent{booklet} :  A \emph{small} book, that has no \chp{publisher} field.&
\chp{title}.&
\chp{author}, \chp{howpublished}, \chp{address}, \chp{address}, \chp{month}, \chp{year}, \chp{note}. \tabularnewline

\ent{conference} : Article that appeared in the proceedings of a
conference, a meeting... &
\chp{author}, \chp{title}, \chp{booktitle}, \chp{year}.&
\chp{editor}, \chp{volume} or \chp{number}, \chp{series}, \chp{pages},
\chp{address}, \chp{month}, \chp{organization}, \chp{publisher}, \chp{note}.\tabularnewline

\ent{inbook} :  Part (generally a chapter) of a book.&
\chp{author} or \chp{editor}, \chp{title}, \chp{chapter} or \chp{pages}.&
\chp{volume}, \chp{number}, \chp{series}, \chp{type}, \chp{address},
\chp{edition}, \chp{month}, \chp{note}.\tabularnewline

\ent{incollection} :  Part of a book having its own title. &
\chp{author}, \chp{title}, \chp{booktitle}, \chp{publisher}, \chp{year}.&
\chp{editor}, \chp{volume} or \chp{number}, \chp{series}, \chp{type},
\chp{chapter}, \chp{pages}, \chp{address},
\chp{edition}, \chp{month}, \chp{note}. \tabularnewline

\ent{inproceedings} & \multicolumn{2}{c|}{Same as \ent{conference}.}
\tabularnewline

\ent{manual} :  A little manual, such as this one for instance. &
\chp{title}.&
\chp{author}, \chp{organization}, \chp{year}, \chp{address},
\chp{edition}, \chp{month}, \chp{note}.\tabularnewline

\ent{mastersthesis} :  Masters thesis, or something equivalent. &
\chp{author}, \chp{title}, \chp{school}, \chp{year}.&
\chp{type}, \chp{address}, \chp{month}, \chp{note}.\tabularnewline

\ent{misc} :  When nothing else fits...&
at least one of the optional fields. &
\chp{author}, \chp{title}, \chp{howpublished}, \chp{year}, \chp{month}, \chp{note}.
\tabularnewline

\ent{phdthesis} :  PhD dissertation, or similar. &
\chp{author}, \chp{title}, \chp{school}, \chp{year}.&
\chp{type}, \chp{address}, \chp{month}, \chp{note}.\tabularnewline

\ent{proceedings} :  Conference proceedings. &
\chp{title}, \chp{year}.&
\chp{editor}, \chp{volume} or \chp{number}, \chp{series},
\chp{address}, \chp{month}, \chp{organization}, \chp{publisher}, \chp{note}.
\tabularnewline

\ent{techreport} :  Technical report, published by a laboratory, a
research center, ... &
\chp{author}, \chp{title}, \chp{institution}, \chp{year}.&
\chp{type}, \chp{address}, \chp{number}, \chp{month}, \chp{note}.
\tabularnewline

\ent{unpublished} :  A document that has not been published. Very
close to \ent{misc}, but \texttt{author} and \texttt{title} are needed
here. &
\chp{author}, \chp{title}, \chp{note}.&
\chp{month}, \chp{year}.\tabularnewline
%\hline
\end{longtable}
%\end{center}
}


Concerning the order and typesetting of all this stuff, it's similar
in all the classical style files. Of course it depends on the entry
type, but it generally begins with the author names and the
title. Then the references of the journal or of the proceedings... 
The best thing to do if you need more details is to give it a try, or
have a look directly in the style files (but read Part~\ref{bst} before if
you don't know how \bt style files are built).
\medskip


Up to now, there are no differences between the four standard 
style files. 
The only possible difference now can only be related to labelling and
typesetting method to be used.


\begin{itemize}
\item the \bst{plain} style sorts the entries according to the name of
  their authors (using the alphabetical order\footnote{The standard 
alphabetical order with $26$~letters. Unfortunately, some language 
have a different alphabet, for instance Swedish, in which 
``\texttt{\aa}'' and~``\texttt{\"o}'' are considered as letters and placed 
after~``\texttt{z}''.}, of course), and, for
  papers by the same author(s), the year they have been published 
(the
  older first). The last criterion in case of equality is the title,
  being a little bit modified. If two references can't be
  distinguished with the above, the first one being cited in the
  document appears first. Labels are numbers,
  starting with $1$. 

\item the \bst{alpha} style file is named \emph{alpha} because it uses
  alphanumerical labels: Those labels are computed by \bt using the
  first three letters of the author name 
  (or initials of the author names
  if multiple authors), followed by the last two digits of the
  publication year. Sorting the entries is done according to the label
  first, and then to the same criteria as for \bst{plain}, 
  in case several
  publication have the same label\footnote{You certainly don't want
  that several publications have the same labels. Thus computing the
  labels is done in two phases: First computing the label with the
  standard method, and then adding a supplementary letter (``a'',
  ``b'',~...) for multiple labels. And sorting is done just between
  those two phases...};
\item  you probably understood what \bst{unsrt} does: 
It does not sort
  its references, which appears in the order they are cited in the
  document. Everything else is done as in \bst{plain};
\item \bst{abbrv} abbreviates first names
 of the authors and the names of predefined journal and month names.
I forgot to mention that bibliography styles historically
 predefine some shorthands for computer science journal names (Oren
 \textsc{Patashnik} is a computer scientist...). Those shorthands are
 abbreviated journal names in this style file. These are the only
 difference between \bst{abbrv} and \bst{plain}.
\end{itemize}


That's all for classical styles. Those styles suffer from several
problems, for instance not having a \texttt{url} field, or not being
multilingual, or sorting in a weird way... Moreover, publishers 
often impose  precise
typographic rules for bibliographies. This entails that many other
styles have been proposed. Let's have a look at some of them.




\mysubsection{Some other bibliography styles}

%There are numerous other bibliography style files. I really can't
%describe all of them, just mentionning some of them together with
%their main characteristics.

\mysubsubsection{The \protect\nibst{apalike} style}

\bst{apalike} was (also) written by Oren \textsc{Patashnik}. It uses a
special construction for labels, generally called \emph{author-year}.
I think the best way to understand is with some examples:

\begin{myex}
\makeatletter
\def\@cite#1#2{(#1\if@tempswa , #2\fi)}
\def\@biblabel#1{}
\makeatother

On page~$384$ of \cite{latex:lcici}, you'll find a complete example of
what \bst{apalike} does.

\begin{thebibliography}{}
\bibitem[Goossens et~al., 1993]{latex:lcici}
Goossens, M., Mittelbach, F., and Samarin, A. (1993).
\newblock {\em the \LaTeX{} Companion}.
\newblock Addison-Wesley.

\bibitem[Lamport, 1997]{latex:dpsici}
Lamport, L. (1997).
\newblock {\em \LaTeX{}: A Document Preparation System}.
\newblock Addison-Wesley.
\end{thebibliography}
\end{myex}

Don't forget to include the \sty{apalike} package when using
the \bst{apalike} style: Indeed, if you remember how \cmdat{biblabel}
and \cmd{cite} are defined, you should have seen why... 
Moreover, labels created
by \bst{apalike} might be long, and you probably will accept that
\LaTeX hyphenates them if necessary, which the default
\cmd{cite} won't do (\cf section~\ref{cite}).

%Last, I always like to quote the following comments
%written in the \bst{apalike} file:
%\begin{verbatim}
%% Many journals require a style like `apalike', but I recommend that you
%% not use it if you have a choice---use something like `plain' instead.
%\end{verbatim}

Also: There are some other \emph{author-year} style files, named 
\bst{authordate1}, \bst{authordate2}, \bst{authordate3},
\bst{authordate4}, and that slightly differ from \bst{apalike}.
They must be used together with the 
\sty{authordate1-4} package.

Very last important thing: \sty{apalike} redefined \cmd{bibitem} 
so that the optional argument becomes mandatory (but must still be
within square brackets). But you probably don't care since, of course,
the bibliography style file tells \bt to always output it.


\mysubsubsection{The \protect\nisty{natbib} package}

The \sty{natbib} package, written by Patrick~W. \textsc{Daly},
goes a bit further: It mainly redefines \cmd{cite} so that you can
get \emph{author-year} or numerical labels, in a very elegant way.

Classical bibliography styles have been ported to \sty{natbib},
except \bst{alpha} since it already was an \emph{author-year}
style. The names of the ports are
\bst{plainnat}, \bst{abbrvnat} et \bst{unsrtnat}. 
Moreover, those styles have a \texttt{url} field for adding reference
to articles on the web. Also note that \sty{natbib} can be used with 
\bst{apalike} or \bst{authordate1} to \bst{authordate4}. 

Last interesting remark: There is a very clean 
documentation~\cite{natbib} for
\sty{natbib}, it's really worth reading.

\mysubsubsection{The \protect\nisty{jurabib} package}

The package \sty{jurabib}, by Jens Berger, is another 
package for adapting
the output to the typographic rules used in legal studies. 
It is associated to a bibliography style \bst{jurabib}, and
rests on a very special format for the optional argument 
of~\cmd{bibitem}. It also redefines \cmd{cite}, and defines 
many flavors of that command.
See~\cite{jurabib} for detailed comments on \sty{jurabib}.

\mysubsubsection{\textsf{custom-bib}}

Since there are many possible criteria for defining a bibliographic
style, 
Patrick~W. \textsc{Daly} decided to write a little piece of software
for automatically generating customized bibliography styles. It asks
you about $20$~questions and produces a pretty ready-to-use
bibliography style file.

As usual with Patrick~\textsc{Daly}, 
the documentation~\cite{merlin} is excellent, and I
won't go any further in the details. I just mention how to create your
\ext{bst}-file:
Simply type 
\verb+latex makebst.tex+, and answer the questions. All along the
execution, the style file is being created. It's really easy and
intuitive. 



\mysection{Questions and answers}

This section ends the \LaTeX part of this manual with some
frequently asked questions. We'll then tackle the \bt part, which was
intended to be the central topic...



\mysubsection{How to get several bibliographies?}

I did not insist on that, but it is of course recommended that you
only have one occurrence of each 
\cmd{bibliography} and \cmd{bibliographystyle} commands.
\LaTeX won't mind if it is not the case, but \bt won't appreciate,
since it can't choose which style or bibliographic file to use.


Thus the only possible thing is to write several \ext{aux} files, each
of them containing a complete set of data for one bibliography.
This is precisely what 
\sty{multibib}, \sty{chapterbib} and \sty{bibunit} do. 
\begin{itemize}
\item \sty{multibib}, written by
Thorsten \textsc{Hansen}, 
allows for precising in which bibliography a document lies. 
This is achieved by using different \cmd{cite} commands, one for each
bibliography. 
For this manual, I could have used \sty{multibib} to define special
\nicmd{citelatex} and  \nicmd{citebibtex} commands defining two
separate bibliographies\footnote{For those who know the \sty{multind}
  package for getting multiple indexes, the idea is similar.}. 
Of course, this requires that you run \bt against each of the
\ext{aux} files created. For more details, refer to the
documentation~\cite{multibib}, which (also) is really worth
reading. The doc also mentions the main issue with such a method: The
same label could be used in several bibliographies for different
references. And you can't easily avoid this problem...

\item The \sty{chapterbib} package, mainly written by 
Donald \textsc{Arseneau},  provides a way to get 
one bibliography for each
chapter or part of a (long) document (short documents won't need
several bibliographies). Indeed, a long document will be
made of several files \cmd{include}{}d by a main file. 
\sty{chapterbib} creates one \ext{aux} file for each of those included
files, each of which being intended to contain the
necessary \cmd{bibstyle}, \cmd{bibdata} and
\cmd{citation} commands. 
Documentation for this package may be found at the end of the package
file itself.

\item The \sty{bibunit} package, also written by 
Thorsten \textsc{Hansen}, is pretty similar to \sty{chapterbib}:
it allows to create one bibliography for each ``unit'', a unit
being any part of the document beginning with 
\verb+\begin{bibunit}+ and ending with
\verb+\end{bibunit}+. 


Inside such a unit, all occurrences of \cmd{cite} refer to the
bibliography of the current unit. \cite{bibunit} gives many 
details of how it works.
\end{itemize}


There are some other packages for creating several bibliographies: 
\sty{camel}, \sty{bibtopic}... I can't detail everything since it is
not the aim of this manual.


\mysubsection{How to have references closer to where they are cited?}

There are two solutions to this problem, depending on what you
precisely want:  The first solution consists in putting references in
footnotes. This might be practical for the reader, since he has the
complete references without always going back and forth to the end of
the book. There is a package just designed to this purpose:
\sty{footbib}. It's quite well documented~\cite{footbib}.


The second solution is to write the complete references in the
text. Instead of citing~\cite{latex:lc}, you cite
Michel Goossens, Franck Mittelbach et Alexander
     Samarin, \emph{The \LaTeX Companion}, Addison Wesley, 1993. 
This may enhance your document, but can sometimes become
annoying for the reader. However, just have a look a the package \sty{bibentry}, and
its documentation~\cite{bibentry}, if you want some more details.


Note that both of these packages might conflict with some other ones,
such as \sty{hyperref}. This is due to the fact that each of them
wants to impose its own definition of the \env{thebibliography}
environment or of the \cmd{bibitem} command. The last one being included
will win, but the other ones will eventually complain. There is no 
simple solution to avoid this, the only way, if any, is to merge all
the definitions by hand.


\mysubsection{How to add entries in the reference list without
  citing them in the document?}

This is achieved by the \cmd{nocite} command. It works exactly like
\cmd{cite}, but writes nothing in the document. It just includes the
\cmd{citation} command in the \ext{aux} file.


A variant of this command is \verb+\nocite{*}+: it 
amounts to \cmd{nocite}-ing the whole bibliography at one time. 
Those references are included in the same order as they appear in the
\ext{bib} file, except for those having been cited earlier.
Note that \verb+\cite{*}+ is also correct, but I'm not sure it has 
any interest...


\bigskip


Well... That's all for this part. 
We now forget \LaTeX, and go closer to the core of the problem. The
next section explains how to create a clean \ext{bib} file.