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
|
%% ttb_en.sec5.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{Other use of \bt}\label{autres}
\parttoc
\mtcskip
Here are some general extensions, showing how to use \bt for other purposes.
I'm developing some of those extensions, and you can get the latest news on my web
page:
\begin{center}
\url{http://www.lsv.ens-cachan.fr/~markey/bibla.php}.
\end{center}
Don't hesitate to give me your comments and ideas.
\mysection{A publication list}
This is not really a wide extension of the use of \bt, since it still deals
with bibliography. In this example, we use classical \ext{bib} files in order
to extract only publications by one single person, indicating the names of the
possible other authors. This gives, for instance:
\begin{myex}
\def\refname{Books by Michel \textsc{Goossens}}
\begin{thebibliography}{9}
\bibitem{companion}
{\em the \LaTeX{} Companion}.
Addison-Wesley, 1993.
Joint work with Frank Mittelbach and Alexander Samarin.
\bibitem{graphics}
{\em the \LaTeX{} Graphics Companion}.
Addison-Wesley, 1999.
Joint work with Sebastian Rahtz and Frank Mittelbach.
\bibitem{webc}
{\em the \LaTeX{} Web Companion}.
Addison-Wesley, 1999.
Joint work with Sebastian Rahtz.
\end{thebibliography}
\end{myex}
There are three important points here:
\begin{itemize}
\item In this case, the entries to be cited are extracted by the style file;
\item Typesetting of names is a little bit different.
\end{itemize}
The third difference consists in the way the style is configured: Instead of
asking the user to modify the \ext{bst} file, which is rarely desirable, we
add a new entry-type, named \nient{config}. A \nient{config} entry will define
the name of the author whose publications are to be extracted, as well as some
other configuration variables.
\mysection{An addressbook}
A list of addresses is a database, that has to be sorted, grouped and typeset.
\bt should be able to do that...
To that aim, we have to completely redefine the fields, entry-types, and
functions. Fields include names, addresses, phone numbers, e-mail
addresses,~... Here is an example of the output:
\bigskip
\makeatletter
\font\lettre=cmssdc10 at 20pt
\def\at{@}
\ifx\sautepage\@undefined%
\def\sautepage{\null\cleardoublepage}\fi
\ifx\ecritlettre\@undefined%
\def\ecritlettre#1#2#3#4#5{
\vbox to 0pt{
\vspace{#3mm}\hspace{#1mm}
\smash{\colorbox[rgb]{.8,.8,.8}{\lettre \ \
\vrule height #2mm depth #2mm width 0pt%
\vrule height 8mm depth 0mm width 0pt%
\hbox to #4mm{#5\hfil\null}%
}}
\vspace{-#3mm}\hspace{-#1mm}}}\fi
\small
\makeatother
\ecritlettre{157}{5}{10}{20}{mn}
\noindent
\begin{center}
\begin{tabular}{|p{.30\textwidth}|p{.4\textwidth}p{.18\textwidth}|}
\hline
{\vrule height 5mm width 0mm
{\normalsize \textsc{Markey} Nicolas
}} \vrule height 0mm depth 5mm width 0mm &
\vrule height 5mm width 0mm
LSV -- ENS Cachan\endgraf
61, avenue du Pr\'esident Wilson\endgraf
94235 \textsc{Cachan} C\'edex\vrule depth 3mm width 0mm
& \vrule height 5mm width 0mm
\Telefon \hfill01.47.40.75.32\endgraf
\Faxmachine \hfill01.47.40.24.64\endgraf
\\ &
\multicolumn{2}{l|}{\texttt{markey\at lsv.ens-cachan.fr}} \vrule depth 2mm
width 0mm
\\ \hline
\end{tabular}
\end{center}
As in the previous example, I defined a \nient{config} entry-type in order to
define how letters should be grouped together,~...
\mysection{Exporting, extracting and cleaning bibliographic entries}
\label{bibexport}
It sometimes occurs that you have to extract a part of your bibliographic
database, for instance for sending it together with a \LaTeX~document. Several
tools already exist for doing this, but they generally can't handle crossrefs,
macros, string abbreviations,~... If fact, \bt can do this on its own: You
simply have to ask the bibliography style to format its output as a
\ext{bib} database (The result will be named \ext{bbl}, since there is no way
to tell \bt to write somewhere else). This technique has many advantages: It
ensures that the fields are treated exactly as \bt would treat them with
another style file; abbreviations are automatically expanded; It is easy to
extract all the references by one author (remember that names could be encoded
in many different manners inside a \ext{bib} database),~...
The package \verb+bibexport+ implements these techniques:
\url{http://www.ctan.org/tex-archive/biblio/bibtex/contrib/bibexport/}
\mysection{Using several languages in one bibliography}
Classical bibliography style only handle one language, generally English.
Handling several languages is quite tricky: First, when filling the \ext{bib}
file, you must ensure not to write language-dependant data. Namely, for
instance, months should be entered numerically. Moreover, \bt adds some words
while processing the entries, such as the ``and'' before the last author name.
There are several solution for handling several languages:
\begin{itemize}
\item Designing one style file per language. This is somewhat tiring to do,
but not really complicated, and many such translations already exist.
French styles are available on
\url{http://www.ctan.org/tex-archive/biblio/bibtex/contrib/bib-fr/}. In
those styles, I put every translated word at the beginning of the file, so
that it is easy to adapt the translation.
\item Another solution is to replace language-dependant words with a \LaTeX
command. This is done in \textsf{babelbib}
(\url{http://www.ctan.org/tex-archive/biblio/bibtex/contrib/babelbib/}),
developed by Harald Harders.
Those style files require that you use the package \sty{babel}, and allows
you to define one language for each entry (and thus to use the right
hyphenation patterns).
\end{itemize}
\mysection{A glossary}
A glossary is a dictionary defining technical terms that appear in a
document. Glossaries are generally made using the index mechanisms of \LaTeX.
But \bt can also do that (and even better than with \nicmd{index}, since it
could extract definitions from a general dictionary). Moreover, it is
possible to add reference to pages where the term is used by using the
\sty{backref} package. See for instance the package \sty{gloss}, developed by
Jose Luis Diaz de Arriba and Javier Bezos.
|