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
|
%$PDFLaTeX (encoding:utf-8)
\documentclass{article}
\author{Javier Bezos}
\title{\textsf{babeltools}\\%
\Large Fixing (some) \textsf{babel} annoyances}
\begin{document}
\maketitle
(Beta.)
The \textsf{babel} package introduces some changes in the \LaTeX{}
kernel which are not strictly necessary (perhaps just convenient), but
have some unwanted side-effects. Oddly enough, most of these changes
cannot be disabled, with a few exceptions (eg, \texttt{activeacute}
and \texttt{activegrave}, but note there are not \texttt{activecaret}
or \texttt{activetilde}).
With \textsf{babeltools} you can modify the \textsf{babel} behaviour
by means of a set of package options, with a few macros serving as
tools for specific purposes. This package must be loaded
\textbf{before} \textsf{babel}.
\section{Package options}
\begin{description}
\item[shorthands=off] The shorthands mechanism is turned off.
As some languages use this mechanism for tools not availible
otherwise, a macro \verb|\babelshorthand| is defined, which allows
using them; see below.
\item[shortands=...] The shorthands mechanism is on, but the only
shorthands activated are those given, like, eg:
\begin{verbatim}
\usepackage[shorthands=:;!?]{babeltools}
\end{verbatim}
If \verb|'| is included, \texttt{activeacute} is passed to
\textsf{babel}; if \verb|`| is included, \texttt{activegrave} is
passed. Active characters (like \verb|~|) should be preceded by
\verb|\string| (otherwise they will be expanded by \LaTeX{} before
they are passed to the package and therefore they will not be
recognized).
\item[adaptive] By default, all \textsf{babel} shorthands are active
and live from start to end of documents. You can deactivate them by
hand with \verb|\shorthandoff|, but this is cumbersome and you cannot
use it ``just in case'' (if the character is not a shorthands an error
is raised, instead of ignoring silently the redundant setting). That
means you have to accept a character like : is active in an English
document even if you need it for just a few quotations in French. The
default engine may be replaced by a new one which adapts the
shorthands behaviour to the context in the following way:
\begin{enumerate}
\item In math mode, while still shorthands, they behave always like the
corresponding normal char. Things like \verb|$a \mathrel{x'} b$|
work as expected.
\item When the language is switched, shorthands chars are made normal or
active, as appropiate. Thus, \texttt{:} or \texttt{?} are active only in
\texttt{french}.
\end{enumerate}
% This option is useful when there are, say, short quotations in French
% inside a German text or when there are whole chapter in either French
% or German.
\item[nocrossrefs] newlabel, ref and pageref are not redefined. You
cannot use shorthands in labels.
\item[nocitations] nocite, bibcite and bibitem are not redefined. You
cannot use shorthands in labels.
\item[langcaptions] Captions are redefined if possible so that an
intermediate macro \verb|\lang...name| is used, eg,
\verb|\germanchaptername|. Somewhat experimental.
\item[noconfig] Config files are not loaded, so you can make sure your
document is not spoilt by an unexpected \texttt{.cfg} file.
\end{description}
Babel tweaks several packages for shorthands to be accepted. At the
time of this writing they are \textsf{cite}, \textsf{natbib},
\textsf{varioref} and \textsf{hhline} (the latter for the colon). If
you don't use shorthands, these redefinitions are unnecesary and
inconvenient. If you give a list of shorthands and it doesn't include
\verb|:|, then \verb|hhline| is left untouched. The other packages
are handled by \texttt{nocrossrefs} and \texttt{nocitations}, as
appropiate.
\section{Macros}
\begin{description}
\item[\ttfamily\string\babelshorthand] Use a shorthand, even with
\texttt{shorthands=off} or not listed in it, eg,
\verb|\babelshorthand{"u}| or \verb|\babelshorthand{:}|. You can
conveniently define your own macros.
\end{description}
\section{Known limitations}
If a class loads \textsf{babel} with a language, you cannot use
\textsf{babeltools}. However, if a class loads babel without loading
any language, you can use it. Languages given in
\verb|\documentclass| work as expected (provided the class doesn't
load it, of course).
\end{document}
|