Babel, a multilingual package for use with LATEX's ... - linsrv.net
Babel, a multilingual package for use with LATEX's ... - linsrv.net
Babel, a multilingual package for use with LATEX's ... - linsrv.net
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
This macro expects the name of a group of shorthands in its first argument and a<br />
shorthand character in its second argument. It will expand to either \bbl@firstcs<br />
or \bbl@scndcs. Hence two more arguments need to follow it.<br />
560 \def\bbl@sh@select#1#2{%<br />
561 \expandafter\ifx\csname#1@sh@#2@sel\endcsname\relax<br />
562 \bbl@afterelse\bbl@scndcs<br />
563 \else<br />
564 \bbl@afterfi\csname#1@sh@#2@sel\endcsname<br />
565 \fi}<br />
\active@prefix<br />
The command \active@prefix which is <strong>use</strong>d in the expansion of active characters<br />
has a function similar to \OT1-cmd in that it \protects the active character<br />
whenever \protect is not \@typeset@protect.<br />
566 \def\active@prefix#1{%<br />
567 \ifx\protect\@typeset@protect<br />
568 \else<br />
When \protect is set to \@unexpandable@protect we make sure that the active<br />
character is als not expanded by inserting \noexpand in front of it. The \@gobble<br />
is needed to remove a token such as \activechar: (when the double colon was<br />
the active character to be dealt <strong>with</strong>).<br />
569 \ifx\protect\@unexpandable@protect<br />
570 \noexpand#1%<br />
571 \else<br />
572 \protect#1%<br />
573 \fi<br />
574 \expandafter\@gobble<br />
575 \fi}<br />
\if@safe@actives<br />
\bbl@restore@actives<br />
\bbl@activate<br />
\bbl@deactivate<br />
\bbl@firstcs<br />
\bbl@scndcs<br />
In some circumstances it is necessary to be able to change the expansion of an<br />
active character on the fly. For this purpose the switch @safe@actives is available.<br />
The setting of this switch should be checked in the first level expansion of<br />
\active@char〈char〉.<br />
576 \newif\if@safe@actives<br />
577 \@safe@activesfalse<br />
When the output routine kicks in while the active characters were made “safe” this<br />
must be undone in the headers to prevent unexpected typeset results. For this<br />
situation we define a command to make them “unsafe” again.<br />
578 \def\bbl@restore@actives{\if@safe@actives\@safe@activesfalse\fi}<br />
Both macros take one argument, like \initiate@active@char. The macro is <strong>use</strong>d<br />
to change the definition of an active character to expand to \active@char〈char〉 in<br />
the case of \bbl@activate, or \normal@char〈char〉 in the case of<br />
\bbl@deactivate.<br />
579 \def\bbl@activate#1{%<br />
580 \bbl@<strong>with</strong>active{\expandafter\let\expandafter}#1%<br />
581 \csname bbl@active@\string#1\endcsname}<br />
582 \def\bbl@deactivate#1{%<br />
583 \bbl@<strong>with</strong>active{\expandafter\let\expandafter}#1%<br />
584 \csname bbl@normal@\string#1\endcsname}<br />
These macros have two arguments. They <strong>use</strong> one of their arguments to build a<br />
control sequence from.<br />
585 \def\bbl@firstcs#1#2{\csname#1\endcsname}<br />
586 \def\bbl@scndcs#1#2{\csname#2\endcsname}<br />
49