%PDF- %PDF-
| Direktori : /proc/self/root/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ |
| Current File : //proc/self/root/usr/share/texlive/texmf-dist/tex/generic/oberdiek/soulutf8.sty |
%%
%% This is file `soulutf8.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% soulutf8.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% Project: soulutf8
%% Version: 2007/09/09 v1.0
%%
%% Copyright (C) 2007 by
%% Heiko Oberdiek <heiko.oberdiek at googlemail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. This version of this license is in
%% http://www.latex-project.org/lppl/lppl-1-3c.txt
%% and 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 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% This Current Maintainer of this work is Heiko Oberdiek.
%%
%% The Base Interpreter refers to any `TeX-Format',
%% because some files are installed in TDS:tex/generic//.
%%
%% This work consists of the main source file soulutf8.dtx
%% and the derived files
%% soulutf8.sty, soulutf8.pdf, soulutf8.ins, soulutf8.drv,
%% soulutf8-test1.tex, soulutf8-test2.tex, soulutf8-test3.tex,
%% soulutf8-test4.tex, soulutf8-test5.tex.
%%
\begingroup\catcode61\catcode48\catcode32=10\relax%
\catcode13=5 % ^^M
\endlinechar=13 %
\catcode35=6 % #
\catcode39=12 % '
\catcode44=12 % ,
\catcode45=12 % -
\catcode46=12 % .
\catcode58=12 % :
\catcode64=11 % @
\catcode123=1 % {
\catcode125=2 % }
\expandafter\let\expandafter\x\csname ver@soulutf8.sty\endcsname
\ifx\x\relax % plain-TeX, first loading
\else
\def\empty{}%
\ifx\x\empty % LaTeX, first loading,
% variable is initialized, but \ProvidesPackage not yet seen
\else
\expandafter\ifx\csname PackageInfo\endcsname\relax
\def\x#1#2{%
\immediate\write-1{Package #1 Info: #2.}%
}%
\else
\def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
\fi
\x{soulutf8}{The package is already loaded}%
\aftergroup\endinput
\fi
\fi
\endgroup%
\begingroup\catcode61\catcode48\catcode32=10\relax%
\catcode13=5 % ^^M
\endlinechar=13 %
\catcode35=6 % #
\catcode39=12 % '
\catcode40=12 % (
\catcode41=12 % )
\catcode44=12 % ,
\catcode45=12 % -
\catcode46=12 % .
\catcode47=12 % /
\catcode58=12 % :
\catcode64=11 % @
\catcode91=12 % [
\catcode93=12 % ]
\catcode123=1 % {
\catcode125=2 % }
\expandafter\ifx\csname ProvidesPackage\endcsname\relax
\def\x#1#2#3[#4]{\endgroup
\immediate\write-1{Package: #3 #4}%
\xdef#1{#4}%
}%
\else
\def\x#1#2[#3]{\endgroup
#2[{#3}]%
\ifx#1\@undefined
\xdef#1{#3}%
\fi
\ifx#1\relax
\xdef#1{#3}%
\fi
}%
\fi
\expandafter\x\csname ver@soulutf8.sty\endcsname
\ProvidesPackage{soulutf8}%
[2007/09/09 v1.0 Permit use of UTF-8 characters in soul (HO)]%
\begingroup\catcode61\catcode48\catcode32=10\relax%
\catcode13=5 % ^^M
\endlinechar=13 %
\catcode123=1 % {
\catcode125=2 % }
\catcode64=11 % @
\def\x{\endgroup
\expandafter\edef\csname SOuL@AtEnd\endcsname{%
\endlinechar=\the\endlinechar\relax
\catcode13=\the\catcode13\relax
\catcode32=\the\catcode32\relax
\catcode35=\the\catcode35\relax
\catcode61=\the\catcode61\relax
\catcode64=\the\catcode64\relax
\catcode123=\the\catcode123\relax
\catcode125=\the\catcode125\relax
}%
}%
\x\catcode61\catcode48\catcode32=10\relax%
\catcode13=5 % ^^M
\endlinechar=13 %
\catcode35=6 % #
\catcode64=11 % @
\catcode123=1 % {
\catcode125=2 % }
\def\TMP@EnsureCode#1#2{%
\edef\SOuL@AtEnd{%
\SOuL@AtEnd
\catcode#1=\the\catcode#1\relax
}%
\catcode#1=#2\relax
}
\TMP@EnsureCode{10}{12}% ^^J
\TMP@EnsureCode{33}{12}% !
\TMP@EnsureCode{34}{12}% "
\TMP@EnsureCode{36}{3}% $
\TMP@EnsureCode{39}{12}% '
\TMP@EnsureCode{40}{12}% (
\TMP@EnsureCode{41}{12}% )
\TMP@EnsureCode{42}{12}% *
\TMP@EnsureCode{43}{12}% +
\TMP@EnsureCode{44}{12}% ,
\TMP@EnsureCode{45}{12}% -
\TMP@EnsureCode{46}{12}% .
\TMP@EnsureCode{47}{12}% /
\TMP@EnsureCode{58}{12}% :
\TMP@EnsureCode{60}{12}% <
\TMP@EnsureCode{62}{12}% >
\TMP@EnsureCode{91}{12}% [
\TMP@EnsureCode{93}{12}% ]
\TMP@EnsureCode{94}{7}% ^
\TMP@EnsureCode{96}{12}% `
\TMP@EnsureCode{126}\active % ~
\TMP@EnsureCode{128}{12}% ^^80
\TMP@EnsureCode{147}{12}% ^^93
\TMP@EnsureCode{148}{12}% ^^94
\TMP@EnsureCode{160}{12}% ^^a0
\TMP@EnsureCode{194}{12}% ^^c2
\TMP@EnsureCode{226}{12}% ^^e2
\edef\SOuL@AtEnd{\SOuL@AtEnd\noexpand\endinput}
\ifx\documentclass\@undefined
\expandafter\ifx\csname SOUL@\endcsname\relax
\let\SOuL@orgDeclareRobustCommand\DeclareRobustCommand
\let\SOuL@orgnewcommand \newcommand
\let\SOuL@orgDeclareOption \DeclareOption
\let\SOuL@orgPackageError \PackageError
\def\SOuL@restorelatexcmds{%
\let\DeclareRobustCommand\SOuL@orgDeclareRobustCommand
\let\newcommand \SOuL@orgnewcommand
\let\DeclareOption \SOuL@orgDeclareOption
\let\PackageError \SOuL@orgPackageError
}%
\input soul.sty\relax
\SOuL@restorelatexcmds
\fi
\input infwarerr.sty\relax
\let\SOuL@orgSOUL@error\SOUL@error
\def\SOUL@error{%
\begingroup
\let\PackageError\@PackageError
\SOuL@orgSOUL@error
\endgroup
}%
\input etexcmds.sty\relax
\expandafter\ifx\csname @onelevel@sanitize\endcsname\relax
\def\@onelevel@sanitize#1{%
\edef#1{%
\expandafter\strip@prefix\meaning#1%
}%
}%
\def\strip@prefix#1>{}%
\fi
\else
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{soul}}%
\ProcessOptions\relax
\RequirePackage{soul}[2003/11/17]%
\RequirePackage{infwarerr}[2007/09/09]%
\RequirePackage{etexcmds}[2007/09/09]%
\fi
\ifetex@unexpanded
\catcode33=14 % '!': comment
\catcode43=9 % '+': ignore
\else
\catcode33=9 % '!': ignore
\catcode43=14 % '+': comment
\fi
\def\SOuL@redefine#1{%
\begingroup
\def\SOuL@cmd{#1}%
\afterassignment\SOuL@cmdcheck
\def\SOuL@temp
}
\def\SOuL@cmdcheck{%
\expandafter\ifx\SOuL@cmd\SOuL@temp
\else
\edef\SOuL@temp*{\expandafter\string\SOuL@cmd}%
\@PackageWarningNoLine{soulutf8}{%
Command \SOuL@temp* has changed.\MessageBreak
Supported versions of package `soul': 2003/11/17.\MessageBreak
Depending on the unknown changes the redefinition\MessageBreak
of \SOuL@temp* may not behave correctly%
}%
\fi
\expandafter\endgroup
\expandafter\def\SOuL@cmd
}
\SOuL@redefine\SOUL@eval{%
\def\SOUL@n*##1{\SOUL@scan}%
\if\noexpand\SOUL@@\SOUL@spc
\else
\SOUL@ignorespacesfalse
\fi
\ifnum\SOUL@minus=\thr@@
\SOUL@flushminus
\else\ifnum\SOUL@comma=\tw@
\SOUL@flushcomma
\else\ifnum\SOUL@apo=\tw@
\SOUL@flushapo
\else\ifnum\SOUL@grave=\tw@
\SOUL@flushgrave
\fi\fi\fi\fi
\ifx\SOUL@@-\else\SOUL@flushminus\fi
\ifx\SOUL@@,\else\SOUL@flushcomma\fi
\ifx\SOUL@@'\else\SOUL@flushapo\fi
\ifx\SOUL@@`\else\SOUL@flushgrave\fi
\ifx\SOUL@@-%
\advance\SOUL@minus\@ne
\else\ifx\SOUL@@,%
\advance\SOUL@comma\@ne
\else\ifx\SOUL@@'%
\advance\SOUL@apo\@ne
\else\ifx\SOUL@@`%
\advance\SOUL@grave\@ne
\else
\SOUL@flushminus
\SOUL@flushcomma
\SOUL@flushapo
\SOUL@flushgrave
\ifx\SOUL@@\SOUL@stop
\def\SOUL@n*{%
\SOUL@doword
\SOUL@eventuallyexhyphen\null
}%
\else\ifx\SOUL@@\par
\def\SOUL@n*\par{\par\leavevmode\SOUL@scan}%
\else\if\noexpand\SOUL@@\SOUL@spc
\SOUL@doword
\SOUL@eventuallyexhyphen\null
\ifSOUL@ignorespaces
\else
\SOUL@everyspace{}%
\fi
\def\SOUL@n* {\SOUL@scan}%
\else\ifx\SOUL@@\\%
\SOUL@doword
\SOUL@eventuallyexhyphen\null
\SOUL@everyspace{\unskip\nobreak\hfil\break}%
\SOUL@ignorespacestrue
\else\ifx\SOUL@@~%
\SOUL@doword
\SOUL@eventuallyexhyphen\null
\SOUL@everyspace{\nobreak}%
\else\ifx\SOUL@@\slash
\SOUL@doword
\SOUL@eventuallyexhyphen{/}%
\SOUL@exhyphen{/}%
\else\ifx\SOUL@@\mbox
\def\SOUL@n*{\SOUL@addprotect}%
\else\ifx\SOUL@@\hbox
\def\SOUL@n*{\SOUL@addprotect}%
\else\ifx\SOUL@@\soulomit
\def\SOUL@n*\soulomit##1{%
\SOUL@doword
{\spaceskip\SOUL@spaceskip##1}%
\SOUL@scan
}%
\else\ifx\SOUL@@\break
\SOUL@doword
\break
\else\ifx\SOUL@@\linebreak
\SOUL@doword
\SOUL@everyspace{\linebreak}%
\else\ifcat\bgroup\noexpand\SOUL@@
\def\SOUL@n*{\SOUL@addgroup{}}%
\else\ifcat$\noexpand\SOUL@@
\def\SOUL@n*{\SOUL@addmath}%
\else
\def\SOUL@n*{\SOUL@dotoken}%
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\fi\fi\fi\fi
\SOUL@n*%
}{%
\def\SOUL@n*##1{\SOUL@scan}%
\if\noexpand\SOUL@@\SOUL@spc
\else
\SOUL@ignorespacesfalse
\fi
\ifnum\SOUL@minus=\thr@@
\SOUL@flushminus
\else\ifnum\SOUL@comma=\tw@
\SOUL@flushcomma
\else\ifnum\SOUL@apo=\tw@
\SOUL@flushapo
\else\ifnum\SOUL@grave=\tw@
\SOUL@flushgrave
\fi\fi\fi\fi
\ifx\SOUL@@-\else\SOUL@flushminus\fi
\ifx\SOUL@@,\else\SOUL@flushcomma\fi
\ifx\SOUL@@'\else\SOUL@flushapo\fi
\ifx\SOUL@@`\else\SOUL@flushgrave\fi
\ifx\SOUL@@-%
\advance\SOUL@minus\@ne
\else\ifx\SOUL@@,%
\advance\SOUL@comma\@ne
\else\ifx\SOUL@@'%
\advance\SOUL@apo\@ne
\else\ifx\SOUL@@`%
\advance\SOUL@grave\@ne
\else
\SOUL@flushminus
\SOUL@flushcomma
\SOUL@flushapo
\SOUL@flushgrave
\ifx\SOUL@@\SOUL@stop
\def\SOUL@n*{%
\SOUL@doword
\SOUL@eventuallyexhyphen\null
}%
\else\ifx\SOUL@@\par
\def\SOUL@n*\par{\par\leavevmode\SOUL@scan}%
\else\if\noexpand\SOUL@@\SOUL@spc
\SOUL@doword
\SOUL@eventuallyexhyphen\null
\ifSOUL@ignorespaces
\else
\SOUL@everyspace{}%
\fi
\def\SOUL@n* {\SOUL@scan}%
\else\ifx\SOUL@@\\%
\SOUL@doword
\SOUL@eventuallyexhyphen\null
\SOUL@everyspace{\unskip\nobreak\hfil\break}%
\SOUL@ignorespacestrue
\else\ifx\SOUL@@~%
\SOUL@doword
\SOUL@eventuallyexhyphen\null
\SOUL@everyspace{\nobreak}%
\else\ifx\SOUL@@\slash
\SOUL@doword
\SOUL@eventuallyexhyphen{/}%
\SOUL@exhyphen{/}%
\else\ifx\SOUL@@\mbox
\def\SOUL@n*{\SOUL@addprotect}%
\else\ifx\SOUL@@\hbox
\def\SOUL@n*{\SOUL@addprotect}%
\else\ifx\SOUL@@\soulomit
\def\SOUL@n*\soulomit##1{%
\SOUL@doword
{\spaceskip\SOUL@spaceskip##1}%
\SOUL@scan
}%
\else\ifx\SOUL@@\break
\SOUL@doword
\break
\else\ifx\SOUL@@\linebreak
\SOUL@doword
\SOUL@everyspace{\linebreak}%
\else\ifcat\bgroup\noexpand\SOUL@@
\def\SOUL@n*{\SOUL@addgroup{}}%
\else\ifcat$\noexpand\SOUL@@
\def\SOUL@n*{\SOUL@addmath}%
\else
\SOuL@analyzeutfviii
\ifcase\SOuL@octets
\SOuL@analyzeutfviiix
\fi
\ifcase\SOuL@octets
\def\SOUL@n*{\SOUL@dotoken}%
\or % 1
\or % 2
\def\SOUL@n*{\SOuL@addtwooctets}%
\or % 3
\def\SOUL@n*{\SOuL@addthreeoctets}%
\or % 4
\def\SOUL@n*{\SOuL@addfouroctets}%
\fi
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\fi\fi\fi\fi
\SOUL@n*%
}
\def\SOuL@defsanitizedstring#1#2{%
\expandafter\def\csname SOuL@string#1\endcsname{#2}%
\expandafter\@onelevel@sanitize\csname SOuL@string#1\endcsname
}
\SOuL@defsanitizedstring{UTFviii}{UTFviii@}
\SOuL@defsanitizedstring{octets}{@octets}
\SOuL@defsanitizedstring{two}{two}
\SOuL@defsanitizedstring{three}{three}
\SOuL@defsanitizedstring{four}{four}
\SOuL@defsanitizedstring{macrocolon}{macro:}
\SOuL@defsanitizedstring{csnameu}{csname u8-}
\SOuL@defsanitizedstring{undeferr}{utf@viii@undeferr}
\def\SOuL@stringendash{^^e2^^80^^93}
\def\SOuL@stringemdash{^^e2^^80^^94}
\def\SOuL@stringnobreakspace{^^c2^^a0}
\edef\SOuL@charhash{\string #}
\edef\SOuL@chartwo{\string 2}
\edef\SOuL@charthree{\string 3}
\def\SOuL@empty{}
\begingroup
\edef\x{\endgroup
\def\noexpand\SOuL@analyzeutfviii{%
\noexpand\expandafter\noexpand\SOuL@checkutfviii
\noexpand\meaning\noexpand\SOUL@@
\SOuL@stringUTFviii\SOuL@stringoctets
\noexpand\@nil
}%
\def\noexpand\SOuL@checkutfviii
##1\SOuL@stringUTFviii##2\SOuL@stringoctets##3\noexpand\@nil
}%
\x{%
\def\SOuL@temp{#2}%
\chardef\SOuL@octets=%
\ifx\SOuL@temp\SOuL@stringtwo
\tw@
\else\ifx\SOuL@temp\SOuL@stringthree
\thr@@
\else\ifx\SOuL@temp\SOuL@stringfour
4 %
\else
\z@
\fi\fi\fi
}
\begingroup
\edef\x{\endgroup
\def\noexpand\SOuL@analyzeutfviiix{%
\noexpand\expandafter\noexpand\SOuL@checkutfviiix
\noexpand\meaning\noexpand\SOUL@@
\SOuL@stringmacrocolon\SOuL@charhash1{}{}{}{}%
\SOuL@stringcsnameu\SOuL@stringundeferr
\noexpand\@nil
}%
\def\noexpand\SOuL@checkutfviiix
##1\SOuL@stringmacrocolon\SOuL@charhash1##2##3##4##5##6%
\SOuL@stringcsnameu##7\SOuL@stringundeferr##8\noexpand\@nil
}%
\x{%
\def\SOuL@temp{#7}%
\ifx\SOuL@temp\SOuL@empty
\chardef\SOuL@octets=\z@
\else
\def\SOuL@temp{#5}%
\ifx\SOuL@temp\SOuL@charthree
\chardef\SOuL@octets=4 %
\else
\def\SOuL@temp{#3}%
\ifx\SOuL@temp\SOuL@chartwo
\chardef\SOuL@octets=\thr@@
\else
\chardef\SOuL@octets=\tw@
\fi
\fi
\fi
}
\def\SOuL@addtwooctets#1#2{%
\def\SOuL@temp{#1#2}%
\@onelevel@sanitize\SOuL@temp
\ifx\SOuL@temp\SOuL@stringnobreakspace
\SOUL@doword
\SOUL@eventuallyexhyphen\null
\SOUL@everyspace{\nobreak}%
\let\SOuL@next\SOUL@scan
\else
\def\SOuL@next{%
! \SOUL@addtoken{{\noexpand#1\noexpand#2}}%
+ \SOUL@addtoken{{\etex@unexpanded{#1#2}}}%
}%
\fi
\SOuL@next
}
\def\SOuL@addthreeoctets#1#2#3{%
\def\SOuL@temp{#1#2#3}%
\@onelevel@sanitize\SOuL@temp
\ifx\SOuL@temp\SOuL@stringendash
\SOUL@doword
\SOUL@eventuallyexhyphen{-}%
\SOUL@exhyphen{--}%
\let\SOuL@next\SOUL@scan
\else
\ifx\SOuL@temp\SOuL@stringemdash
\SOUL@doword
\SOUL@eventuallyexhyphen{-}%
\SOUL@exhyphen{---}%
\let\SOuL@next\SOUL@scan
\else
\def\SOuL@next{%
! \SOUL@addtoken{{\noexpand#1\noexpand#2\noexpand#3}}%
+ \SOUL@addtoken{{\etex@unexpanded{#1#2#3}}}%
}%
\fi
\fi
\SOuL@next
}
\def\SOuL@addfouroctets#1#2#3#4{%
! \SOUL@addtoken{{\noexpand#1\noexpand#2\noexpand#3\noexpand#4}}%
+ \SOUL@addtoken{{\etex@unexpanded{#1#2#3#4}}}%
}
\SOuL@redefine\SOUL@splittoken#1#2\SOUL@stop{%
\global\SOUL@token={#1}%
\global\SOUL@word={#2}%
}#1{%
\global\SOUL@token={#1}%
\SOuL@remainingtoken\relax
}
\def\SOuL@remainingtoken#1\SOUL@stop{%
\global\SOUL@word=\expandafter{\@gobble#1}%
}
\SOuL@redefine\SOUL@flushcomma{%
\ifcase\SOUL@comma
\or
\edef\x{\SOUL@word={\the\SOUL@word,}}\x
\or
\edef\x{\SOUL@word={\the\SOUL@word{{,,}}}}\x
\fi
\SOUL@comma\z@
}{%
\ifcase\SOUL@comma
\or
\edef\x{\SOUL@word={\the\SOUL@word,}}\x
\or
\edef\x{\SOUL@word={\the\SOUL@word{,,}}}\x
\fi
\SOUL@comma\z@
}
\SOuL@redefine\SOUL@flushapo{%
\ifcase\SOUL@apo
\or
\edef\x{\SOUL@word={\the\SOUL@word'}}\x
\or
\edef\x{\SOUL@word={\the\SOUL@word{{''}}}}\x
\fi
\SOUL@apo\z@
}{%
\ifcase\SOUL@apo
\or
\edef\x{\SOUL@word={\the\SOUL@word'}}\x
\or
\edef\x{\SOUL@word={\the\SOUL@word{''}}}\x
\fi
\SOUL@apo\z@
}
\SOuL@redefine\SOUL@flushgrave{%
\ifcase\SOUL@grave
\or
\edef\x{\SOUL@word={\the\SOUL@word`}}\x
\or
\edef\x{\SOUL@word={\the\SOUL@word{{``}}}}\x
\fi
\SOUL@grave\z@
}{%
\ifcase\SOUL@grave
\or
\edef\x{\SOUL@word={\the\SOUL@word`}}\x
\or
\edef\x{\SOUL@word={\the\SOUL@word{``}}}\x
\fi
\SOUL@grave\z@
}
\SOuL@redefine\SOUL@addgroup#1#2{%
{%
\let\protect\noexpand
\edef\x{%
\global\SOUL@word={%
\the\SOUL@word
{{\noexpand#1#2}}%
}%
}%
\x
}%
\SOUL@scan
}#1#2{%
\begingroup
\let\protect\noexpand
\edef\x{\endgroup
\SOUL@word={%
\the\SOUL@word
! {\noexpand#1{#2}}%
+ {\etex@unexpanded{#1{#2}}}%
}%
}%
\x
\SOUL@scan
}
\SOuL@redefine\SOUL@addmath$#1${%
{%
\let\protect\noexpand
\edef\x{%
\global\SOUL@word={%
\the\SOUL@word
{{\hbox{$#1$}}}%
}%
}%
\x
}%
\SOUL@scan
}$#1${%
\begingroup
\let\protect\noexpand
\edef\x{\endgroup
\SOUL@word={%
\the\SOUL@word
! {\hbox{$#1$}}%
+ {\etex@unexpanded{\hbox{$#1$}}}%
}%
}%
\x
\SOUL@scan
}
\SOuL@redefine\SOUL@addprotect#1#2{%
{%
\let\protect\noexpand
\edef\x{%
\global\SOUL@word={%
\the\SOUL@word
{{\hbox{#2}}}%
}%
}%
\x
}%
\SOUL@scan
}#1#2{%
\begingroup
\let\protect\noexpand
\edef\x{\endgroup
\SOUL@word={%
\the\SOUL@word
! {\hbox{#2}}%
+ {\etex@unexpanded{\hbox{#2}}}%
}%
}%
\x
\SOUL@scan
}
+ \SOuL@redefine\SOUL@addtoken#1{%
+ \edef\x{%
+ \SOUL@word={%
+ \the\SOUL@word
+ \noexpand#1%
+ }%
+ }%
+ \x
+ \SOUL@scan
+ }#1{%
+ \edef\x{%
+ \SOUL@word={%
+ \the\SOUL@word
+ \etex@unexpanded{#1}%
+ }%
+ }%
+ \x
+ \SOUL@scan
+ }%
\SOuL@AtEnd%
\endinput
%%
%% End of file `soulutf8.sty'.