diff options
author | Karl Berry <karl@freefriends.org> | 2013-05-06 22:23:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-05-06 22:23:55 +0000 |
commit | f0f99d0e72007e7c0aca0c46101465e12e6a201a (patch) | |
tree | 44f356bf3ae6ba612bd7139f6d1eb60c1abcc806 /Master/texmf-dist/source | |
parent | 35048b6768253a239c8e00a385f4789ea4538a09 (diff) |
babel-$ll (for 3.9a)
git-svn-id: svn://tug.org/texlive/trunk@30298 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/generic/babel-ukraineb/ukraineb.dtx | 1158 | ||||
-rw-r--r-- | Master/texmf-dist/source/generic/babel-ukraineb/ukraineb.ins | 147 |
2 files changed, 1305 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/babel-ukraineb/ukraineb.dtx b/Master/texmf-dist/source/generic/babel-ukraineb/ukraineb.dtx new file mode 100644 index 00000000000..0bd4b5537af --- /dev/null +++ b/Master/texmf-dist/source/generic/babel-ukraineb/ukraineb.dtx @@ -0,0 +1,1158 @@ +% \iffalse meta-comment +% +% Copyright 1989-2008 Johannes L. Braams and any individual authors +% listed elsewhere in this file. All rights reserved. +% +% This file is part of the Babel system. +% -------------------------------------- +% +% It 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 Johannes Braams. +% +% The list of all files belonging to the Babel system is +% given in the file `manifest.bbl. See also `legal.bbl' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% \fi +% \CheckSum{1472} +% +% \iffalse +% Tell the \LaTeX\ system who we are and write an entry on the +% transcript. +%<*dtx> +\ProvidesFile{ukraineb.dtx} +%</dtx> +%<code>\ProvidesLanguage{ukraineb} + [2008/03/21 v1.1l Ukrainian support from the babel system] +% +%% File `ukraineb.dtx' +%% Babel package for LaTeX version 2e +%% Copyright (C) 1989 - 2008 +%% by Johannes Braams, TeXniek +% +%% ukraineb Language Definition File +%% Copyright (C) 1997 - 2008 +%% by Andrij Shvaika ashv at icmp.lviv.ua +% +%% derived from the Russianb Language Definition File +%% Copyright (C) 1995 - 2008 +%% by Olga Lapko cyrtug at mir.msk.su +%% Johannes Braams, TeXniek +% adapted to the new T2 and X2 Cyrillic encodings +% by Vladimir Volovich TeX at vvv.vsu.ru +% Werner Lemberg wl at gnu.org +% +%% Please report errors to: J.L. Braams +%% babel at braams.xs4all.nl +% +%<*filedriver> +\documentclass{ltxdoc} +\newcommand\TeXhax{\TeX hax} +\newcommand\babel{\textsf{babel}} +\newcommand\langvar{$\langle \it lang \rangle$} +\newcommand\note[1]{} +\newcommand\Lopt[1]{\textsf{#1}} +\newcommand\file[1]{\texttt{#1}} +\newcommand\pkg[1]{\texttt{#1}} +\begin{document} + \DocInput{ukraineb.dtx} +\end{document} +%</filedriver> +%\fi +% \GetFileInfo{ukraineb.dtx} +% +% \changes{ukraineb-1.1e}{1999/08/19}{replaced all \cs{penalty}\cs{@M} +% with \cs{nobreak}} +% +% \section{The Ukrainian language} +% +% The file \file{\filename}\footnote{The file described in this +% section has version number \fileversion. +% This file was derived from the \file{russianb.dtx} version 1.1g.} +% defines all the language-specific macros for the Ukrainian +% language. It needs the file \file{cyrcod} for success documentation +% with Ukrainian encodings (see below). +% +% For this language the character |"| is made active. In +% table~\ref{tab:ukrainian-quote} an overview is given of its +% purpose. +% +% \begin{table}[htb] +% \begin{center} +% \begin{tabular}{lp{8cm}} +% \verb="|= & disable ligature at this position. \\ +% |"-| & an explicit hyphen sign, allowing hyphenation +% in the rest of the word. \\ +% |"---| & Cyrillic emdash in plain text. \\ +% |"--~| & Cyrillic emdash in compound names (surnames). \\ +% |"--*| & Cyrillic emdash for denoting direct speech. \\ +% |""| & like |"-|, but producing no hyphen sign +% (for compund words with hyphen, e.g.\ |x-""y| +% or some other signs as ``disable/enable''). \\ +% |"~| & for a compound word mark without a breakpoint. \\ +% |"=| & for a compound word mark with a breakpoint, allowing +% hyphenation in the composing words. \\ +% |",| & thinspace for initials with a breakpoint +% in following surname. \\ +% |"`| & for German left double quotes +% (looks like ,\kern-0.08em,). \\ +% |"'| & for German right double quotes (looks like ``). \\%^^A'' +% |"<| & for French left double quotes (looks like $<\!\!<$). \\ +% |">| & for French right double quotes (looks like $>\!\!>$). \\ +% \end{tabular} +% \caption{The extra definitions made +% by \file{ukraineb}}\label{tab:ukrainian-quote} +% \end{center} +% \end{table} +% +% The quotes in table~\ref{tab:ukrainian-quote} (see, also +% table~\ref{tab:russian-quote}) can also be typeset by using the commands +% in table~\ref{tab:umore-quote} (see, also table~\ref{tab:rmore-quote}). +% +% \begin{table}[htb] +% \begin{center} +% \begin{tabular}{lp{8cm}} +% |\cdash---| & Cyrillic emdash in plain text. \\ +% |\cdash--~| & Cyrillic emdash in compound names (surnames). \\ +% |\cdash--*| & Cyrillic emdash for denoting direct speech. \\ +% |\glqq| & for German left double quotes +% (looks like ,\kern-0.08em,). \\ +% |\grqq| & for German right double quotes (looks like ``). \\%^^A'' +% |\flqq| & for French left double quotes (looks like $<\!\!<$). \\ +% |\frqq| & for French right double quotes (looks like $>\!\!>$). \\ +% |\dq| & the original quotes character (|"|). \\ +% \end{tabular} +% \caption{More commands which produce quotes, defined +% by \babel}\label{tab:umore-quote} +% \end{center} +% \end{table} +% +% The French quotes are also available as ligatures `|<<|' and `|>>|' in +% 8-bit Cyrillic font encodings (\texttt{LCY}, \texttt{X2}, \texttt{T2*}) +% and as `|<|' and `|>|' characters in 7-bit Cyrillic font encodings +% (\texttt{OT2} and \texttt{LWN}). +% +% The quotation marks traditionally used in Ukrainian and Russian +% languages were borrowed from other languages (e.g. French and German) +% so they keep their original names. +% +% \StopEventually{} +% +% The macro |\LdfInit| takes care of preventing that this file is loaded +% more than once, checking the category code of the \texttt{@} sign, etc. +% +% \begin{macrocode} +%<*code> +\LdfInit{ukrainian}{captionsukrainian} +% \end{macrocode} +% +% When this file is read as an option, i.e., by the |\usepackage| +% command, \texttt{ukraineb} will be an `unknown' language, in which case +% we have to make it known. So we check for the existence of |\l@ukrainian| +% to see whether we have to do something here. +% +% \begin{macrocode} +\ifx\l@ukrainian\@undefined + \@nopatterns{Ukrainian} + \adddialect\l@ukrainian0 +\fi +% \end{macrocode} +% +% \begin{macro}{\latinencoding} +% +% We need to know the encoding for text that is supposed to be which is +% active at the end of the \babel\ package. If the \pkg{fontenc} package +% is loaded later, then\ldots too bad! +% +% \begin{macrocode} +\let\latinencoding\cf@encoding +% \end{macrocode} +% +% \end{macro} +% +% The user may choose between different available Cyrillic +% encodings---e.g., \texttt{X2}, \texttt{LCY}, or \texttt{LWN}.\@ +% Hopefully, \texttt{X2} will eventually replace the two latter encodings +% (\texttt{LCY} and \texttt{LWN}).\@ If the user wants to use another +% font encoding than the default (\texttt{T2A}), he has to load the +% corresponding file \emph{before} \file{ukraineb.sty}. This may be done +% in the following way: +% +% \begin{verbatim} +% % override the default X2 encoding used in Babel +% \usepackage[LCY,OT1]{fontenc} +% \usepackage[english,ukrainian]{babel} +% \end{verbatim} +% \unskip +% +% Note: for the Ukrainian language, the \texttt{T2A} encoding is better than +% \texttt{X2}, because \texttt{X2} does not contain Latin letters, and +% users should be very careful to switch the language every time they +% want to typeset a Latin word inside a Ukrainian phrase or vice versa. +% +% We parse the |\cdp@list| containing the encodings known to \LaTeX\ in +% the order they were loaded. We set the |\cyrillicencoding| to the +% \emph{last} loaded encoding in the list of supported Cyrillic +% encodings: \texttt{OT2}, \texttt{LWN}, \texttt{LCY}, \texttt{X2}, +% \texttt{T2C}, \texttt{T2B}, \texttt{T2A}, if any. +% +% \begin{macrocode} +\def\reserved@a#1#2{% + \edef\reserved@b{#1}% + \edef\reserved@c{#2}% + \ifx\reserved@b\reserved@c + \let\cyrillicencoding\reserved@c + \fi} +\def\cdp@elt#1#2#3#4{% + \reserved@a{#1}{OT2}% + \reserved@a{#1}{LWN}% + \reserved@a{#1}{LCY}% + \reserved@a{#1}{X2}% + \reserved@a{#1}{T2C}% + \reserved@a{#1}{T2B}% + \reserved@a{#1}{T2A}} +\cdp@list +% \end{macrocode} +% +% Now, if |\cyrillicencoding| is undefined, then the user did not load +% any of supported encodings. So, we have to set |\cyrillicencoding| to +% some default value. We test the presence of the encoding definition +% files in the order from less preferable to more preferable encodings. +% We use the lowercase names (i.e., \file{lcyenc.def} instead of +% \file{LCYenc.def}). +% +% \begin{macrocode} +\ifx\cyrillicencoding\undefined + \IfFileExists{ot2enc.def}{\def\cyrillicencoding{OT2}}\relax + \IfFileExists{lwnenc.def}{\def\cyrillicencoding{LWN}}\relax + \IfFileExists{lcyenc.def}{\def\cyrillicencoding{LCY}}\relax + \IfFileExists{x2enc.def}{\def\cyrillicencoding{X2}}\relax + \IfFileExists{t2cenc.def}{\def\cyrillicencoding{T2C}}\relax + \IfFileExists{t2benc.def}{\def\cyrillicencoding{T2B}}\relax + \IfFileExists{t2aenc.def}{\def\cyrillicencoding{T2A}}\relax +% \end{macrocode} +% +% If |\cyrillicencoding| is still undefined, then the user seems not to +% have a properly installed distribution. A fatal error. +% +% \begin{macrocode} + \ifx\cyrillicencoding\undefined + \PackageError{babel}% + {No Cyrillic encoding definition files were found}% + {Your installation is incomplete.\MessageBreak + You need at least one of the following files:\MessageBreak + \space\space + x2enc.def, t2aenc.def, t2benc.def, t2cenc.def,\MessageBreak + \space\space + lcyenc.def, lwnenc.def, ot2enc.def.}% + \else +% \end{macrocode} +% +% We avoid |\usepackage[\cyrillicencoding]{fontenc}| because we don't +% want to force the switch of |\encodingdefault|. +% +% \begin{macrocode} + \lowercase + \expandafter{\expandafter\input\cyrillicencoding enc.def\relax}% + \fi +\fi +% \end{macrocode} +% +% \begin{verbatim} +% \PackageInfo{babel} +% {Using `\cyrillicencoding' as a default Cyrillic encoding}% +% \end{verbatim} +% \unskip +% +% \begin{macrocode} +\DeclareRobustCommand{\Ukrainian}{% + \fontencoding\cyrillicencoding\selectfont + \let\encodingdefault\cyrillicencoding + \expandafter\set@hyphenmins\ukrainianhyphenmins + \language\l@ukrainian}% +\DeclareRobustCommand{\English}{% + \fontencoding\latinencoding\selectfont + \let\encodingdefault\latinencoding + \expandafter\set@hyphenmins\englishhyphenmins + \language\l@english}% +\let\Ukr\Ukrainian +\let\Eng\English +\let\cyrillictext\Ukrainian +\let\cyr\Ukrainian +% \end{macrocode} +% +% Since the \texttt{X2} encoding does not contain Latin letters, we +% should make some redefinitions of \LaTeX\ macros which implicitly +% produce Latin letters. +% +% \begin{macrocode} +\expandafter\ifx\csname T@X2\endcsname\relax\else +% \end{macrocode} +% +% We put |\latinencoding| in braces to avoid problems with +% |\@alph| inside minipages (e.g., footnotes inside minipages) where +% |\@alph| is expanded and we get for example `|\fontencoding OT1|' +% (|\fontencoding| is robust). +% +% \begin{macrocode} + \def\@alph#1{{\fontencoding{\latinencoding}\selectfont + \ifcase#1\or + a\or b\or c\or d\or e\or f\or g\or h\or + i\or j\or k\or l\or m\or n\or o\or p\or + q\or r\or s\or t\or u\or v\or w\or x\or + y\or z\else\@ctrerr\fi}}% + \def\@Alph#1{{\fontencoding{\latinencoding}\selectfont + \ifcase#1\or + A\or B\or C\or D\or E\or F\or G\or H\or + I\or J\or K\or L\or M\or N\or O\or P\or + Q\or R\or S\or T\or U\or V\or W\or X\or + Y\or Z\else\@ctrerr\fi}}% +% \end{macrocode} +% +% Unfortunately, the commands |\AA| and |\aa| are not encoding dependent +% in \LaTeX\ (unlike e.g., |\oe| or |\DH|). They are defined as |\r{A}| and +% |\r{a}|. This leads to unpredictable results when the font encoding +% does not contain the Latin letters `A' and `a' (like \texttt{X2}). +% +% \begin{macrocode} + \DeclareTextSymbolDefault{\AA}{OT1} + \DeclareTextSymbolDefault{\aa}{OT1} + \DeclareTextCommand{\aa}{OT1}{\r a} + \DeclareTextCommand{\AA}{OT1}{\r A} +\fi +% \end{macrocode} +% +% The following block redefines the character class of uppercase Greek +% letters and some accents, if it is equal to 7 (variable family), to +% avoid incorrect results if the font encoding in some math family does +% not contain these characters in places of OT1 encoding. The code was +% taken from |amsmath.dtx|. See comments and further explanation there. +% +% \changes{ukraineb-1.1i}{2001/02/21}{As this code generates a +% textfont 7 error it is commented out for now.} +% \begin{macrocode} +% \begingroup\catcode`\"=12 +% % uppercase greek letters: +% \def\@tempa#1{\expandafter\@tempb\meaning#1\relax\relax\relax\relax +% "0000\@nil#1} +% \def\@tempb#1"#2#3#4#5#6\@nil#7{% +% \ifnum"#2=7 \count@"1#3#4#5\relax +% \ifnum\count@<"1000 \else \global\mathchardef#7="0#3#4#5\relax \fi +% \fi} +% \@tempa\Gamma\@tempa\Delta\@tempa\Theta\@tempa\Lambda\@tempa\Xi +% \@tempa\Pi\@tempa\Sigma\@tempa\Upsilon\@tempa\Phi\@tempa\Psi +% \@tempa\Omega +% % some accents: +% \def\@tempa#1#2\@nil{\def\@tempc{#1}}\def\@tempb{\mathaccent} +% \expandafter\@tempa\hat\relax\relax\@nil +% \ifx\@tempb\@tempc +% \def\@tempa#1\@nil{#1}% +% \def\@tempb#1{\afterassignment\@tempa\mathchardef\@tempc=}% +% \def\do#1"#2{} +% \def\@tempd#1{\expandafter\@tempb#1\@nil +% \ifnum\@tempc>"FFF +% \xdef#1{\mathaccent"\expandafter\do\meaning\@tempc\space}% +% \fi} +% \@tempd\hat\@tempd\check\@tempd\tilde\@tempd\acute\@tempd\grave +% \@tempd\dot\@tempd\ddot\@tempd\breve\@tempd\bar +% \fi +% \endgroup +% \end{macrocode} +% +% The user must use the \pkg{inputenc} package when any 8-bit Cyrillic +% font encoding is used, selecting one of the Cyrillic input encodings. +% We do not assume any default input encoding, so the user should +% explicitly call the \pkg{inputenc} package by |\usepackage{inputenc}|. +% We also removed |\AtBeginDocument|, so \pkg{inputenc} should be used +% before \babel. +% +% \changes{ukraineb-1.1f}{1999/08/27}{Made not using inputenc a +% warning instead of an error} +% \begin{macrocode} +\@ifpackageloaded{inputenc}{}{% + \def\reserved@a{LWN}% + \ifx\reserved@a\cyrillicencoding\else + \def\reserved@a{OT2}% + \ifx\reserved@a\cyrillicencoding\else + \PackageWarning{babel}% + {No input encoding specified for Ukrainian language} + \fi\fi} +% \end{macrocode} +% +% Now we define two commands that offer the possibility to switch between +% Cyrillic and Roman encodings. +% +% \begin{macro}{\cyrillictext} +% \begin{macro}{\latintext} +% +% The command |\cyrillictext| will switch from Latin font encoding to the +% Cyrillic font encoding, the command |\latintext| switches back. This +% assumes that the `normal' font encoding is a Latin one. These commands +% are \emph{declarations}, for shorter peaces of text the commands +% |\textlatin| and |\textcyrillic| can be used. +% +% \changes{ukraineb-1.1j}{2003/10/12}{\cs{latintext} is already +% defined by the core of \babel} +% \begin{macrocode} +%\DeclareRobustCommand{\latintext}{% +% \fontencoding{\latinencoding}\selectfont +% \def\encodingdefault{\latinencoding}} +\let\lat\latintext +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% +% \begin{macro}{\textcyrillic} +% \begin{macro}{\textlatin} +% +% These commands take an argument which is then typeset using the +% requested font encoding. +% \changes{ukraineb-1.1j}{2003/10/12}{\cs{latintext} is already +% defined by the core of \babel} +% \begin{macrocode} +\DeclareTextFontCommand{\textcyrillic}{\cyrillictext} +%\DeclareTextFontCommand{\textlatin}{\latintext} +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% +% We make the \TeX +% \begin{macrocode} +%\ifx\ltxTeX\undefined\let\ltxTeX\TeX\fi +%\ProvideTextCommandDefault{\TeX}{\textlatin{\ltxTeX}} +% \end{macrocode} +% and \LaTeX\ logos encoding independent. +% \begin{macrocode} +%\ifx\ltxLaTeX\undefined\let\ltxLaTeX\LaTeX\fi +%\ProvideTextCommandDefault{\LaTeX}{\textlatin{\ltxLaTeX}} +% \end{macrocode} +% +% The next step consists of defining commands to switch to (and +% from) the Ukrainian language. +% +% \begin{macro}{\captionsukrainian} +% +% The macro |\captionsukrainian| defines all strings used in the four +% standard document classes provided with \LaTeX. The two commands |\cyr| +% and |\lat| activate Cyrillic resp.\ Latin encoding. +% \changes{ukraineb-1.1d}{1999/04/03}{replace \cs{CYRUKRI} with +% \cs{CYRII} in \cs{authorname} } +% \changes{ukraineb-1.1g}{2000/09/20}{Added \cs{glossaryname}} +% \changes{ukraineb-1.1h}{2001/02/13}{Added translation for +% `Glossary'} +% \begin{macrocode} +\addto\captionsukrainian{% + \def\prefacename{{\cyr\CYRV\cyrs\cyrt\cyru\cyrp}}% +% \def\prefacename{{\cyr\CYRP\cyre\cyrr\cyre\cyrd\cyrm\cyro\cyrv\cyra}}% + \def\refname{% + {\cyr\CYRL\cyrii\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}% +% \def\refname{% +% {\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk +% \ \cyrp\cyro\cyrs\cyri\cyrl\cyra\cyrn\cyrsftsn}}% + \def\abstractname{% + {\cyr\CYRA\cyrn\cyro\cyrt\cyra\cyrc\cyrii\cyrya}}% +% \def\abstractname{{\cyr\CYRR\cyre\cyrf\cyre\cyrr\cyra\cyrt}}% + \def\bibname{% + {\cyr\CYRB\cyrii\cyrb\cyrl\cyrii\cyro\cyrgup\cyrr\cyra\cyrf\cyrii\cyrya}}% +% \def\bibname{{\cyr\CYRL\cyrii\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyra}}% + \def\chaptername{{\cyr\CYRR\cyro\cyrz\cyrd\cyrii\cyrl}}% +% \def\chaptername{{\cyr\CYRG\cyrl\cyra\cyrv\cyra}}% + \def\appendixname{{\cyr\CYRD\cyro\cyrd\cyra\cyrt\cyro\cyrk}}% + \def\contentsname{{\cyr\CYRZ\cyrm\cyrii\cyrs\cyrt}}% + \def\listfigurename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk + \ \cyrii\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrc\cyrii\cyrishrt}}% + \def\listtablename{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk + \ \cyrt\cyra\cyrb\cyrl\cyri\cyrc\cyrsftsn}}% + \def\indexname{{\cyr\CYRP\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}% + \def\authorname{{\cyr\CYRII\cyrm\cyre\cyrn\cyrn\cyri\cyrishrt + \ \cyrp\cyro\cyrk\cyra\cyrzh\cyrch\cyri\cyrk}}% + \def\figurename{{\cyr\CYRR\cyri\cyrs.}}% +% \def\figurename{\cyr\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk}}% + \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl.}}% +% \def\tablename{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrya}}% + \def\partname{{\cyr\CYRCH\cyra\cyrs\cyrt\cyri\cyrn\cyra}}% + \def\enclname{{\cyr\cyrv\cyrk\cyrl\cyra\cyrd\cyrk\cyra}}% + \def\ccname{{\cyr\cyrk\cyro\cyrp\cyrii\cyrya}}% + \def\headtoname{{\cyr\CYRD\cyro}}% + \def\pagename{{\cyr\cyrs.}}% +% \def\pagename{{\cyr\cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyrk\cyra}}% + \def\seename{{\cyr\cyrd\cyri\cyrv.}}% + \def\alsoname{{\cyr\cyrd\cyri\cyrv.\ \cyrt\cyra\cyrk\cyro\cyrzh}} + \def\proofname{{\cyr\CYRD\cyro\cyrv\cyre\cyrd\cyre\cyrn\cyrn\cyrya}}% + \def\glossaryname{{\cyr\CYRS\cyrl\cyro\cyrv\cyrn\cyri\cyrk\ % + \cyrt\cyre\cyrr\cyrm\cyrii\cyrn\cyrii\cyrv}}% + } +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\dateukrainian} +% +% The macro |\dateukrainian| redefines the command |\today| to produce +% Ukrainian dates. +% +% \begin{macrocode} +\def\dateukrainian{% + \def\today{\number\day~\ifcase\month\or + \cyrs\cyrii\cyrch\cyrn\cyrya\or + \cyrl\cyryu\cyrt\cyro\cyrg\cyro\or + \cyrb\cyre\cyrr\cyre\cyrz\cyrn\cyrya\or + \cyrk\cyrv\cyrii\cyrt\cyrn\cyrya\or + \cyrt\cyrr\cyra\cyrv\cyrn\cyrya\or + \cyrch\cyre\cyrr\cyrv\cyrn\cyrya\or + \cyrl\cyri\cyrp\cyrn\cyrya\or + \cyrs\cyre\cyrr\cyrp\cyrn\cyrya\or + \cyrv\cyre\cyrr\cyre\cyrs\cyrn\cyrya\or + \cyrzh\cyro\cyrv\cyrt\cyrn\cyrya\or + \cyrl\cyri\cyrs\cyrt\cyro\cyrp\cyra\cyrd\cyra\or + \cyrg\cyrr\cyru\cyrd\cyrn\cyrya\fi + \space\number\year~\cyrr.}} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\extrasukrainian} +% +% The macro |\extrasukrainian| will perform all the extra definitions +% needed for the Ukrainian language. The macro |\noextrasukrainian| +% is used to cancel the actions of |\extrasukrainian|. +% +% The first action we define is to switch on the selected Cyrillic +% encoding whenever we enter `ukrainian'. +% +% \begin{macrocode} +\addto\extrasukrainian{\cyrillictext} +% \end{macrocode} +% +% When the encoding definition file was processed by \LaTeX\ the current +% font encoding is stored in |\latinencoding|, assuming that \LaTeX\ uses +% \texttt{T1} or \texttt{OT1} as default. Therefore we switch back to +% |\latinencoding| whenever the Ukrainian language is no longer `active'. +% +% \begin{macrocode} +\addto\noextrasukrainian{\latintext} +% \end{macrocode} +% +% Next we must allow hyphenation in the Ukrainian words with apostrophe +% whenever we enter `ukrainian'. This solution was proposed by +% Vladimir Volovich <vvv@vvv.vsu.ru> +% +% \begin{macrocode} +\addto\extrasukrainian{\lccode`\'=`\'} +\addto\noextrasukrainian{\lccode`\'=0} +% \end{macrocode} +% +% \begin{macro}{\verbatim@font} +% +% In order to get both Latin and Cyrillic letters in verbatim text we +% need to change the definition of an internal \LaTeX\ command somewhat: +% +% \begin{macrocode} +%\def\verbatim@font{% +% \let\encodingdefault\latinencoding +% \normalfont\ttfamily +% \expandafter\def\csname\cyrillicencoding-cmd\endcsname##1##2{% +% \ifx\protect\@typeset@protect +% \begingroup\UseTextSymbol\cyrillicencoding##1\endgroup +% \else\noexpand##1\fi}} +% \end{macrocode} +% +% \end{macro} +% +% The category code of the characters `\texttt{:}', `\texttt{;}', +% `\texttt{!}', and `\texttt{?}' is made |\active| to insert a little +% white space. +% +% For Ukrainian (as well as for Russian and German) the \texttt{"} +% character also is made active. +% +% Note: It is \emph{very} questionable whether the Russian typesetting +% tradition requires additional spacing before those punctuation signs. +% Therefore, we make the corresponding code optional. If you need it, +% then define the \texttt{frenchpunct} docstrip option in +% \file{babel.ins}. +% +% Borrowed from french. +% Some users dislike automatic insertion of a space before +% `double punctuation', and prefer to decide themselves whether a +% space should be added or not; so a hook |\NoAutoSpaceBeforeFDP| +% is provided: if this command is added (in file |ukraineb.cfg|, or +% anywhere in a document) |ukraineb| will respect your typing, and +% introduce a suitable space before `double punctuation' \emph{if +% and only if} a space is typed in the source file before those +% signs. +% +% The command |\AutoSpaceBeforeFDP| switches back to the +% default behavior of |ukraineb|. +% +% \begin{macrocode} +%<*frenchpunct> +\initiate@active@char{:} +\initiate@active@char{;} +%</frenchpunct> +%<*frenchpunct|spanishligs> +\initiate@active@char{!} +\initiate@active@char{?} +%</frenchpunct|spanishligs> +\initiate@active@char{"} +% \end{macrocode} +% +% The code above is necessary because we need extra active characters. +% The character |"| is used as indicated in +% table~\ref{tab:ukrainian-quote}. +% +% We specify that the Ukrainian group of shorthands should be used. +% +% \begin{macrocode} +\addto\extrasukrainian{\languageshorthands{ukrainian}} +% \end{macrocode} +% +% These characters are `turned on' once, later their definition may +% vary. +% +% \begin{macrocode} +\addto\extrasukrainian{% +%<frenchpunct> \bbl@activate{:}\bbl@activate{;}% +%<frenchpunct|spanishligs> \bbl@activate{!}\bbl@activate{?}% + \bbl@activate{"}} +\addto\noextrasukrainian{% +%<frenchpunct> \bbl@deactivate{:}\bbl@deactivate{;}% +%<frenchpunct|spanishligs> \bbl@deactivate{!}\bbl@deactivate{?}% + \bbl@deactivate{"}} +% \end{macrocode} +% +% The \texttt{X2} and \texttt{T2*} encodings do not contain +% |spanish_shriek| and |spanish_query| symbols; as a consequence, the +% ligatures `|?`|' and `|!`|' do not work with them (these characters are +% useless for Cyrillic texts anyway). But we define the shorthands to +% emulate these ligatures (optionally). +% +% We do not use |\latinencoding| here (but instead explicitly use +% \texttt{OT1}) because the user may choose \texttt{T2A} to be the primary +% encoding, but it does not contain these characters. +% +% \begin{macrocode} +%<*spanishligs> +\declare@shorthand{ukrainian}{?`}{\UseTextSymbol{OT1}\textquestiondown} +\declare@shorthand{ukrainian}{!`}{\UseTextSymbol{OT1}\textexclamdown} +%</spanishligs> +% \end{macrocode} +% +% \begin{macro}{\ukrainian@sh@;@} +% \begin{macro}{\ukrainian@sh@:@} +% \begin{macro}{\ukrainian@sh@!@} +% \begin{macro}{\ukrainian@sh@?@} +% +% We have to reduce the amount of white space before \texttt{;}, +% \texttt{:} and \texttt{!}. This should only happen in horizontal mode, +% hence the test with |\ifhmode|. +% +% \begin{macrocode} +%<*frenchpunct> +\declare@shorthand{ukrainian}{;}{% + \ifhmode +% \end{macrocode} +% +% In horizontal mode we check for the presence of a `space', `unskip' if +% it exists and place a |0.1em| kerning. +% +% \begin{macrocode} + \ifdim\lastskip>\z@ + \unskip\nobreak\kern.1em + \else +% \end{macrocode} +% If no space has been typed, we add |\FDP@thinspace| +% which will be +% defined, up to the user's wishes, as an automatic added +% thinspace, or as |\@empty|. +% +% \begin{macrocode} + \FDP@thinspace + \fi + \fi +% \end{macrocode} +% +% Now we can insert a `|;|' character. +% +% \begin{macrocode} + \string;} +% \end{macrocode} +% +% The other definitions are very similar. +% +% \begin{macrocode} +\declare@shorthand{ukrainian}{:}{% + \ifhmode + \ifdim\lastskip>\z@ + \unskip\nobreak\kern.1em + \else + \FDP@thinspace + \fi + \fi + \string:} +% \end{macrocode} +% +% \begin{macrocode} +\declare@shorthand{ukrainian}{!}{% + \ifhmode + \ifdim\lastskip>\z@ + \unskip\nobreak\kern.1em + \else + \FDP@thinspace + \fi + \fi + \string!} +% \end{macrocode} +% +% \begin{macrocode} +\declare@shorthand{ukrainian}{?}{% + \ifhmode + \ifdim\lastskip>\z@ + \unskip\nobreak\kern.1em + \else + \FDP@thinspace + \fi + \fi + \string?} +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\AutoSpaceBeforeFDP} +% \begin{macro}{\NoAutoSpaceBeforeFDP} +% \begin{macro}{\FDP@thinspace} +% |\FDP@thinspace| is defined as unbreakable +% spaces if |\AutoSpaceBeforeFDP| is activated or as |\@empty| if +% |\NoAutoSpaceBeforeFDP| is in use. +% The default is |\AutoSpaceBeforeFDP|. +% \begin{macrocode} +\def\AutoSpaceBeforeFDP{% + \def\FDP@thinspace{\nobreak\kern.1em}} +\def\NoAutoSpaceBeforeFDP{\let\FDP@thinspace\@empty} +\AutoSpaceBeforeFDP +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\FDPon} +% \begin{macro}{\FDPoff} +% +% The next macros allow to switch on/off activeness of double +% punctuation signs. +% +% \begin{macrocode} +\def\FDPon{\bbl@activate{:}% + \bbl@activate{;}% + \bbl@activate{?}% + \bbl@activate{!}} +\def\FDPoff{\bbl@deactivate{:}% + \bbl@deactivate{;}% + \bbl@deactivate{?}% + \bbl@deactivate{!}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\system@sh@:@} +% \begin{macro}{\system@sh@!@} +% \begin{macro}{\system@sh@?@} +% \begin{macro}{\system@sh@;@} +% +% When the active characters appear in an environment where their +% Ukrainian behaviour is not wanted they should give an `expected' +% result. Therefore we define shorthands at system level as well. +% +% \begin{macrocode} +\declare@shorthand{system}{:}{\string:} +\declare@shorthand{system}{;}{\string;} +%</frenchpunct> +%<*frenchpunct&!spanishligs> +\declare@shorthand{system}{!}{\string!} +\declare@shorthand{system}{?}{\string?} +%</frenchpunct&!spanishligs> +% \end{macrocode} +% +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% To be able to define the function of `|"|', we first define a couple of +% `support' macros. +% +% \begin{macro}{\dq} +% +% We save the original double quote character in |\dq| to keep it +% available, the math accent |\"| can now be typed as `|"|'. +% +% \begin{macrocode} +\begingroup \catcode`\"12 +\def\reserved@a{\endgroup + \def\@SS{\mathchar"7019 } + \def\dq{"}} +\reserved@a +% \end{macrocode} +% +% \end{macro} +% +% Now we can define the doublequote macros: german and french quotes. +% We use definitions of these quotes made in babel.sty. +% The french quotes are contained in the \texttt{T2*} encodings. +% +% \begin{macrocode} +\declare@shorthand{ukrainian}{"`}{\glqq} +\declare@shorthand{ukrainian}{"'}{\grqq} +\declare@shorthand{ukrainian}{"<}{\flqq} +\declare@shorthand{ukrainian}{">}{\frqq} +% \end{macrocode} +% +% Some additional commands: +% +% \begin{macrocode} +\declare@shorthand{ukrainian}{""}{\hskip\z@skip} +\declare@shorthand{ukrainian}{"~}{\textormath{\leavevmode\hbox{-}}{-}} +\declare@shorthand{ukrainian}{"=}{\nobreak-\hskip\z@skip} +\declare@shorthand{ukrainian}{"|}{% + \textormath{\nobreak\discretionary{-}{}{\kern.03em}% + \allowhyphens}{}} +% \end{macrocode} +% +% The next two macros for |"-| and |"---| are somewhat different. +% We must check whether the second token is a hyphen character: +% +% \begin{macrocode} +\declare@shorthand{ukrainian}{"-}{% +% \end{macrocode} +% +% If the next token is `|-|', we typeset an emdash, otherwise a hyphen +% sign: +% +% \begin{macrocode} + \def\ukrainian@sh@tmp{% + \if\ukrainian@sh@next-\expandafter\ukrainian@sh@emdash + \else\expandafter\ukrainian@sh@hyphen\fi + }% +% \end{macrocode} +% +% \TeX\ looks for the next token after the first `|-|': the meaning of +% this token is written to |\ukrainian@sh@next| and |\ukrainian@sh@tmp| is +% called. +% +% \begin{macrocode} + \futurelet\ukrainian@sh@next\ukrainian@sh@tmp} +% \end{macrocode} +% +% Here are the definitions of hyphen and emdash. First the hyphen: +% +% \begin{macrocode} +\def\ukrainian@sh@hyphen{% + \nobreak\-\bbl@allowhyphens} +% \end{macrocode} +% +% For the emdash definition, there are the two parameters: we must `eat' +% two last hyphen signs of our emdash\dots : +% \begin{macrocode} +\def\ukrainian@sh@emdash#1#2{\cdash-#1#2} +% \end{macrocode} +% \begin{macro}{\cdash} +% \dots\ these two parameters are useful for another macro: +% |\cdash|: +% \begin{macrocode} +%\ifx\cdash\undefined % should be defined earlier +\def\cdash#1#2#3{\def\tempx@{#3}% +\def\tempa@{-}\def\tempb@{~}\def\tempc@{*}% + \ifx\tempx@\tempa@\@Acdash\else + \ifx\tempx@\tempb@\@Bcdash\else + \ifx\tempx@\tempc@\@Ccdash\else + \errmessage{Wrong usage of cdash}\fi\fi\fi} +% \end{macrocode} +% second parameter (or third for |\cdash|) shows what kind of emdash +% to create in next step +% \begin{center} +% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}} +% |"---| & ordinary (plain) Cyrillic emdash inside text: +% an unbreakable thinspace will be inserted before only in case of +% a \textit{space} before the dash (it is necessary for dashes after +% display maths formulae: there could be lists, enumerations etc.\ +% started with ``--- where $a$ is ...'' i.e., the dash starts a line). +% (Firstly there were planned rather soft rules for user: he may put +% a space before the dash or not. But it is difficult to place this +% thinspace automatically, i.e., by checking modes because after +% display formulae \TeX{} uses horizontal mode. Maybe there is a +% misunderstanding? Maybe there is another way?) After a dash +% a breakable thinspace is always placed; \\ +% \end{tabular} +% \end{center} +% \begin{macrocode} +% What is more grammatically: .2em or .2\fontdimen6\font ? +\def\@Acdash{\ifdim\lastskip>\z@\unskip\nobreak\hskip.2em\fi + \cyrdash\hskip.2em\ignorespaces}% +% \end{macrocode} +% \begin{center} +% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}} +% |"--~| & emdash in compound names or surnames +% (like Mendeleev--Klapeiron); this dash has no space characters +% around; after the dash some space is added +% |\exhyphenalty| \\ +% \end{tabular} +% \end{center} +% \begin{macrocode} +\def\@Bcdash{\leavevmode\ifdim\lastskip>\z@\unskip\fi + \nobreak\cyrdash\penalty\exhyphenpenalty\hskip\z@skip\ignorespaces}% +% \end{macrocode} +% \begin{center} +% \begin{tabular}{@{}p{.1\hsize}@{}p{.9\hsize}@{}} +% |"--*| & for denoting direct speech (a space like |\enskip| +% must follow the emdash); \\ +% \end{tabular} +% \end{center} +% \begin{macrocode} +\def\@Ccdash{\leavevmode + \nobreak\cyrdash\nobreak\hskip.35em\ignorespaces}% +%\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\cyrdash} +% Finally the macro for ``body'' of the Cyrillic emdash. +% The |\cyrdash| macro will be defined in case this macro hasn't been +% defined in a fontenc file. For T2* fonts, cyrdash will be placed in +% the code of the English emdash thus it uses ligature |---|. +% \begin{macrocode} +% Is there an IF necessary? +\ifx\cyrdash\undefined + \def\cyrdash{\hbox to.8em{--\hss--}} +\fi +% \end{macrocode} +% \end{macro} +% +% Here a really new macro---to place thinspace between initials. +% This macro used instead of |\,| allows hyphenation in the following +% surname. +% +% \begin{macrocode} +\declare@shorthand{ukrainian}{",}{\nobreak\hskip.2em\ignorespaces} +% \end{macrocode} +% +% \begin{macro}{\mdqon} +% \begin{macro}{\mdqoff} +% All that's left to do now is to define a couple of commands +% for |"|. +% \begin{macrocode} +\def\mdqon{\bbl@activate{"}} +\def\mdqoff{\bbl@deactivate{"}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The Ukrainian hyphenation patterns can be used with |\lefthyphenmin| +% and |\righthyphenmin| set to~2. +% \changes{ukraineb-1.1g}{2000/09/22}{Now use \cs{providehyphenmins} to +% provide a default value} +% \begin{macrocode} +\providehyphenmins{\CurrentOption}{\tw@\tw@} +% temporary hack: +\ifx\englishhyphenmins\undefined + \def\englishhyphenmins{\tw@\thr@@} +\fi +% \end{macrocode} +% +% Now the action |\extrasukrainian| has to execute is to make sure that the +% command |\frenchspacing| is in effect. If this is not the case the +% execution of |\noextrasukrainian| will switch it off again. +% +% \begin{macrocode} +\addto\extrasukrainian{\bbl@frenchspacing} +\addto\noextrasukrainian{\bbl@nonfrenchspacing} +% \end{macrocode} +% +% \end{macro} +% +% Next we add a new enumeration style for Ukrainian manuscripts with +% Cyrillic letters, and later on we define some math operator names in +% accordance with Ukrainian and Russian typesetting traditions. +% +% \begin{macro}{\Asbuk} +% +% We begin by defining |\Asbuk| which works like |\Alph|, but produces +% (uppercase) Cyrillic letters intead of Latin ones. The letters CYRGUP, +% and SFTSN are skipped, as usual for such enumeration. +% +% \begin{macrocode} +\def\Asbuk#1{\expandafter\@Asbuk\csname c@#1\endcsname} +\def\@Asbuk#1{\ifcase#1\or + \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRIE\or + \CYRZH\or\CYRZ\or\CYRI\or\CYRII\or\CYRYI\or\CYRISHRT\or + \CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRO\or\CYRP\or\CYRR\or + \CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or\CYRC\or\CYRCH\or + \CYRSH\or\CYRSHCH\or\CYRYU\or\CYRYA\else\@ctrerr\fi} +% \end{macrocode} +% +% \end{macro} +% +% \begin{macro}{\asbuk} +% +% The macro |\asbuk| is similar to |\alph|; it produces lowercase +% Ukrainian letters. +% +% \begin{macrocode} +\def\asbuk#1{\expandafter\@asbuk\csname c@#1\endcsname} +\def\@asbuk#1{\ifcase#1\or + \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrie\or + \cyrzh\or\cyrz\or\cyri\or\cyrii\or\cyryi\or\cyrishrt\or + \cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyro\or\cyrp\or\cyrr\or + \cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or\cyrc\or\cyrch\or + \cyrsh\or\cyrshch\or\cyryu\or\cyrya\else\@ctrerr\fi} +% \end{macrocode} +% +% \end{macro} +% +% Set up default Cyrillic math alphabets. The math groups for cyrillic +% letters are defined in the encoding definition files. First, declare +% a new alphabet for symbols, |\cyrmathrm|, based on the symbol font +% for Cyrillic letters defined in the encoding definition file. Note, +% that by default Cyrillic letters are taken from upright font in math +% mode (unlike Latin letters). +% \begin{macrocode} +%\RequirePackage{textmath} +\@ifundefined{sym\cyrillicencoding letters}{}{% +\SetSymbolFont{\cyrillicencoding letters}{bold}\cyrillicencoding + \rmdefault\bfdefault\updefault +\DeclareSymbolFontAlphabet\cyrmathrm{\cyrillicencoding letters} +% \end{macrocode} +% And we need a few commands to be able to switch to different variants. +% \begin{macrocode} +\DeclareMathAlphabet\cyrmathbf\cyrillicencoding + \rmdefault\bfdefault\updefault +\DeclareMathAlphabet\cyrmathsf\cyrillicencoding + \sfdefault\mddefault\updefault +\DeclareMathAlphabet\cyrmathit\cyrillicencoding + \rmdefault\mddefault\itdefault +\DeclareMathAlphabet\cyrmathtt\cyrillicencoding + \ttdefault\mddefault\updefault +% +\SetMathAlphabet\cyrmathsf{bold}\cyrillicencoding + \sfdefault\bfdefault\updefault +\SetMathAlphabet\cyrmathit{bold}\cyrillicencoding + \rmdefault\bfdefault\itdefault +} +% \end{macrocode} +% +% Some math functions in Ukrainian and Russian math books have other +% names: e.g., \texttt{sinh} in Russian is written as \texttt{sh} etc. +% So we define a number of new math operators. +% +% |\sinh|: +% \begin{macrocode} +\def\sh{\mathop{\operator@font sh}\nolimits} +% \end{macrocode} +% |\cosh|: +% \begin{macrocode} +\def\ch{\mathop{\operator@font ch}\nolimits} +% \end{macrocode} +% |\tan|: +% \begin{macrocode} +\def\tg{\mathop{\operator@font tg}\nolimits} +% \end{macrocode} +% |\arctan|: +% \begin{macrocode} +\def\arctg{\mathop{\operator@font arctg}\nolimits} +% \end{macrocode} +% arcctg: +% \begin{macrocode} +\def\arcctg{\mathop{\operator@font arcctg}\nolimits} +% \end{macrocode} +% The following macro conflicts with |\th| defined in Latin~1 encoding: +% +% |\tanh|: +% \changes{ukraineb-1.1k}{2004/05/21}{Change definition of \cs{th} +% only for this language} +% \begin{macrocode} +\addto\extrasrussian{% + \babel@save{\th}% + \let\ltx@th\th + \def\th{\textormath{\ltx@th}% + {\mathop{\operator@font th}\nolimits}}% + } +% \end{macrocode} +% |\cot|: +% \begin{macrocode} +\def\ctg{\mathop{\operator@font ctg}\nolimits} +% \end{macrocode} +% |\coth|: +% \begin{macrocode} +\def\cth{\mathop{\operator@font cth}\nolimits} +% \end{macrocode} +% |\csc|: +% \begin{macrocode} +\def\cosec{\mathop{\operator@font cosec}\nolimits} +% \end{macrocode} +% +% And finally some other Ukrainian and Russian mathematical symbols: +% \begin{macrocode} +\def\Prob{\mathop{\kern\z@\mathsf{P}}\nolimits} +\def\Variance{\mathop{\kern\z@\mathsf{D}}\nolimits} +\def\nsd{\mathop{\cyrmathrm{\cyrn.\cyrs.\cyrd.}}\nolimits} +\def\nsk{\mathop{\cyrmathrm{\cyrn.\cyrs.\cyrk.}}\nolimits} +\def\NSD{\mathop{\cyrmathrm{\CYRN\CYRS\CYRD}}\nolimits} +\def\NSK{\mathop{\cyrmathrm{\CYRN\CYRS\CYRK}}\nolimits} + \def\nod{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrd.}}\nolimits} % ?????? + \def\nok{\mathop{\cyrmathrm{\cyrn.\cyro.\cyrk.}}\nolimits} % ?????? + \def\NOD{\mathop{\cyrmathrm{\CYRN\CYRO\CYRD}}\nolimits} % ?????? + \def\NOK{\mathop{\cyrmathrm{\CYRN\CYRO\CYRK}}\nolimits} % ?????? +\def\Proj{\mathop{\cyrmathrm{\CYRP\cyrr}}\nolimits} +% \end{macrocode} +% +% This is for compatibility with older Ukrainian packages. +% \begin{macrocode} +\DeclareRobustCommand{\No}{% + \ifmmode{\nfss@text{\textnumero}}\else\textnumero\fi} +% \end{macrocode} +% +% The macro |\ldf@finish| takes care of looking for a configuration file, +% setting the main language to be switched on at |\begin{document}| and +% resetting the category code of \texttt{@} to its original value. +% +% \begin{macrocode} +\ldf@finish{ukrainian} +%</code> +% \end{macrocode} +% +% \Finale +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\endinput diff --git a/Master/texmf-dist/source/generic/babel-ukraineb/ukraineb.ins b/Master/texmf-dist/source/generic/babel-ukraineb/ukraineb.ins new file mode 100644 index 00000000000..fd1c219c3e1 --- /dev/null +++ b/Master/texmf-dist/source/generic/babel-ukraineb/ukraineb.ins @@ -0,0 +1,147 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% Copyright 1989-2008 Johannes L. Braams and any individual authors +%% listed elsewhere in this file. All rights reserved. +%% +%% This file is part of the Babel system. +%% -------------------------------------- +%% +%% It 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 Johannes Braams. +%% +%% The list of all files belonging to the LaTeX base distribution is +%% given in the file `manifest.bbl. See also `legal.bbl' for additional +%% information. +%% +%% The list of derived (unpacked) files belonging to the distribution +%% and covered by LPPL is defined by the unpacking scripts (with +%% extension .ins) which are part of the distribution. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\filedate{1999/03/13} +\def\batchfile{ukraineb.ins} +\input docstrip.tex + +{\ifx\generate\undefined +\Msg{**********************************************} +\Msg{*} +\Msg{* This installation requires docstrip} +\Msg{* version 2.3c or later.} +\Msg{*} +\Msg{* An older version of docstrip has been input} +\Msg{*} +\Msg{**********************************************} +\errhelp{Move or rename old docstrip.tex.} +\errmessage{Old docstrip in input path} +\batchmode +\csname @@end\endcsname +\fi} + +\declarepreamble\mainpreamble +This is a generated file. + +Copyright 1989-2008 Johannes L. Braams and any individual authors +listed elsewhere in this file. All rights reserved. + +This file was generated from file(s) of the Babel system. +--------------------------------------------------------- + +It 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 Johannes Braams. + +This file may only be distributed together with a copy of the Babel +system. You may however distribute the Babel system without +such generated files. + +The list of all files belonging to the Babel distribution is +given in the file `manifest.bbl'. See also `legal.bbl for additional +information. + +The list of derived (unpacked) files belonging to the distribution +and covered by LPPL is defined by the unpacking scripts (with +extension .ins) which are part of the distribution. +\endpreamble + +\declarepreamble\fdpreamble + +This is a generated file. + +Copyright 1989-2008 Johannes L. Braams and any individual authors +listed elsewhere in this file. All rights reserved. + +This file was generated from file(s) of the Babel system. +--------------------------------------------------------- + +It 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 Johannes Braams. + +This file may only be distributed together with a copy of the Babel +system. You may however distribute the Babel system without +such generated files. + +The list of all files belonging to the Babel distribution is +given in the file `manifest.bbl'. See also `legal.bbl for additional +information. + +In particular, permission is granted to customize the declarations in +this file to serve the needs of your installation. + +However, NO PERMISSION is granted to distribute a modified version +of this file under its original name. + +\endpreamble + +\usedir{tex/generic/babel} +\keepsilent + +\usepreamble\mainpreamble + +\generate{\file{ukraineb.ldf}{\from{ukraineb.dtx}{code}}} + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space All *.fd} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.fdd' through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} +} + +\endinput |