diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:10:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:10:31 +0000 |
commit | 67b7a984ef15dda418a5e60c70f633d6e0920fe0 (patch) | |
tree | 2f0e695f7b743ae609c7e70541abb87529d7bf14 /Master/texmf-dist/tex/latex/umoline | |
parent | 095ab19873ced989ab72ea38a5537cd98c817ec7 (diff) |
umoline
git-svn-id: svn://tug.org/texlive/trunk@1425 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/umoline')
-rw-r--r-- | Master/texmf-dist/tex/latex/umoline/umoline.sty | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/umoline/umoline.sty b/Master/texmf-dist/tex/latex/umoline/umoline.sty new file mode 100644 index 00000000000..f8f577b6e8e --- /dev/null +++ b/Master/texmf-dist/tex/latex/umoline/umoline.sty @@ -0,0 +1,215 @@ +%% +%% This is file `umoline.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% umoline.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from umoline.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file umoline.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% Style file `umoline'. +%% Copyright (C) 1999,2000 Hiroshi Nakashima <nakasima@tutics.tut.ac.jp> +%% (Toyohashi Univ. of Tech.) +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or any later version. +%% +%% \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 \~} +%% +%% +\def\next{LaTeX2e} +\ifx\fmtname\next +\def\next{ +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +\ProvidesPackage{umoline}} +\else\def\next[#1]{}\fi +\next +[2000/07/11 v1.1 ] + +\ifx\PackageError\undefined +\def\PackageError#1#2#3{\@latexerr{#1:#2}{#3^^J\@ehc}} +\fi + +%%^L + +%% Register Declaration + +\newdimen\UnderlineDepth \UnderlineDepth-\maxdimen +\newdimen\MidlineHeight \MidlineHeight-\maxdimen +\newdimen\OverlineHeight \OverlineHeight-\maxdimen +\newdimen\UMOlineThickness \UMOlineThickness.4pt + +\newdimen\UMO@height \newdimen\UMO@depth + +\newcount\UMO@spacefactor + +\newif\ifUMO@nospace + +%%^L + +%% User Interface and Initialization + +\def\MidlineChar{\def\UMO@midlinechar} +\MidlineChar{-} + +\def\Underline{\UMO@line\UnderlineDepth{-\UnderlineDepth}{-\dp\strutbox}} +\def\Midline{\setbox\@tempboxa\hbox{\UMO@midlinechar}% + \UMO@line\MidlineHeight\MidlineHeight{.5\ht\@tempboxa}} +\def\Overline{\UMO@line\OverlineHeight\OverlineHeight{\ht\strutbox}} +\def\UMOline{\UMO@line{-\maxdimen}\z@} + +\def\UMO@line#1#2#3#4{\begingroup \let\\\UMOnewline + \ifdim#1<\z@ \UMO@height#3\relax + \else \UMO@height#2\relax \fi + \UMO@depth-\UMO@height + \ifdim\UMO@height<\z@ \advance\UMO@depth\UMOlineThickness + \else \advance\UMO@height\UMOlineThickness \fi + \UMO@nospacetrue + \ifvmode\leavevmode\fi \UMO@spacefactor\spacefactor + \def\@tempa{#4 }\edef\@tempb{\noexpand\@nil\space}% + \expandafter\expandafter\expandafter\UMO@wordloop + \expandafter\@tempa\@tempb + \endgroup \UMO@aftergroup} + +%%^L + +%% Processing Word Elements + +\def\UMO@wordloop{\UMO@ifbgroup\UMO@wordblock\UMO@iwordloop} +\def\UMO@ifbgroup#1#2{\let\@tempa#1\let\@tempb#2\futurelet\@tempc\UMO@ifnc} +\def\UMO@ifnc{\ifx\@tempc\bgroup \let\next\@tempa \else\let\next\@tempb \fi + \next} +\def\UMO@wordblock#1{\UMO@spaceskip + \def\UMO@theword{#1}\UMO@putword \UMO@nospacetrue + \UMO@wordloop} +\def\UMO@iwordloop#1 {\def\@tempa{#1}\ifx\@tempa\@nnil \let\next\UMO@end + \else\ifx\@tempa\empty \else + \UMO@spaceskip + \def\UMO@theword{}\UMO@charloop#1\@nil\fi + \UMO@nospacefalse \let\next\UMO@wordloop \fi + \next} + +\def\UMO@charloop{\UMO@ifbgroup\UMO@charblock\UMO@icharloop} +\def\UMO@charblock#1{\UMO@putword + \def\UMO@theword{#1}\UMO@putword + \UMO@charloop} +\def\UMO@icharloop#1{\def\@tempa{#1}% + \ifx\@tempa\@nnil \UMO@putword \let\next\relax + \else\ifx\UMOspace#1\relax \UMO@putword \let\next\UMO@space + \else\ifx\UMOnewline#1\relax \UMO@putword \let\next\UMO@newline + \else\edef\UMO@theword{\UMO@theword#1}% + \let\next\UMO@charloop \fi\fi\fi \next} +\def\UMOspace{\PackageError{jumoline}% + {\string\UMOspace\space cannot be used here.}% + {\string\UMOspace\space can be used only in the argument of + \string\Underline\space and its relatives.}} +\def\UMOnewline{\PackageError{jumoline}% + {\string\UMOnewline\space cannot be used here.}% + {\string\UMOnewline\space can be used only in the argument of + \string\Underline\space and its relatives.}} + +%%^L + +%% Interword Spacing + +\def\UMO@spaceskip{\ifUMO@nospace\else + \ifdim\spaceskip=\z@ + \@tempdima\fontdimen3\font\relax + \multiply\@tempdima\UMO@spacefactor \divide\@tempdima\@m + \@tempdimb\fontdimen4\font\relax \multiply\@tempdimb\@m + \divide\@tempdimb\UMO@spacefactor + \@tempskipa\fontdimen2\font plus\@tempdima minus\@tempdimb\relax + \else + \edef\@tempa{\the\spaceskip\space @ @ @ @ }% + \expandafter\UMO@setspaceskip\@tempa\@nil + \fi + \ifnum\UMO@spacefactor<2000\else + \ifdim\xspaceskip=\z@ \advance\@tempskipa\fontdimen7\font + \else \@tempskipa\xspaceskip + \fi\fi + \UMO@skip\@tempskipa \fi} +\def\UMO@setspaceskip#1 #2 #3 #4 #5 #6\@nil{\@tempdima\z@ \@tempdimb\z@ + \def\@tempa{#2}\def\@tempb{#3}% + \ifx\@tempa\UMO@plus \@tempdima#3\def\@tempa{#4}\def\@tempb{#5}\fi + \ifx\@tempa\UMO@minus \@tempdimb\@tempb\relax\fi + \multiply\@tempdima\UMO@specefactor \divide\@tempdima\@m + \multiply\@tempdimb\@m \divide\UMO@spacefactor + \@tempskipa#1 plus\@tempdima minus\@tempdimb\relax} +\def\@tempa#1 #2 #3 #4 #5\@nil{\def\UMO@plus{#2}\def\UMO@minus{#4}} +\@tempskipa1pt plus 2pt minus 3pt +\expandafter\@tempa\the\@tempskipa\@nil + +%%^L + +%% Draw Under/Mid/Overline + +\def\UMO@putword{\setbox\@tempboxa\hbox{\UMO@theword + \global\UMO@spacefactor\spacefactor}% + \@tempdima\wd\@tempboxa + \rlap{\vrule\@height\UMO@height\@depth\UMO@depth\@width\@tempdima}% + \box\@tempboxa\def\UMO@theword{}} +\def\UMO@skip#1{% + \leaders\hrule\@height\UMO@height\@depth\UMO@depth\hskip#1\relax} + +%%^L + +%% Explicit Spacing and Line Breaking + +\def\UMO@space{\@ifstar\UMO@sspace\UMO@ispace} +\def\UMO@sspace#1{\vrule width\z@\nobreak\UMO@skip{#1}\UMO@charloop} +\def\UMO@ispace#1{\@tempskipa#1\relax + \@ifstar{\@tempswafalse\UMO@iispace}{\@tempswatrue\UMO@iispace}} +\def\UMO@iispace{\@ifnextchar[%] + {\UMO@penalty}% + {\UMO@skip\@tempskipa \UMO@charloop}} +\def\UMO@penalty[#1]{\@tempcnta#1\relax + \if@tempswa + \ifnum\@tempcnta<\z@ \@tempcnta-\@tempcnta \fi + \ifcase\@tempcnta \or + \@tempcnta\@lowpenalty \or + \@tempcnta\@medpenalty \or + \@tempcnta\@highpenalty \else + \@tempcnta\@M \fi + \ifnum#1<\z@ \@tempcnta-\@tempcnta \fi \fi + \penalty\@tempcnta \UMO@skip\@tempskipa \UMO@charloop} + +\def\UMO@newline{\@ifstar{\UMO@skip{0pt plus1fil}\break \UMO@charloop}% + {\hfil \break \UMO@charloop}} + +%%^L + +%% Finalization + +\def\UMO@end{\xdef\UMO@aftergroup{\spacefactor\number\UMO@spacefactor}} +\endinput +%% +%% End of file `umoline.sty'. |