%PDF- %PDF-
| Direktori : /data/old/usr/share/texlive/texmf-dist/doc/latex/oberdiek/test/ |
| Current File : //data/old/usr/share/texlive/texmf-dist/doc/latex/oberdiek/test/soulutf8-test3.tex |
%%
%% This is file `soulutf8-test3.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% soulutf8.dtx (with options: `test3,utf8x')
%%
%% 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.
%%
\NeedsTeXFormat{LaTeX2e}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}
\usepackage[ngerman]{babel}
\expandafter\def\csname ver@hypdestopt.sty\endcsname{}
\usepackage[unicode]{hyperref}
\usepackage{bookmark}
\usepackage{color}
\usepackage{soul}[2003/11/17]
\makeatletter
\newcommand*{\@ifDefined}[1]{%
\@ifundefined{#1}{%
\@latex@error{%
\expandafter\noexpand\csname#1\endcsname undefined%
}\@ehc
}%
}
\newcommand*{\SaveOrg}[1]{%
\@ifdefinable{ORG@SOUL@#1}{%
\@ifDefined{SOUL@#1}{%
\expandafter\let\csname ORG@SOUL@#1\expandafter\endcsname
\csname SOUL@#1\endcsname
}%
}%
}
\newcommand*{\RestoreOrg}[1]{%
\@ifDefined{ORG@SOUL@#1}{%
\@ifDefined{SOUL@#1}{%
\expandafter\let\csname SOUL@#1\expandafter\endcsname
\csname ORG@SOUL@#1\endcsname
}%
}%
}
\makeatother
\SaveOrg{eval}
\SaveOrg{splittoken}
\SaveOrg{flushcomma}
\SaveOrg{flushapo}
\SaveOrg{grave}
\SaveOrg{addgroup}
\SaveOrg{addmath}
\SaveOrg{addprotect}
\SaveOrg{addtoken}
\usepackage{soulutf8}[2007/09/09]
\let\origshow\show
\usepackage[utf8x]{inputenc}
\AtBeginDocument{%
\let\show\origshow
}
\makeatletter
\DeclareRobustCommand*{\an}{%
\def\SOUL@preamble{$^{^P}$}%
\def\SOUL@everyspace##1{##1\texttt{\char`\ }\linebreak[2]}%
\def\SOUL@postamble{$^{^E}$}%
\def\SOUL@everyhyphen{$^{^-}$\linebreak[1]}%
\def\SOUL@everyexhyphen##1{##1$^{^=}$}%
\def\SOUL@everysyllable{$^{^S}$}%
\def\SOUL@everytoken{\the\SOUL@token$^{^T}$}%
\def\SOUL@everylowerthan{$^{^L}$}%
\SOUL@
}
\DeclareRobustCommand*{\sy}{%
\SOUL@setup
\def\SOUL@preamble{%
\lefthyphenmin=\z@
\righthyphenmin=\z@
}%
\def\SOUL@everyspace##1{##1\space}%
\def\SOUL@everysyllable{\the\SOUL@syllable}%
\def\SOUL@everyhyphen{%
\discretionary{%
\SOUL@setkern\SOUL@hyphkern
\SOUL@sethyphenchar
}{}{%
\hbox{\kern1pt$\cdot$}%
}%
}%
\def\SOUL@everyexhyphen##1{%
\SOUL@setkern\SOUL@hyphkern
\hbox{##1}%
\discretionary{}{}{%
\SOUL@setkern\SOUL@charkern
}%
}%
\SOUL@
}
\DeclareRobustCommand*{\soulH}{%
\def\SOUL@preamble{%
\gdef\SOULH{}%
\soulHadd{[}%
}%
\def\SOUL@everyspace##1{%
\soulHadd{Sp}%
}%
\def\SOUL@postamble{%
\soulHadd{]}%
}%
\def\SOUL@everyhyphen{%
\soulHadd{Hy}%
}%
\def\SOUL@everyexhyphen##1{%
\soulHadd{Exhy}%
}%
\def\SOUL@everysyllable{%
\soulHadd{Sy}%
}%
\def\SOUL@everytoken{%
\soulHadd{T}%
}%
\def\SOUL@everylowerthan{%
\soulHadd{<}%
}%
\SOUL@
}
\newcommand*{\soulHadd}[1]{%
#1%
\expandafter\gdef\expandafter\soulHstring\expandafter{%
\soulHstring
#1%
}%
}
\usepackage{qstest}
\IncludeTests{*}
\LogTests{log}{*}{*}
\newsavebox\boxA
\newsavebox\boxB
\newsavebox\boxC
\newcommand*{\TestDriver}[4]{%
\subsection{Driver #1}%
\@PackageInfo{soulutf8-test}{* Driver #1}%
\expandafter\let\expandafter\testdriver\csname #1\endcsname
\def\teststringA{#3}%
\def\teststringB{#4}%
\begin{qstest}{string-#2-driver-#1}{string,#2,driver,#1}%
\@PackageInfo{soulutf8-test}{* Version: soulutf8}%
\global\let\soulHstring\@empty
\setbox0=\hbox{\expandafter\testdriver\expandafter{\teststringA}}%
\let\HstringA\soulHstring
\SetTestVBox{\boxA}{\teststringA}%
%
\@PackageInfo{soulutf8-test}{* Version: soul + patch}%
\global\let\soulHstring\@empty
\RestoreOrg{eval}%
\setbox2=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
\let\HstringB\soulHstring
\SetTestVBox{\boxB}{\teststringB}%
%
\@PackageInfo{soulutf8-test}{* Version: original soul}%
\global\let\soulHstring\@empty
\RestoreOrg{splittoken}%
\RestoreOrg{flushcomma}%
\RestoreOrg{flushapo}%
\RestoreOrg{grave}%
\RestoreOrg{addgroup}%
\RestoreOrg{addmath}%
\RestoreOrg{addprotect}%
\RestoreOrg{addtoken}%
\setbox4=\hbox{\expandafter\testdriver\expandafter{\teststringB}}%
\let\HstringC\soulHstring
\SetTestVBox{\boxC}{\teststringB}%
%
\TestInfo{0}{soulutf8}%
\TestInfo{2}{soul + patch}%
\TestInfo{4}{original soul}%
\TestInfoVBox
\showboxdepth=\maxdimen
\showboxbreadth=\maxdimen
\tracingonline=\@ne
\Expect*{\HstringA}*{\HstringB}%
\Expect*{\HstringA}*{\HstringC}%
\Expect*{\the\wd0}*{\the\wd2}%
\ifdim\wd0=\wd2 %
\else
\showbox0 %
\showbox2 %
\fi
\Expect*{\the\ht0}*{\the\ht2}%
\Expect*{\the\dp0}*{\the\dp2}%
\Expect*{\the\wd\boxB}*{\the\wd\boxA}%
\Expect*{\the\wd\boxC}*{\the\wd\boxA}%
\Expect*{\the\ht\boxB}*{\the\ht\boxA}%
\ifdim\ht\boxB=\ht\boxA
\else
\showbox\boxA
\showbox\boxB
\fi
\Expect*{\the\ht\boxC}*{\the\ht\boxA}%
\Expect*{\the\dp\boxB}*{\the\dp\boxA}%
\Expect*{\the\dp\boxC}*{\the\dp\boxA}%
\end{qstest}%
}
\newcommand*{\SetTestVBox}[2]{%
\setbox#1=\vbox{%
\hsize=0pt\relax
\hfuzz=100mm\relax
\expandafter\testdriver\expandafter{#2}%
}%
}
\newcommand*{\TestInfo}[2]{%
\par
\noindent
\copy#1\relax
\hfill
\begingroup
\small
\ifdim\wd0=\wd2\relax
\ifdim\wd0=\wd4\relax
\else
\ifnum#1=2 %
\raisebox{.5\baselineskip}[0pt][0pt]{%
\llap{$\}$ }%
\rlap{width = \the\wd#1\relax\space$\{$}%
\phantom{width = 999.99999pt}%
\qquad
}%
\else
\ifnum#1=4 %
\rlap{width = \the\wd#1}%
\phantom{width = 999.99999pt}%
\qquad
\fi
\fi
\fi
\else
\begingroup
\bfseries
\rlap{width = \the\wd#1}%
\phantom{width = 999.99999pt}%
\endgroup
\qquad
\fi
\rlap{(#2)}%
\phantom{(original soul)}%
\endgroup
\par
}
\newcommand*{\TestInfoVBox}{%
\par
\noindent
\mbox{\vrule\relax\space\copy\boxA}%
\ifdim\ht\boxA=\ht\boxB
\else
\hfill
\begingroup
\small
\rlap{(soulutf8)}%
\phantom{(soulutf8)}%
\endgroup
\par
\noindent
\mbox{\vrule\relax\space\copy\boxB}%
\hfill
\begingroup
\small
\rlap{(soul)}%
\phantom{(soulutf8)}%
\endgroup
\fi
\par
}
\makeatletter
\newcommand*{\Test}[3]{%
\clearpage
\begingroup
\def\linebreak{\textbackslash linebreak }%
\def\\{\textbackslash\textbackslash}%
\def\soulomit##1{%
\textbackslash soulomit\textbraceleft##1\textbraceright
}%
\def\mbox##1{%
\textbackslash mbox\textbraceleft##1\textbraceright
}%
\def\abc{\textbackslash abc }%
\def\texttt##1{%
\textbackslash texttt\textbraceleft##1\textbraceright
}%
\def\c##1{%
\textbackslash c\textbraceleft##1\textbraceright
}%
\count@=128 %
\loop
\ifnum\count@<256 %
\lccode`\~=\count@
\lowercase{%
\def~{\noexpand~}%
}%
\advance\count@\@ne
\repeat
\csname protected@edef\endcsname\x{\endgroup
\noexpand\section{String #1: #2}%
}%
\x
\TestDriver{so}{#1}{#2}{#3}%
\TestDriver{caps}{#1}{#2}{#3}%
\TestDriver{ul}{#1}{#2}{#3}%
\TestDriver{st}{#1}{#2}{#3}%
\TestDriver{hl}{#1}{#2}{#3}%
\TestDriver{an}{#1}{#2}{#3}%
\TestDriver{sy}{#1}{#2}{#3}%
\TestDriver{soulH}{#1}{#2}{#3}%
}
\makeatother
\begin{document}
\Test A{}{}%
\Test B{Hello World}{Hello World}%
\Test C{%
Umlauts: ^^c3^^84^^c3^^96^^c3^^9c^^c3^^a4^^c3^^b6^^c3^^bc^^c3^^9f%
}{%
Umlauts: \"A\"O\"U\"a\"o\"u\ss
}%
\Test D{Euro: ^^e2^^82^^ac}{Euro: \texteuro}%
\Test E{Stra^^c3^^9fe}{Stra\ss e}%
\Test F{R^^c3^^b6mer}{R\"omer}%
\Test G{A^^e2^^80^^93B^^e2^^80^^94C}{A--B---C}%
\Test H{X^^c2^^a0Y}{X~Y}%
\Test I{A^^c5^^a4}{A\v T}%
\Test J{A,B,,C,,,D,,,,E}{A,B,,C,,,D,,,,E}%
\Test K{A'B''C'''D''''E}{A'B''C'''D''''E}%
\Test L{A`B``C```D````E}{A`B``C```D````E}%
\Test M{A$x$B}{A$x$B}%
\Test N{A\mbox{abc}B}{A\mbox{abc}B}%
\Test O{,,TA''}{,,TA''}%
\Test P{{!`}Hola{?`}}{{!`}Hola{?`}}%
\Test Q{re-sent\slash x}{re-sent\slash x}%
\Test R{new\\line}{new\\line}%
\Test S{foo\linebreak bar}{foo\linebreak bar}%
\Test T{Virchow{sche}}{Virchow{sche}}%
\Test U{A\soulomit{foo}B}{A\soulomit{foo}B}%
\Test V{A\texttt{xyz}B}{A\texttt{xyz}B}%
\Test W{ffi}{ffi}%
\Test X{f{}f{}i}{f{}f{}i}%
\Test Y{f\mbox{}f\mbox{}i}{f\mbox{}f\mbox{}i}%
\Test Z{\c{\"a}}{{\c{\"a}}}%
\let\abcx\UNDEFINED
\def\abc{%
\begingroup
\def\abcx{x}%
\abcx
\endgroup
}%
\Test{AA}{[{x\abc x}]}{[{xxx}]}%
\end{document}
\endinput
%%
%% End of file `soulutf8-test3.tex'.