diff options
author | Karl Berry <karl@freefriends.org> | 2008-07-12 00:58:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-07-12 00:58:13 +0000 |
commit | b644be7550076c874437a062a31c63be6daaa12e (patch) | |
tree | c65475d5cd98a50d3b77049242bb980d75d3554d /Master/texmf-dist/tex/latex/cjk/CJKfntef.sty | |
parent | 438c86541627788f5c36d5af5d2fdd2682bf4d4c (diff) |
cjk 4.8.0 update (named CJK before)
git-svn-id: svn://tug.org/texlive/trunk@9456 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/cjk/CJKfntef.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/cjk/CJKfntef.sty | 416 |
1 files changed, 416 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/cjk/CJKfntef.sty b/Master/texmf-dist/tex/latex/cjk/CJKfntef.sty new file mode 100644 index 00000000000..5cf65d2fbfe --- /dev/null +++ b/Master/texmf-dist/tex/latex/cjk/CJKfntef.sty @@ -0,0 +1,416 @@ +% This is the file CJKfntef.sty of the CJK package +% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e +% +% created by Wenchang Sun <sunwch@hotmail.com> +% Werner Lemberg <wl@gnu.org> +% +% Version 4.8.0 (22-May-2008) +% +% Macros: +% \CJKunderdot{...} +% \CJKunderline[*]{...} +% \CJKunderdblline[*]{...} +% \CJKunderwave[*]{...} +% \CJKsout[*]{...} +% \CJKxout[*]{...} +% +% The following nesting combinations are allowed: +% +% \CJKunderdot{...\CJKunderline[*]{...}...} +% \CJKunderdot{...\CJKunderdblline[*]{...}...} +% \CJKunderdot{...\CJKunderwave[*]{...}...} +% \CJKunderdot{...\CJKsout[*]{...}...} +% \CJKunderdot{...\CJKxout[*]{...}...} +% +% \CJKunderline[*]{...\CJKunderdot{...}...} +% \CJKunderdblline[*]{...\CJKunderdot{...}...} +% \CJKunderwave[*]{...\CJKunderdot{...}...} +% \CJKsout[*]{...\CJKunderdot{...}...} +% \CJKxout[*]{...\CJKunderdot{...}...} +% +% Environment: +% CJKfilltwosides + +% Copyright (C) 1994-2008 Werner Lemberg <wl@gnu.org> +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program in doc/COPYING; if not, write to the Free +% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +% MA 02110-1301 USA + +\NeedsTeXFormat{LaTeX2e}[1998/06/01] +\def\fileversion{4.8.0} +\def\filedate{2008/05/22} +\ProvidesPackage{CJKfntef}[\filedate\space\fileversion] + +\RequirePackage{CJK} +\RequirePackage{CJKulem} + + +\endlinechar \m@ne + +\ifx\CJKpunctsymbol\undefined + \PackageWarning{CJKfntef}{ + You need to download the last version of the CJK package\MessageBreak + to keep CJK punctuation from being underdotted} + \let\CJKpunctsymbol\CJKsymbol +\fi + + +\newskip\CJK@fntefSkip +\newcount\CJK@nest +\newdimen\CJK@fntefDimen +\newbox\CJK@underdotBox +\newbox\CJK@ULbox + +\newif\ifCJK@UL@ +\CJK@UL@false +\newif\ifCJK@sxout@ +\CJK@sxout@false + + +\newcommand{\CJKunderdotbasesep}{0.05em} +\newcommand{\CJKunderdotsep}{0.04em} +\newcommand{\CJKunderlinebasesep}{0.20em} +\newcommand{\CJKunderlinesep}{0.07em} +\newcommand{\CJKunderdbllinebasesep}{0.20em} +\newcommand{\CJKunderdbllinesep}{0.17em} +\newcommand{\CJKunderwavebasesep}{0.20em} +\newcommand{\CJKunderwavesep}{0.00em} +\newcommand{\CJKsoutheight}{0.35em} + + +\ifx\color\undefined + \def\CJKunderdotcolor{} + \def\CJKunderwavecolor{} + \def\CJKunderlinecolor{} + \def\CJKunderdbllinecolor{} + \def\CJKsoutcolor{} + \def\CJKxoutcolor{} +\else + \def\CJKunderdotcolor{\color{red}} + \def\CJKunderwavecolor{\color{blue}} + \def\CJKunderlinecolor{\color{blue}} + \def\CJKunderdbllinecolor{\color{blue}} + \def\CJKsoutcolor{\color{red}} + \def\CJKxoutcolor{\color{blue}} +\fi + + +% +% \CJKunderdot: +% Add a dot under every CJK non-punctuation character. The dot position +% can be controlled by redefining \CJKunderdotsep (for nesting) and +% \CJKunderdotbasesep. +% +% The dot color can be changed by redefining \CJKunderdotcolor. +% +\def\CJK@underdotSkip{\z@} + +\def\CJK@preUnderdot{ + \ifnum\CJK@nest = \z@ + \global\advance\CJK@fntefSkip \CJKunderdotbasesep + \fi + \global\advance\CJK@nest \@ne + + \xdef\CJK@underdotSkip{\the\CJK@fntefSkip} + \global\advance\CJK@fntefSkip \CJKunderdotsep + + \global\setbox\CJK@underdotBox\hbox{{ + \CJKunderdotcolor + {$\cdot$}}} + \global\advance\CJK@fntefSkip \ht\CJK@underdotBox + \global\advance\CJK@fntefSkip \dp\CJK@underdotBox} + +\def\CJK@postUnderdot{ + \global\advance\CJK@fntefSkip -\CJKunderdotsep + \global\advance\CJK@fntefSkip -\ht\CJK@underdotBox + \global\advance\CJK@fntefSkip -\dp\CJK@underdotBox + \gdef\CJK@underdotSkip{\z@} + + \global\advance\CJK@nest \m@ne + \ifnum\CJK@nest = \z@ + \global\advance\CJK@fntefSkip -\CJKunderdotbasesep + \fi} + +\newcommand{\CJKunderdot}[1]{ + \CJK@preUnderdot + + \global\let\CJK@underdotSymbol \CJKsymbol + \gdef\CJKsymbol##1{ + \CJK@underdotSymbol{##1} + \settowidth\CJK@fntefDimen{\CJK@underdotSymbol{##1}} + + \leavevmode + \rlap{ + \vbox to \z@ { + \vskip\CJK@underdotSkip + \hbox to \z@ { + \hskip -\CJK@fntefDimen + \hss + \copy\CJK@underdotBox + \hss} + \hskip -\CJK@fntefDimen + \vss}}} + #1 + \global\let\CJKsymbol \CJK@underdotSymbol + + \CJK@postUnderdot + \ignorespaces} + + +% +% Auxiliary macros needed by \CJKunderline and friends. +% +\def\UL@CJKpunctnobreakglue{ + \ifx\ \LA@space + \LA@CJKglue + \else + \egroup + \UL@stop + \UL@start + \bgroup + \fi} + +\def\CJK@fntefSave{ + \global\let\UL@UL@CJKnobreakglue \UL@CJKnobreakglue + \global\let\UL@CJKsymbol \CJKsymbol + \global\let\UL@CJKpunctsymbol \CJKpunctsymbol} + +\def\CJK@fntefRestore{ + \global\let\UL@CJKnobreakglue \UL@UL@CJKnobreakglue + \global\let\CJKsymbol \UL@CJKsymbol + \global\let\CJKpunctsymbol \UL@CJKpunctsymbol} + +\def\CJK@preUL{ + \ifCJK@UL@ + \PackageError{CJKfntef} + {Nesting error} + {Nesting \string\CJKunderwave[*], \string\CJKunderline[*], + \string\CJKsout[*], \string\CJKxout[*],\MessageBreak + or \string\CJKunderdblline[*] is not supported.} + \else + \global\CJK@UL@true + \fi + \ifCJK@sxout@ + \gdef\CJK@ULskip{\z@} + \else + \ifnum\CJK@nest = \z@ + \global\advance\CJK@fntefSkip \CJK@ULbasesep + \fi + \global\advance\CJK@nest \@ne + + \global\advance\CJK@fntefSkip \ht\CJK@ULbox + \global\advance\CJK@fntefSkip \dp\CJK@ULbox + + \xdef\CJK@ULskip{\the\CJK@fntefSkip} + \global\advance\CJK@fntefSkip \CJK@ULsep + \fi} + +\def\CJK@postUL{ + \global\CJK@UL@false + + \ifCJK@sxout@ + \global\CJK@sxout@false + \else + \global\advance\CJK@fntefSkip -\CJK@ULsep + \global\advance\CJK@fntefSkip -\ht\CJK@ULbox + \global\advance\CJK@fntefSkip -\dp\CJK@ULbox + + \global\advance\CJK@nest \m@ne + \ifnum\CJK@nest = \z@ + \global\advance\CJK@fntefSkip -\CJK@ULbasesep + \fi + \fi} + +\def\CJK@UL{ + \CJK@preUL + \CJK@fntefSave + + \global\let\UL@CJKnobreakglue \UL@CJKpunctnobreakglue + \gdef\CJKsymbol{ + \gdef\UL@leadtype{\leaders\copy\ULC@box} + \UL@CJKsymbol} + \gdef\CJKpunctsymbol{ + \gdef\UL@leadtype{} + \UL@CJKpunctsymbol} + + \bgroup + \markoverwith{ + \lower\CJK@ULskip\copy\CJK@ULbox} + \aftergroup\CJK@fntefRestore + \aftergroup\CJK@postUL + \ULon} + +\def\CJK@@UL{ + \CJK@preUL + \bgroup + \markoverwith{ + \lower\CJK@ULskip\copy\CJK@ULbox} + \aftergroup\CJK@postUL + \ULon} + + +% +% \CJKunderwave*: +% The same as \uwave except that the wavy line is colored (you can change +% the color by redefining \CJKunderwavecolor), and the position can be +% controlled by redefining \CJKunderwavesep (for nesting) and +% \CJKunderwavebasesep. +% +% \CJKunderwave: +% The same as \CJKunderwave* but ignoring CJK punctuation characters. +% +\newcommand{\CJKunderwave}{ + \global\let\CJK@ULsep \CJKunderwavesep + \global\let\CJK@ULbasesep \CJKunderwavebasesep + \global\setbox\CJK@ULbox\hbox{{ + \CJKunderwavecolor + \sixly + \char 58}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% \CJKunderline*: +% The same as \uline except that the line is colored (you can change the +% color by redefining \CJKunderlinecolor), and the position can be +% controlled by redefining \CJKunderlinesep (for nesting) and +% \CJKunderlinebasesep. +% +% \CJKunderline: +% The same as \CJKunderline* but ignoring CJK punctuation characters. +% +\newcommand{\CJKunderline}{ + \global\let\CJK@ULsep \CJKunderlinesep + \global\let\CJK@ULbasesep \CJKunderlinebasesep + \global\setbox\CJK@ULbox\hbox{{ + \CJKunderlinecolor + \vtop{\hrule \@height \ULthickness \@width .2em}}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% \CJKunderdblline[*]: +% The same as \CJKunderline[*] except that two lines are used for +% underlining. +% +\newcommand{\CJKunderdblline}{ + \global\let\CJK@ULsep \CJKunderdbllinesep + \global\let\CJK@ULbasesep \CJKunderdbllinebasesep + + \global\setbox\CJK@ULbox\hbox{{ + \CJKunderdbllinecolor + \vtop{ + \kern -.07em + \hrule \@height\ULthickness \@width .2em + \kern 1.1\p@ + \hrule}}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% \CJKsout*: +% The same as \sout except that the line is colored (you can change the +% color by redefining \CJKsoutcolor), and the position can be controlled +% by redefining \CJKsoutheight. +% +% \CJKsout: +% The same as \CJKsout* but ignoring CJK punctuation characters. +% +\def\CJKsout{ + \global\CJK@sxout@true + \global\setbox\CJK@ULbox\hbox{{ + \CJKsoutcolor + \vtop{ + \kern -\CJKsoutheight + \hrule \@height\ULthickness \@width .2em}}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% \CJKxout*: +% The same as \xout except using colored `/' (you can change the color +% by redefining \CJKxoutcolor). +% +% \CJKxout: +% The same as \CJKxout* but ignoring CJK punctuation characters. +% +\def\CJKxout{ + \global\CJK@sxout@true + \global\setbox\CJK@ULbox\hbox{{ + \kern -0.1em + {\CJKxoutcolor $/$} + \kern -0.1em}} + + \@ifstar\CJK@@UL\CJK@UL} + + +% +% CJKfilltwosides environment: +% Align CJK characters to fill two sides. +% +% Usage: +% \begin{CJKfilltwosides}{width} +% first line \\ +% second line \\ +% ... \\ +% last line +% \end{CJKfilltwosides} +% +\newif\ifCJK@fillbegin@ +\global\CJK@fillbegin@false +\newif\ifCJK@filltwosides@ +\global\CJK@filltwosides@false + +\newenvironment{CJKfilltwosides}[1]{ + \leavevmode + \vbox\bgroup + \global\CJK@filltwosides@true + \global\let\CJK@filltwosidesSymbol \CJKsymbol + + \def\CJK@ftscr{ + \egroup + \global\CJK@fillbegin@false + \hbox to #1\bgroup + \ignorespaces} + + \let\\ \CJK@ftscr + + \def\CJKsymbol##1{ + \ifCJK@fillbegin@ + \hfill + \CJK@filltwosidesSymbol{##1} + \else + \CJK@filltwosidesSymbol{##1} + \global\CJK@fillbegin@true + \fi} + + \hbox to #1\bgroup + \ignorespaces + }{ + \egroup + \egroup + + \global\let\CJKsymbol \CJK@filltwosidesSymbol + \global\CJK@fillbegin@false + \global\CJK@filltwosides@false} + + +\endlinechar `\^^M + +\endinput |