% \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 % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the % transcript. %<*dtx> \ProvidesFile{usorbian.dtx} % %\ProvidesLanguage{usorbian} %\fi %\ProvidesFile{usorbian.dtx} [2021/11/05 v1.0j Upper Sorbian support from the babel system] %\iffalse %% File `usorbian.dtx' %% Babel package for LaTeX version 2e %% Copyright (C) 1989 - 2008 %% by Johannes Braams, TeXniek % %% Upper Sorbian Language Definition File %% Copyright (C) 1994 - 2004 %% by Eduard Werner % Werner, Eduard", % Serbski institut z. t., % Dw\'orni\v{s}\'cowa 6 % 02625 Budy\v{s}in/Bautzen % Germany", % (??)3591 497223", % edi at kaihh.hanse.de", % %% Please report errors to: Eduard Werner edi at kaihh.hanse.de %% % This file is part of the babel system, it provides the source % code for the Upper Sorbian definition file. %<*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}} \newfont{\logo}{logo10} \newcommand*\MF{{\logo METAFONT}} \begin{document} \DocInput{usorbian.dtx} \end{document} % %\fi % \GetFileInfo{usorbian.dtx} % % \changes{usorbian-0.1}{1994/10/10}{First version} % \changes{usorbian-0.1b}{1994/10/18}{Made it possible to run through % \LaTeX; added \cs{MF} and removed extra \cs{end{macro}}} % \changes{usorbian-1.0d}{1996/07/13}{Replaced \cs{undefined} with % \cs{@undefined} and \cs{empty} with \cs{@empty} for consistency % with \LaTeX} % \changes{usorbian-1.0e}{1996/10/10}{Moved the definition of % \cs{atcatcode} right to the beginning.} % % \section{The Upper Sorbian language} % % The file \file{\filename}\footnote{The file described in this % section has version number \fileversion\ and was last revised on % \filedate. It was written by Eduard Werner % (\texttt{edi@kaihh.hanse.de}).} It defines all the % language-specific macros for Upper Sorbian. % % \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. % \changes{usorbian-1.0e}{1996/11/03}{Now use \cs{LdfInit} to perform % initial checks} % \changes{usorbian-1.0j}{2007/10/19}{This file can be loaded under % more than one name.} % \begin{macrocode} %<*code> \LdfInit\CurrentOption{date\CurrentOption} % \end{macrocode} % % When this file is read as an option, i.e. by the |\usepackage| % command, \texttt{usorbian} will be an `unknown' language, in which % case we have to make it known. So we check for the existence of % |\l@usorbian| to see whether we have to do something here. % \changes{usorbian-1.0j}{2007/10/19}{Check for the option % lowersorbian} % As % \babel\ also knwos the option \Lopt{uppersorbian} we have to % check that as well. % % \begin{macrocode} \ifx\l@uppersorbian\@undefined \ifx\l@usorbian\@undefined \@nopatterns{usorbian} \adddialect\l@usorbian\z@ \let\l@uppersorbian\l@usorbian \else \let\l@uppersorbian\l@usorbian \fi \else \let\l@usorbian\l@uppersorbian \fi % \end{macrocode} % % The next step consists of defining commands to switch to (and % from) the Upper Sorbian language. % % \begin{macro}{\captionsusorbian} % The macro |\captionsusorbian| defines all strings used in the four % standard documentclasses provided with \LaTeX. % \changes{usorbian-0.1c}{1994/11/27}{Removed two typos (Kapitel and % Dodatki)} % \changes{usorbian-1.0b}{1995/07/04}{Added \cs{proofname} for % AMS-\LaTeX} % \changes{usorbian-1.0i}{2000/09/22}{Added \cs{glossaryname}} % \changes{usorbian-1.0j}{2007/10/19}{Make this work for more than one % option name} % \begin{macrocode} \@namedef{captions\CurrentOption}{% \def\prefacename{Zawod}% \def\refname{Referency}% \def\abstractname{Abstrakt}% \def\bibname{Literatura}% \def\chaptername{Kapitl}% \def\appendixname{Dodawki}% \def\contentsname{Wobsah}% \def\listfigurename{Zapis wobrazow}% \def\listtablename{Zapis tabulkow}% \def\indexname{Indeks}% \def\figurename{Wobraz}% \def\tablename{Tabulka}% \def\partname{D\'z\v el}% \def\enclname{P\v r\l oha}% \def\ccname{CC}% \def\headtoname{Komu}% \def\pagename{Strona}% \def\seename{hl.}% \def\alsoname{hl.~te\v z} \def\proofname{Proof}% <-- needs translation \def\glossaryname{Glossary}% <-- Needs translation }% % \end{macrocode} % \end{macro} % % \begin{macro}{\newdateusorbian} % The macro |\newdateusorbian| redefines the command |\today| to % produce Upper Sorbian dates. % \changes{usorbian-1.0g}{1997/10/01}{Use \cs{edef} to define % \cs{today} to save memory} % \changes{usorbian-1.0g}{1998/03/28}{use \cs{def} instead of % \cs{edef}} % \changes{usorbian-1.0j}{2007/10/19}{Make this work for more than one % option name} % \begin{macrocode} \@namedef{newdate\CurrentOption}{% \def\today{\number\day.~\ifcase\month\or januara\or februara\or m\v erca\or apryla\or meje\or junija\or julija\or awgusta\or septembra\or oktobra\or nowembra\or decembra\fi \space \number\year}} % \end{macrocode} % \end{macro} % % \begin{macro}{\olddateusorbian} % The macro |\olddateusorbian| redefines the command |\today| to % produce old-style Upper Sorbian dates. % \changes{usorbian-1.0g}{1997/10/01}{Use \cs{edef} to define % \cs{today} to save memory} % \changes{usorbian-1.0g}{1998/03/28}{use \cs{def} instead of % \cs{edef}} % \changes{usorbian-1.0j}{2007/10/19}{Make this work for more than one % option name} % \begin{macrocode} \@namedef{olddate\CurrentOption}{% \def\today{\number\day.~\ifcase\month\or wulkeho r\'o\v zka\or ma\l eho r\'o\v zka\or nal\v etnika\or jutrownika\or r\'o\v zownika\or sma\v znika\or pra\v znika\or \v znjenca\or po\v znjenca\or winowca\or nazymnika\or hodownika\fi \space \number\year}} % \end{macrocode} % \end{macro} % % The default will be the new-style dates. % \changes{usorbian-1.0j}{2007/10/19}{Make this work for more than one % option name} % \begin{macrocode} \expandafter\let\csname date\CurrentOption\expandafter\endcsname \csname newdate\CurrentOption\endcsname % \end{macrocode} % % \begin{macro}{\extrasusorbian} % The macro |\extrasusorbian| will perform all the extra % definitions needed for the Upper Sorbian language. It's pirated % from |germanb.sty|. The macro |\noextrasusorbian| is used to % cancel the actions of |\extrasusorbian|. % % Because for Upper Sorbian (as well as for Dutch) the \texttt{"} % character is made active. This is done once, later on its % definition may vary. % \changes{usorbian-1.0j}{2007/10/19}{Make this work for more than one % option name} % \begin{macrocode} \initiate@active@char{"} \@namedef{extras\CurrentOption}{\languageshorthands{usorbian}} \expandafter\addto\csname extras\CurrentOption\endcsname{% \bbl@activate{"}} % \end{macrocode} % Don't forget to turn the shorthands off again. % \changes{usorbian-1.0h}{1999/12/17}{Deactivate shorthands ouside of % Upper Sorbian} % \changes{usorbian-1.0i}{2021/02/06}{correct deactivation command} % \begin{macrocode} \expandafter\addto\csname noextras\CurrentOption\endcsname{% \bbl@deactivate{"}} % \end{macrocode} % % In order for \TeX\ to be able to hyphenate German Upper Sorbian % words which contain `\ss' we have to give the character a nonzero % |\lccode| (see Appendix H, the \TeX book). As some of the other % language definitions turn the character |^| into a shorthand we % need to make sure that it has it's orginial definition here. % \changes{usorbian-1.0k}{2008/03/17}{Make sure the caret has the % right \cs{catcdoe}} % \begin{macrocode} \begingroup \catcode`\^7 \def\x{\endgroup \expandafter\addto\csname extras\CurrentOption\endcsname{% \babel@savevariable{\lccode`\^^Y}% \lccode`\^^Y`\^^Y}} \x % \end{macrocode} % The umlaut accent macro |\"| is changed to lower the umlaut dots. % The redefinition is done with the help of |\umlautlow|. % \begin{macrocode} \expandafter\addto\csname extras\CurrentOption\endcsname{% \babel@save\"\umlautlow} \expandafter\addto\csname noextras\CurrentOption\endcsname{% \umlauthigh} % \end{macrocode} % The Upper Sorbian hyphenation patterns can be used with % |\lefthyphenmin| and |\righthyphenmin| set to~2. % \changes{usorbian-1.0i}{2000/09/22}{Now use \cs{providehyphenmins} to % provide a default value} % \begin{macrocode} \providehyphenmins{\CurrentOption}{\tw@\tw@} % \end{macrocode} % \end{macro} % % \changes{usorbian-1.0a}{1995/05/27}{Removed stuff that has been % moved to \file{babel.def}} % % \begin{macro}{\dq} % We save the original double quote character in |\dq| to keep it % available, the math accent |\"| can now be typed as |"|. Also we % store the original meaning of the command |\"| for future use. % \begin{macrocode} \begingroup \catcode`\"12 \def\x{\endgroup \def\@SS{\mathchar"7019 } \def\dq{"}} \x % \end{macrocode} % \end{macro} % % Now we can define the doublequote macros: the umlauts, % \begin{macrocode} \declare@shorthand{usorbian}{"a}{\textormath{\"{a}}{\ddot a}} \declare@shorthand{usorbian}{"o}{\textormath{\"{o}}{\ddot o}} \declare@shorthand{usorbian}{"u}{\textormath{\"{u}}{\ddot u}} \declare@shorthand{usorbian}{"A}{\textormath{\"{A}}{\ddot A}} \declare@shorthand{usorbian}{"O}{\textormath{\"{O}}{\ddot O}} \declare@shorthand{usorbian}{"U}{\textormath{\"{U}}{\ddot U}} % \end{macrocode} % tremas, % \begin{macrocode} \declare@shorthand{usorbian}{"e}{\textormath{\"{e}}{\ddot e}} \declare@shorthand{usorbian}{"E}{\textormath{\"{E}}{\ddot E}} \declare@shorthand{usorbian}{"i}{\textormath{\"{\i}}{\ddot\imath}} \declare@shorthand{usorbian}{"I}{\textormath{\"{I}}{\ddot I}} % \end{macrocode} % usorbian es-zet (sharp s), % \begin{macrocode} \declare@shorthand{usorbian}{"s}{\textormath{\ss{}}{\@SS{}}} \declare@shorthand{usorbian}{"S}{SS} % \end{macrocode} % german and french quotes, % \changes{usorbian-1.0f}{1997/04/03}{Removed empty groups after % double quote and guillemot characters} % \begin{macrocode} \declare@shorthand{usorbian}{"`}{% \textormath{\quotedblbase}{\mbox{\quotedblbase}}} \declare@shorthand{usorbian}{"'}{% \textormath{\textquotedblleft}{\mbox{\textquotedblleft}}} \declare@shorthand{usorbian}{"<}{% \textormath{\guillemotleft}{\mbox{\guillemotleft}}} \declare@shorthand{usorbian}{">}{% \textormath{\guillemotright}{\mbox{\guillemotright}}} % \end{macrocode} % discretionary commands % \changes{usorbian-1.0c}{1996/01/24}{Now use \cs{bbl@disc}} % \begin{macrocode} \declare@shorthand{usorbian}{"c}{\textormath{\bbl@disc ck}{c}} \declare@shorthand{usorbian}{"C}{\textormath{\bbl@disc CK}{C}} \declare@shorthand{usorbian}{"f}{\textormath{\bbl@disc f{ff}}{f}} \declare@shorthand{usorbian}{"F}{\textormath{\bbl@disc F{FF}}{F}} \declare@shorthand{usorbian}{"l}{\textormath{\bbl@disc l{ll}}{l}} \declare@shorthand{usorbian}{"L}{\textormath{\bbl@disc L{LL}}{L}} \declare@shorthand{usorbian}{"m}{\textormath{\bbl@disc m{mm}}{m}} \declare@shorthand{usorbian}{"M}{\textormath{\bbl@disc M{MM}}{M}} \declare@shorthand{usorbian}{"n}{\textormath{\bbl@disc n{nn}}{n}} \declare@shorthand{usorbian}{"N}{\textormath{\bbl@disc N{NN}}{N}} \declare@shorthand{usorbian}{"p}{\textormath{\bbl@disc p{pp}}{p}} \declare@shorthand{usorbian}{"P}{\textormath{\bbl@disc P{PP}}{P}} \declare@shorthand{usorbian}{"t}{\textormath{\bbl@disc t{tt}}{t}} \declare@shorthand{usorbian}{"T}{\textormath{\bbl@disc T{TT}}{T}} % \end{macrocode} % and some additional commands: % \begin{macrocode} \declare@shorthand{usorbian}{"-}{\nobreak\-\bbl@allowhyphens} % \end{macrocode} % \changes{usorbian-1.0i}{2021/02/06}{Adapted some shorthands to changes in hyperref} % To avoid problems in bookmarks the shorthands should be hyperref aware. % \begin{macrocode} \providecommand\texorpdfstring[2]{#1} \declare@shorthand{usorbian}{"|}{% \texorpdfstring{\textormath{\nobreak\discretionary{-}{}{\kern.03em}% \allowhyphens}{}}{}} \declare@shorthand{usorbian}{""}{\hskip\z@skip} % \end{macrocode} % % \begin{macro}{\mdqon} % \begin{macro}{\mdqoff} % \begin{macro}{\ck} % All that's left to do now is to define a couple of commands % for reasons of compatibility with \file{german.sty}. % \changes{usorbian-1.0g}{1998/06/07}{Now use \cs{shorthandon} and % \cs{shorthandoff}} % \begin{macrocode} \def\mdqon{\shorthandon{"}} \def\mdqoff{\shorthandoff{"}} \def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % 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. % \changes{usorbian-1.0e}{1996/11/03}{Now use \cs{ldf@finish} to wrap % up} % \changes{usorbian-1.0j}{2007/10/19}{Make this work for more than one % option name} % \begin{macrocode} \ldf@finish\CurrentOption % % \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