phd/tlsflyleaf/shadowtext.sty

81 lines
2.5 KiB
TeX

%% This is file `shadowtext.sty',
%% Copyright 2012 Yori Zwols
%
% This work 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 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Y. Zwols.
%
%
% Version history
% v0.3: - Fixed some errors in the documentation
% - Colors specified in \shadowcolor should now be specified using
% color names, not RGB values. The command for specifying colors
% using RGB values has been renamed to \shadowrgb.
% (I apologize for the backwards incompatibility).
% - The base line of the text is now correct.
%
\NeedsTeXFormat{LaTeX2e}[1996/12/01]
\ProvidesPackage{shadowtext}
[2012/05/07 v0.3 Shadow Text]
\RequirePackage{color}
\makeatletter
\newlength\st@shadowoffsetx
\newlength\st@shadowoffsety
\st@shadowoffsetx=1pt
\st@shadowoffsety=1pt
\newcommand\shadowoffset[1]{\setlength\st@shadowoffsetx{#1}\setlength\st@shadowoffsety{#1}}
\newcommand\shadowoffsetx[1]{\setlength\st@shadowoffsetx{#1}}
\newcommand\shadowoffsety[1]{\setlength\st@shadowoffsety{#1}}
\newcommand\shadowcolor[1]{\def\st@shadowcolor{#1}}
\newcommand\shadowrgb[1]{\definecolor{st@shadowcolorrgb}{rgb}{#1}\shadowcolor{st@shadowcolorrgb}}
\shadowrgb{0.66,0.66,0.66}
\newlength\st@temp@width
\newlength\st@temp@height
\newlength\st@pic@width
\newlength\st@pic@height
\newcommand\shadowtext[1]%
{%
\begingroup%
\settowidth{\st@temp@width}{#1}%
\settoheight{\st@temp@height}{#1}%
\setlength{\st@pic@width}{\st@temp@width}%
\setlength{\st@pic@height}{\st@temp@height}%
\addtolength{\st@pic@width}{\st@shadowoffsetx}%
\addtolength{\st@pic@height}{\st@shadowoffsety}%
%
\edef\num@tw{\strip@pt\st@temp@width}%
\edef\num@th{\strip@pt\st@temp@height}%
\edef\num@pw{\strip@pt\st@pic@width}%
\edef\num@ph{\strip@pt\st@pic@height}%
\edef\num@offsetx{\strip@pt\st@shadowoffsetx}%
\edef\num@offsety{\strip@pt\st@shadowoffsety}%
\raisebox{-\st@shadowoffsety}{
\begin{picture}(\num@pw,\num@ph)(0,0)
\put(\num@offsetx,0){\makebox(\num@tw,\num@th)[tl]{\color{\st@shadowcolor}\def\color##1{}\ignorespaces #1}}
\put(0,\num@offsety){\makebox(\num@tw,\num@th)[tl]{\ignorespaces #1}}
\end{picture}}%
\endgroup%
\ignorespaces%
}
\makeatother