pdfwin_slides

效果:

slides.tex

  1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2 %
  3 %   Presentation for:
  4 %
  5 %   Workshop on Adaptive Filters in Bucure\c{s}ti / Romania
  6 %   (March 2003)
  7 %
  8 %   (c) Matthias M\"{u}hlich, 03/2003
  9 %
 10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 11
 12 % this file must be processed with pdflatex!
 13
 14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 15 % Shujun Li‘s template based on the example source file of pdfwin
 16 % enhanced with multimedia.sty of beamer package
 17 % and pdftricks.sty modified by Shujun Li.
 18 % If your TeX system does not install beamer package,
 19 % please download it at any mirror of CTAN ftp site or
 20 % beamer‘s official web site: http://latex-beamer.sourceforge.net
 21 % Reach Shujun Li via http://www.hooklee.com.
 22 % pdfwin.sty is downloadable at
 23 % http://www.uni-frankfurt.de/~muehlich/tex/texindex.html
 24 % and this template is downloadable at http://www.hooklee.com/tex.html.
 25 %                                       26 May, 2004
 26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 27
 28 \documentclass[english,pdftex]{article}
 29
 30 \input formats
 31
 32 \begin{document}
 33
 34 % produce panel TOC entry for title page
 35 \AddPanelTocEntry{Title Page}%
 36
 37 % title page
 38 \begin{center}
 39 % leading title
 40 {\scriptsize-- hooklee‘s \TeX{} contribution series
 41 --}\vspace*{0.5em}
 42
 43 % title
 44 {\LARGE\bfseries\color{titlecolor}
 45   hooklee‘s \TeX{} Template for Presentation based on
 46   \href{http://www.uni-frankfurt.de/~muehlich/tex/texindex.html}{\color{titlecolor}\textsl{pdfwin}} Package\ 47 } \vspace*{8mm}
 48 % author
 49 {\Large Shujun Li}\\[2.5ex]
 50 % affiliation and contact information
 51 Center for Chaos Control and Synchronization,\ 52 Department of Electronic Engineering,\ 53 City University of Hong Kong, HK SAR, China\ 54 \href{mailto:[email protected]}{\color{black}[email protected]}\ 55 \href{http://www.hooklee.com}{\color{black}http://www.hooklee.com}
 56 \end{center}
 57
 58 \tableofcontents
 59
 60 \section{Introduction}
 61
 62 % change text window style from normal (-> title page) to transparent
 63 % (-> rest of talk); must appear after page break, i.e. section command
 64 % ("sectionbreak" option for pdfwin produces page break at each \section
 65 % command)
 66 \SetWindow{text}{type=transparent, borderthickness=0.5mm}
 67
 68 There are many available solutions for slides in \TeX. The most
 69 comprehensive introduction on how to make slides (not only with
 70 \TeX) can be found at
 71 \href{http://www.miwie.org/presentations}{http://www.miwie.org/presentations},
 72 which is updated very frequently.
 73
 74 \vfill
 75
 76 You are suggest trying some solutions by yourself to find the most
 77 suitable for your slides.
 78
 79 \vfill
 80
 81 This template is used to show the integration of different \TeX{}
 82 slide solutions. Also, I hope it is useful for you to make a
 83 beautiful presentation with \TeX{} quickly.
 84
 85 \vfill
 86
 87 A formal example of this template can be found at
 88 \href{http://www.hooklee.com/Talks/DigitalChaos.pdf}{http://www.hooklee.com/Talks/DigitalChaos.pdf}.
 89
 90 \newpage
 91 \AddPanelTocEntry{Dynamic Pages}
 92
 93 % \inithighlight and \highlightnext are used to realize dynamic texts
 94 % When the number of the items is greater than 6,
 95 % you have to change the command \setcounter{maxdynamicpages}{6} in
 96 % pdfwin.cfg to change the number "6" to be your number
 97 \inithighlight{\section*{Dynamic Pages}
 98 \begin{itemize}
 99 %\itemsep=-1mm
100 \item {\color{color1} Item 1}
101
102 \item {\color{color2} Item 2}
103
104 \item {\color{color3} Item 3}
105
106 \item {\color{color4} Item 4}
107 \end{itemize}}
108
109 \highlightnext
110
111 % \pagenumbering is used to change the current page number to the second level
112 % it can be used anywhere to generate the effects of dynamic pages
113 \pagenumbering{incremental}
114
115 Item 1 ...
116
117 \highlightnext
118
119 Item 2 ...
120
121 \highlightnext
122
123 Item 3 ...
124
125 \highlightnext
126
127 Item 4 ...
128
129 \newpage
130 % this command is used to restore the page number to the normal level
131 \pagenumbering{restore}
132
133 \section[Enjoy \textsl{pstricks}]{Enjoy \textsl{pstricks} via \textsl{pdftricks}}
134
135 As we know, \textsl{pstricks} package is a powerful tool to draw
136 graphics via postscript language in \TeX, but it cannot work with
137 PDF\LaTeX. \textsl{pdftricks} package is to partially solve this
138 problem. Of course, such a solution is not complete and far from
139 prefect. You are suggested to transfer to other \TeX{} slide
140 packages, such as \textsl{prosper}, if you want to use
141 \textsl{pstricks} more fluently.
142
143 hooklee made some modifications on the original \textsl{pdftricks}
144 package to solve some compatibility problems and make the
145 background transparent by default.
146
147 \newpage
148 \subsection{An Example}
149
150 \begin{pdfpic}
151 % this command is to make the default font same as the main texts
152 \renewcommand{\rmdefault}{cmss}\normalfont
153 \Large % make the font size identical to the main text
154 % note that ".79\textwidth" is the current width of the Text Window
155 \noindent Note: following IEEE 754 standard, a 64-bit
156 floating-point number
157 $\rnode{Ss1}{b_{63}}\rnode{Se1}{\underline{b_{62}\cdots
158 b_{52}}}\rnode{Sm1}{b_{51}\cdots b_0}$ represents the following
159 binary real number (except for some special values)
160 \[
161 \overbrace{\rnode{Ss2}{\pm}\underbrace{1.\rnode{Sm2}{b_{51}\cdots
162 b_0}}_{\mbox{53 bits}}}^{\mbox{called mantissa}}\times
163 2^{\rnode{Se2}{b_{62}\cdots b_{52}}-1023}.
164 \]
165 \nccurve[linecolor=red,angleA=225,angleB=135]{<->}{Ss1}{Ss2}
166 \ncline[linecolor=red]{<->}{Se1}{Se2}\ncline[linecolor=red]{<->}{Sm1}{Sm2}
167 \end{pdfpic}
168
169 \vfill
170
171 Note: you \TeX{} system must be correctly configured to support
172 the mechanism of \textsl{pdftricks} package. For MiKTeX, you
173 should ensure ``\texttt{write18 = enable}" occurs in the file
174 \texttt{miktex.ini}. Also, you should ensure \texttt{ps2eps.pl}
175 and \texttt{bbox.exe} have been installed in your system. ChinaTeX
176 CD will be configured to contain such requirements.
177
178 \vfill
179
180 \section{Enjoy Multimedia}
181
182 \subsection{Basic Methods}
183
184 You can use a command of \textsl{hyperref} package to realize the
185 replay of a multimedia file. It is like the following:
186
187 \vfill
188
189 \footnotesize
190
191 \verb|\href{run:clock.avi}{Click here to run clock.avi}|
192
193 \normalsize
194
195 \vfill
196
197 \begin{center}
198     \href{run:clock.avi}{Click here to run clock.avi}
199 \end{center}
200
201 \vfill
202
203 In fact, you can also use \verb|\href{run:...}{}| to invoke a
204 program, such as Matlab for some demos.
205
206 \subsection{A Powerful Method: \textsl{multimedia} Package}
207
208 However, the above method does not support the function of
209 displaying the video within the pdf file itself, which is much
210 more attractive for our audience. A powerful tool can help us to
211 realize such a function: \textsl{multimedia} package, which is
212 provided with \textsl{beamer} (another cool \TeX{} slide package
213 available at
214 \href{http://latex-beamer.sourceforge.net}{http://latex-beamer.sourceforge.net}).
215 For details on how to use this package, please see
216 \textsl{beamer}‘s manual.
217
218 \begin{center}
219 \movie[label=clock,width=3cm,height=2cm,poster]{}{clock.avi}
220
221 \hyperlinkmovie[showcontrols=true]{clock}{Click here to start the
222 movie}
223 \end{center}
224
225 \section{更多功能?}
226
227 与~\textsl{pdfscreen}~类似,\textsl{pdfwin}~的一个显著优点是与其他~\TeX~宏包的兼容性较好。
228 您可以使用其他宏包,如~\textsl{ppower4}~宏包族增加~\textsl{pdfscreen}~中未提供的一些功能。
229 例如,您可以使用~\verb|pause.sty|~宏包创建更为简单的动态页面。
230
231 \newpage
232 \vspace*{2cm}
233
234 {\Huge Thank you!}
235
236 \vspace{1.3cm}
237
238 \vfill
239
240 \end{document}

cnames.tex

 1 % the following definitions are for Chinese panel
 2 \paneltitlepagename{封\ \ \ \ 面}
 3 \panelabstractname{摘\ \ \ \ 要}
 4 \panelcontentsname{目\ \ \ \ 录}
 5 \panelindexname{索\ \ \ \ 引}
 6 \panelfullscreenname{全\ \ \ \ 屏}
 7 \panelhomepagename{主\ \ \ \ 页}
 8 \panelgobackname{后\ \ \ \ 退}
 9 \panelgoforwardname{前\ \ \ \ 进}
10 \panelclosename{关\ \ \ \ 闭}
11 \panelsearchname{搜\ \ \ \ 索}
12 \panelquitname{退\ \ \ \ 出}
13 \panelprepagenamei{第}
14 \panelprepagenameii{共}
15 \panelpagename{页}
16 \panelofname{/}
17
18 %end of cnames.tex

formats.tex

  1 %====================================================================
  2
  3 %% loading miscellenous packages
  4
  5 \usepackage{babel}          %% hyphenation patterns - takes global option english
  6 \usepackage{palatino}       %% Palatino fonts
  7 \usepackage{mathptm}        %% PostScript Type 1 math fonts
  8 \usepackage{textcomp}       %% symbols
  9
 10 %% loading pdfwin
 11
 12 \usepackage[paneltoc,chinese,sectionbreak]{pdfwin}  %% my presentation style file
 13                                             %% takes global options english + pdftex
 14
 15 \usepackage{ulem}           %% more styles of \em commands
 16 \usepackage{overpic}        %% write texts on the pictures
 17 \usepackage{amsmath,amssymb,bm}        %% more AMS definitions and fonts
 18 \usepackage{url}            %% URL
 19 %\usepackage[nomarkers]{pause}          %% Use ppower4 to realize more functions
 20
 21 \usepackage{multimedia}     %% this package is part of beamer boundle but can be used alone
 22
 23 % pdftricks can be used here to display beautiful graphics by invoking pstricks packages
 24 \usepackage{pdftricks}
 25 \configure[pdfgraphic][width=\textwidth]
 26 \begin{psinputs}
 27 \usepackage{pstricks}
 28 \usepackage{pst-node}
 29 \usepackage{palatino}
 30 \usepackage{mathptm}
 31 \usepackage{textcomp}
 32 \end{psinputs}
 33
 34 % character protruding; disabled for higher compatibility
 35 %\input{normprot.tex}
 36
 37 % abbreviation for vectors
 38 %\input{shortvec.tex}
 39
 40
 41 % SETUP OF PDFWIN PACKAGE
 42 %
 43 % define windows and margins
 44 \SetScreen{width=12cm, height=9cm}% 4:3 ratio
 45 \SetWindow{text}{basex=0.2cm, basey=0.2cm,
 46 width=9.4cm,height=8.6cm, borderthickness=0.4mm}
 47 \SetWindow{panel}{basex=9.8cm, basey=0.2cm, width=2cm,
 48 height=8.6cm, borderthickness=0.4mm} \SetButtons{width=1.7cm,
 49 shadowdepth=0.3mm} \SetMargins{.5cm}{.5cm}{.5cm}{.5cm}
 50 %
 51 % define panel
 52 \SetLogo{filename=Logo.pdf,width=1.4cm, shadowdepth=.7mm,
 53 url=http://www.hooklee.com}%
 54 \SetScreen{type=wallpaper, filename=chaos.pdf}%
 55 \SetPaneltext{\scriptsize\sffamily
 56 \href{http://www.hooklee.com/tex.html}{Hook\TeX}\\by hooklee\\26
 57 May 2004}
 58 \renewcommand{\DrawNavigationPanel}{
 59 %  \ShowPageInfo\par\vfill
 60   \GoToPageButton\par\vfill
 61   \FirstLastButton\par\vfill
 62   \PrevNextButton\par\vfill
 63   \BackForwardButton\par\vfill
 64   \FullScreenButton\par\vfill
 65   \SearchButton\par\vfill
 66   \CloseButton\par\vfill
 67 }
 68
 69
 70 % COLORS
 71 %
 72 % windows
 73 \definecolor{titlecolor}{rgb}{.7,.15,.1}
 74 \definecolor{TextBackgroundColor}{rgb}{.7,.8,1.0}
 75 \definecolor{TextBorderColor}{rgb}{0,0,.5}
 76 %
 77 % colors for presentation
 78 \definecolor{StateColor}{rgb}{0,0,.6}
 79 \definecolor{StateFuncColor}{rgb}{.4,0,.3}
 80 \definecolor{StateNoiseColor}{rgb}{.3,.3,.7}
 81 \definecolor{MeasColor}{rgb}{0,.5,0}
 82 \definecolor{MeasFuncColor}{rgb}{.4,.3,0}
 83 \definecolor{MeasNoiseColor}{rgb}{.3,.7,.3}
 84 \definecolor{InputColor}{rgb}{.7,0,0}
 85 %
 86 % colors for environments
 87 \definecolor{CodeTextColor}{rgb}{0,0.3,0}
 88 \definecolor{CodeMathColor}{rgb}{0.1,0.3,0.6}
 89 \definecolor{MyBoxColor1}{rgb}{.8,.5,.1}
 90 \definecolor{MyBoxColor2}{rgb}{.9,.8,.3}
 91 \definecolor{MyBoxiiColor1}{rgb}{.8,.6,.4}
 92 \definecolor{MyBoxiiColor2}{rgb}{.9,.8,.7}
 93 \definecolor{MyCodeBoxColor1}{rgb}{.3,.6,.2}
 94 \definecolor{MyCodeBoxColor2}{rgb}{.8,.9,.7}
 95 %
 96 % misc
 97 \definecolor{dgreen}{rgb}{0,.6,0}
 98
 99
100 % LAYOUT
101 %
102 % general layout
103 \tolerance=2000 \emergencystretch=5em \fboxsep=3mm
104 \setlength{\parskip}{4pt plus 2pt minus 1pt}
105 \setlength{\parindent}{0pt} \frenchspacing
106 %
107 % define page transition style
108 % see Page_Transition_Styles.pdf for the syntax
109 %\pdfpageattr{/Trans << /S /Dissolve /D 0.2 >>}
110 %\pdfpageattr{/Trans << /S /Glitter /D 0.3 >>}
111 %
112 % replace default font (roman default) by computer modern sans serif;
113 % Palatino only for panel
114 % NOTE: brute force, no good style here...
115 \renewcommand{\rmdefault}{cmss}
116 %
117 % redefine vector style (boldface instead of arrow on top)
118 \renewcommand{\vec}[1]{\mathbf{#1}}
119 %
120 % redefine section numbering: only section (and no subsection or lower)
121 % gets a number
122 \setcounter{secnumdepth}{1}
123
124
125 % NEW COMMANDS
126 %
127 \newcommand{\Realnumbers}{\mathrm{I\!R}}
128 \newcommand{\Expect}[1]{\mbox{{\sf E}}\left[ #1 \right]}
129 \newcommand{\Cov}[1]{\mbox{\sf Cov}\left[ #1 \right]}
130 %
131 \newcommand{\mybox}[1]{\begin{center}%
132   \fboxrule=.5mm%
133   \fcolorbox{MyBoxColor1}{MyBoxColor2}{%
134   \parbox[c]{.9\textwidth}{#1}}%
135 \end{center}}
136 %
137 \newcommand{\myboxii}[1]{\begin{center}%
138   \fboxrule=.3mm%
139   \fcolorbox{MyBoxiiColor1}{MyBoxiiColor2}{%
140   \parbox[c]{.9\textwidth}{#1}}%
141 \end{center}}
142 %
143 \newcommand{\mycodebox}[1]{\begin{center}%
144   \fboxrule=.5mm%
145   \ttfamily\bfseries%
146   \color{CodeTextColor}%
147   \fcolorbox{MyCodeBoxColor1}{MyCodeBoxColor2}{%
148   \parbox[c]{.9\textwidth}{#1}}%
149 \end{center}}
150 %
151 \newcommand{\codemath}[1]{\textcolor{CodeMathColor}{$#1$}}
152 \newcommand{\codetext}[1]{\textsf{\mdseries\small #1}}
153
154 % hooklee‘s commands
155 \newtheorem{example}{Example}
156 \newtheorem{theorem}{Theorem}
157 \newtheorem{definition}{Definition}
158 \newtheorem{corollary}{Corollary}
159 \newcommand{\myfbox}[1]{\begin{center}%
160   \fboxrule=.3mm%
161   \fbox{\parbox[c]{.9\textwidth}{#1}}%
162 \end{center}}
163 % hooklee‘s note
164 \newcommand\hooklee[1]{}
165
166 \newcommand{\mysbox}[1]{\fcolorbox{MyBoxColor1}{MyBoxColor2}{#1}}
167 \newcommand{\mycsbox}[1]{\begin{center}\fcolorbox{MyBoxColor1}{MyBoxColor2}{#1}\end{center}}
168
169 %====================================================================

pdftricks.sty

%
% pdftricks.sty
%
% Copyright (c) 2001-3, Radhakrishnan CV <[email protected]>
%                       Rajagopal CV <[email protected]>
%                       http://www.river-valley.com
%
% River Valley Technologies, Floor III, SJP Buildings, Cotton Hills
% Trivandrum, India 695014
%
% Tel: +91 471 233 7501
%
%                     Antoine Chambert-Loir
%                     <[email protected]>
%                     http://www.math.polytechnique.fr/~chambert
%
% Ecole polytechnique, Palaiseau Cedex, France
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This file is modified by Shujun Li (http://www.hooklee.com)
% to support web2c TeX systems under Windows OS, such as MiKTeX,
% and to add the support of transparency background on 4 May 2004
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 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 (gpl.txt); if not, write to the Free
% Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
% MA  02111-1307, USA.
%
% $Id: pdftricks.sty,v 1.16 2003/08/10 04:29:20 cvr Exp cvr $
%

\NeedsTeXFormat{LaTeX2e}
\def\Fileversion$#1: #2 ${\gdef\fileversion{#2}}
\def\Filedate$#1: #2 #3 ${\gdef\filedate{#2}}
\Fileversion$Revision: 1.16 $
\Filedate$Date: 2003/08/10 04:29:20 $
\ProvidesPackage{pdftricks}
   [\filedate\space\fileversion\space psTricks support in PDF (CVR/ACL)]
\PackageWarningNoLine{pdftricks}
   {****************************************\MessageBreak
    Package pdftricks v,\fileversion\space loaded\MessageBreak
    [psTricks support in PDF (CVR, ACL)]\MessageBreak
    ****************************************}
\RequirePackage{graphicx,color}
\newif\[email protected]\@debugfalse
\newif\ifPDFTshell
\newif\ifPDFTnopdf
\newif\ifnoprocess \noprocessfalse
\newif\ifmiktex \miktextrue % changed by Shujun Li from \miktexfalse
\DeclareOption{debug}{\@debugtrue}
\DeclareOption{noshell}{\PDFTshellfalse}
\DeclareOption{shell}{\PDFTshelltrue}
\DeclareOption{miktex}{\global\miktextrue}
\ExecuteOptions{shell}
\ProcessOptions\relax
\ifPDFTshell
% we must set it to false if \write18 doesn‘t work.
% Hack given by Thierry Bouche (Thanks !)
\def\tmpfile{pdftricks-w18-test-\the\year\the\month\the\day\the\time}
\ifmiktex%
 \immediate\write18{ver >"\tmpfile"}%%%%%% LDL-2
\else
 \immediate\write18{touch \tmpfile} %%%%%% LDL-1
\fi
\ifmiktex
 \IfFileExists{\tmpfile.}{\PDFTshelltrue}{\PDFTshellfalse} %%%%%% LDL-4
 \immediate\write18{del \tmpfile} %%%%%% LDL-4‘
\else
 \IfFileExists{\tmpfile}{\PDFTshelltrue}{\PDFTshellfalse}  %%%%%% LDL-3
 \immediate\write18{rm \tmpfile} %%%%%% LDL-3‘
\fi
\fi
\ifPDFTshell
  \PackageWarningNoLine{pdftricks}
   {****************************************\MessageBreak
    Using \csname write\endcsname18 capability \MessageBreak
    for producing PDF-figures.  \MessageBreak
    ****************************************}
\else
  \PackageWarningNoLine{pdftricks}
   {****************************************\MessageBreak
    No \csname write\endcsname18 capability.\MessageBreak
    You‘ll have to run a script by yourself!\MessageBreak
    ****************************************}
\fi

% warning! the definition of FIGURES if pst2pdf must be set accordingly !!
\def\PDFTfigname{\jobname-fig\thepsfig}
\def\PDFTWarning#1#2{\[email protected]\PackageWarning{#1}{#2}\fi}
\def\PDFTWarningNoLine#1#2{\[email protected]\PackageWarningNoLine{#1}{#2}\fi}

%%
%% The real meat of psfile manipulation starts here.
%%
%%
\RequirePackage{moreverb}
\def\pdfverbatimwrite#1{%
  \@bsphack
  \immediate\openout \[email protected] #1
  \BeforeStream%
  \let\do\@makeother\dospecials
  \catcode`\^^M\active \catcode`\^^I=12
  \def\[email protected]{%
    \immediate\write\[email protected]
      {\the\[email protected]}}%
  \[email protected]}
\def\endpdfverbatimwrite{%
  \immediate\write\[email protected]{\string\end{document}}
  \immediate\closeout\[email protected]
  \@esphack}

\def\BeforeStream
   {\message{Opening PDFStream=\PDFTfigname.tex}%
    \immediate\write\[email protected]{\string\documentclass{article}}
    \immediate\write\[email protected]{\string\input\space tmp.inputs}
    \immediate\write\[email protected]{\string\pagestyle{empty}}
    \immediate\write\[email protected]{\string\begin{document}}
    }
\newenvironment{pdfdisplay}{\stepcounter{psfig}%
  \xdef\PDFCutFile{\PDFTfigname.tex}
  \pdfverbatimwrite{\PDFCutFile}}
 {\endpdfverbatimwrite%
  \psgraphicsinclude%
   \global\noprocessfalse\noindent}
\newenvironment{pdfpic}{\stepcounter{psfig}%
  \xdef\PDFCutFile{\PDFTfigname.tex}
  \pdfverbatimwrite{\PDFCutFile}}
 {\endpdfverbatimwrite%
  \psgraphicsinclude%
   \global\noprocessfalse\noindent}
\newenvironment{pdfinline}{\stepcounter{psfig}%
  \xdef\PDFCutFile{\PDFTfigname.tex}
  \pdfverbatimwrite{\PDFCutFile}}
 {\endpdfverbatimwrite%
  \psinlinegraphicsinclude%
   \global\noprocessfalse\noindent}
\AtEndDocument{\endPShook%
      \ifPDFTnopdf
        \PackageWarningNoLine{pdftricks}
        {******************************************\MessageBreak
         Some PDF files of images were not found.\MessageBreak
         Run the script `pst2pdf‘ before the next\MessageBreak
         run of pdfLaTeX\MessageBreak
         ******************************************}
       \fi
}
\gdef\endPShook{}
\def\noprocess{\global\noprocesstrue
  \PackageWarning{pdftricks}
        {******************************************\MessageBreak
           Figure Number: \PDFTfigname\space is not processed \MessageBreak
         ******************************************\MessageBreak}
}

\newcounter{psfig}
\newif\[email protected]
\newif\[email protected]
\newif\[email protected]
\long\gdef\psgraphicsProcess{%
  \@ifundefined{Fig\thepsfig}
  {\PDFTWarningNoLine{pdftricks}
    {******************************************\MessageBreak
     ************ Processing Fig: \thepsfig\space**********\MessageBreak
    ******************************************}
  }
  {\noprocess}
   \ifPDFTshell\ifnoprocess\relax\else
    \IfFileExists{\PDFTfigname.tex}{%
     \immediate\write18{latex -interaction=batchmode \PDFTfigname}
  \PDFTWarningNoLine{pdftricks}
    {******************************************\MessageBreak
     \PDFTfigname.tex converted to \PDFTfigname.dvi\MessageBreak
     ******************************************}
    }{}
    \IfFileExists{\PDFTfigname.dvi}{%
     \immediate\write18{dvips -P PDF -o \PDFTfigname.ps \PDFTfigname} % "-P pdf" is added by Shujun Li
  \PDFTWarningNoLine{pdftricks}
    {******************************************\MessageBreak
     \PDFTfigname.ps generated\MessageBreak
     ******************************************}
    }{}
    \IfFileExists{\PDFTfigname.ps}{%
     \immediate\write18{ps2eps.pl -f \PDFTfigname.ps} % modified by Shujun Li ".pl"
  \PDFTWarningNoLine{pdftricks}
    {******************************************\MessageBreak
     \PDFTfigname.eps generated\MessageBreak
     ******************************************}
    }{}
    \IfFileExists{\PDFTfigname.eps}{%
      \immediate\write18{epstopdf \PDFTfigname.eps}
  \PDFTWarningNoLine{pdftricks}
    {******************************************\MessageBreak
     \PDFTfigname.eps converted to \PDFTfigname.pdf\MessageBreak
     ******************************************}
    }{}
    \ifmiktex%
    \immediate\write18{del \PDFTfigname.aux \PDFTfigname.dvi
       \PDFTfigname.log \PDFTfigname.ps \PDFTfigname.eps}     %%%%%% LDL-6
    \else
    \immediate\write18{rm \PDFTfigname.aux \PDFTfigname.dvi
     \PDFTfigname.log \PDFTfigname.eps} %%%%%% LDL-5
   \fi\fi
   \fi
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% the following codes are modified by Shujun Li %%%%%%%%%%%%%%%
\newif\[email protected]\@PDFTTransparentBGfalse
\long\gdef\@PDFTincludegraphics{%
\[email protected]%
    \includegraphics[width=\@PDFgraphicwidth]{\PDFTfigname}\else%
\[email protected]%
    \includegraphics[height=\@PDFgraphicheight]{\PDFTfigname}\else%
\[email protected]%
    \includegraphics[scale=\@PDFgraphicscale]{\PDFTfigname}\else%
\includegraphics{\PDFTfigname}\fi\fi\fi}
\long\gdef\psgraphicsinclude{\psgraphicsProcess%
\[email protected]
  \IfFileExists{\PDFTfigname.pdf}%
     {\begin{center}%
     \@PDFTincludegraphics%
     \end{center}%
      \global\@pdfGINwidthfalse\let\@PDFgraphicwidth\relax
      \global\@pdfGINheightfalse\let\@PDFgraphicheight\relax
      \global\@pdfGINscalefalse\let\@PDFgraphicscale\relax
      }{\PDFTnopdftrue}
\else
  \IfFileExists{\PDFTfigname.pdf}%
     {\begin{center}
     \bgroup\fboxsep\@PDFboxsep\fboxrule\@PDFboxrule%
      \color{\@PDFgraphiccolor}%
      \fcolorbox{\@PDFgraphiclinecolor}{\@PDFgraphicbackground}%
     {\@PDFTincludegraphics}\egroup\end{center}%
      \global\@pdfGINwidthfalse\let\@PDFgraphicwidth\relax
      \global\@pdfGINheightfalse\let\@PDFgraphicheight\relax
      \global\@pdfGINscalefalse\let\@PDFgraphicscale\relax
      }{\PDFTnopdftrue}
\fi
   \gdef\@PDFgraphiclinecolor{white}
   \gdef\@PDFgraphicbackground{white}
   \gdef\@PDFboxsep{0pt}
   \gdef\@PDFboxrule{0pt}
}

\long\gdef\psinlinegraphicsinclude{%
  \psgraphicsProcess%
  \IfFileExists{\PDFTfigname.pdf}%
     {\includegraphics{\PDFTfigname}}% simplified by Shujun Li
      {\PDFTnopdftrue}%
}
%%%%%%%%%%%% the above codes are modified by Shujun Li %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\definecolor{gray30}{gray}{.70}
\definecolor{gray10}{gray}{.90}
\RequirePackage{keyval}
\def\configure[#1][#2]{\setkeys{#1}{#2}
  \PDFTWarning{pdftricks}{Reconfigured #1 parameter(s)\MessageBreak
   #2\MessageBreak}}
\[email protected]{pdfgraphic}{transparent}[true]{\@PDFTTransparentBGtrue}
\@PDFTTransparentBGtrue % make the transparent background as the default option
\[email protected]{pdfgraphic}{width}     {\gdef\@PDFgraphicwidth{#1}%
                                    \global\@pdfGINwidthtrue}
\[email protected]{pdfgraphic}{height}    {\gdef\@PDFgraphicheight{#1}%
                                    \global\@pdfGINheighttrue}
\[email protected]{pdfgraphic}{scale}     {\gdef\@PDFgraphicscale{#1}%
                                    \global\@pdfGINscaletrue}
\[email protected]{pdfgraphic}{color}     {\gdef\@PDFgraphiccolor{#1}}
\[email protected]{pdfgraphic}{linecolor} {\gdef\@PDFgraphiclinecolor{#1}}
\[email protected]{pdfgraphic}{background}{\gdef\@PDFgraphicbackground{#1}}
\[email protected]{pdfgraphic}{linewidth} {\gdef\@PDFboxrule{#1}}
\[email protected]{pdfgraphic}{rulesep}   {\gdef\@PDFboxsep{#1}}
\gdef\@PDFgraphiccolor{black}
\gdef\@PDFgraphiclinecolor{white}
\gdef\@PDFgraphicbackground{white}
\gdef\@PDFboxrule{0pt}
\gdef\@PDFboxsep{0pt}

%%
%% Environment to grab all the packages used in the master doc.
%% This forces you to load pdftricks as the first package.
%%
\newenvironment{psinputs}{\verbatimwrite{tmp.inputs}}
   {\endverbatimwrite}

%%
%% Arrays to keep the fig numbers
%%
\@ifundefined{[email protected]}{\newcounter{arraylength}}{}%
\@ifundefined{[email protected]}{\newcounter{ArrayIndex}}{}%
\@ifundefined{[email protected]}{\newcounter{zeroCtr}}{}%
\@ifundefined{[email protected]}{\newcounter{recordCtr}}{}
\setcounter{recordCtr}{1}
\@ifundefined{[email protected]}{\newcounter{Ctr}}{}
\def\DeclareArray#1{\Array{#1}[0]{}}%
%
\def\Array#1[#2]#3{%
      \expandafter\gdef\csname #1#2\endcsname{#3}%
      \expandafter\gdef\csname #1\endcsname[##1]{\csname #1##1\endcsname}}%
%
\def\getArraylength#1{\setcounter{arraylength}{0}%
   \loop\expandafter\ifx\csname #1\thearraylength\endcsname\relax%
   \else\stepcounter{arraylength}\repeat}%
%
\def\addToArray#1#2{\setcounter{arraylength}{0}%
   \loop\expandafter\ifx\csname #1\thearraylength\endcsname\relax%
   \else\stepcounter{arraylength}\repeat%
   \Array{#1}[\thearraylength]{#2}}%
%
\def\clearArray#1{\getArraylength{#1}%
   \loop\ifnum\[email protected] >0%
   \global\expandafter\let\csname #1\thearraylength\endcsname\relax%
   \addtocounter{arraylength}{-1}\repeat}%
%
\long\def\ArrayIterator#1#2{%
   \setcounter{ArrayIndex}{1}\getArraylength{#1}%
   \setcounter{zeroCtr}{\[email protected]}%
   \loop\ifnum\[email protected]<\[email protected]{#2}%
   \stepcounter{ArrayIndex}\repeat%
}%
\def\@nnil{\@nil}
\def\@empty{}
\def\@cvrstop#1\@@#2{}
%%
%% Equivalent of \@tfor and \@for where any delimiter can be
%% provided instead of LaTeX‘s default comma character
%%
\long\def\[email protected]#1#2#3{\DeclareArray{#1}\clearArray{#1}%
   \long\def\@icvrloop##1#2##2\@@##3{\def##3{##1}\ifx ##3\@nnil%
   \expandafter\@cvrstop \else\addToArray{#1}{##1}%
    \relax\expandafter\@icvrloop\fi##2\@@##3}%
   \long\def\@cvrloop##1#2##2#2##3\@@##4{\addToArray{#1}{##1}%
   \def##4{##1}\ifx ##4\@nnil \else%
    \def##4{##2}\def\[email protected]{##2}\ifx\[email protected]\@nnil\else%
         \addToArray{#1}{##2}\fi\ifx ##4\@nnil \else%
      \@icvrloop ##3\@@##4\fi\fi}%
  \expandafter\def\expandafter\@fortmp\expandafter{#3}%
  \ifx\@fortmp\@empty \else%
    \expandafter\@cvrloop#3#2\@nil#2\@nil\@@\@[email protected]\fi}%
%
% Dont look into the following code. It is harmful
% for your eyes and brain as well.
%
\newcounter{[email protected]}
\newcounter{[email protected]}
\long\gdef\NoProcess[#1]{%
   \long\def\@[email protected]@noprocess##1,##2\@@##3{\def##3{##1}\ifx ##3\@nnil%
   \expandafter\@cvrstop \else
      \expandafter\hyphencheck##[email protected]*[*]
    \relax\expandafter\@[email protected]@noprocess\fi##2\@@##3}%
   \long\def\@@@noprocess##1,##2,##3\@@##4{
      \expandafter\hyphencheck##[email protected]*[*]
   \def##4{##1}\ifx ##4\@nnil \else%
    \def##4{##2}\def\[email protected]{##2}\ifx\[email protected]\@nnil\else%
      \expandafter\hyphencheck##[email protected]*[*]
         \fi\ifx ##4\@nnil \else%
      \@[email protected]@noprocess ##3\@@##4\fi\fi}%
  \expandafter\def\expandafter\@fortmp\expandafter{#1}%
  \ifx\@fortmp\@empty \else%
    \expandafter\@@@noprocess#1,\@nil,\@nil\@@\@[email protected]\fi}%
\def\[email protected]#1[*]{}
\def\hyphencheck#1-#2-#3{\def\[email protected]{@}\def\[email protected]{*}\edef\[email protected]{#3}
   \ifx\[email protected]\[email protected]
   \setcounter{[email protected]}{#1}
   \setcounter{[email protected]}{#2}
   \stepcounter{[email protected]}
   \loop\ifnum\[email protected] > \[email protected]%
      \expandafter\edef\csname Fig\[email protected]\endcsname{TRUE}
      \stepcounter{[email protected]}
   \repeat%
   \else\ifx\[email protected]\[email protected]%
      \expandafter\edef\csname Fig#1\endcsname{TRUE}
   \fi\fi\[email protected]}

%%
%%
%% End of file `pdftricks.sty‘
%%

pdfwin.sty

   1 %% -*- TeX -*-
   2 %% (top line is for WinEdt: TeX file)
   3 %%
   4 %% This is file `pdfwin.sty‘. It provides three widely
   5 %% customizable windows for screen output of TeX documents.
   6 %%
   7 %% Copyright (C) 2001,02,03   Matthias M\"{u}hlich
   8 %%                            [email protected]
   9 %%
  10 %% modified by Shujun Li (http://www.hooklee.com) in July, 2004
  11 %%
  12 %%
  13 %% NOTES:
  14 %%  * I prefer readability to achieving maximum effectivity, i.e. I
  15 %%    tried to avoid macros like \[email protected]@, \[email protected], \[email protected] or \[email protected]@n and
  16 %%    wrote \hbox to, 0, 1pt and 16 instead.
  17 %%  * The package "pdfscreen.sty" by C.V. Radhakrishnan provided a
  18 %%    nice inspiration of what is possible with pdf output - at least
  19 %%    if you use default configuration and are content with the
  20 %%    package and its many bugs.
  21 %%    The pdfwin package was completely coded from scratch and its
  22 %%    features and flexibility extend pdfscreen considerably. Only a
  23 %%    bug fix in "pdfscreen.sty" (provided by D. P. Story) and
  24 %%    some foreign language names were copied.
  25 %%
  26 %% This program may be distributed and/or modified under the
  27 %% conditions of the LaTeX Project Public License, either version 1.2
  28 %% of this license or (at your option) any later version.
  29 %% The latest version of this license is in
  30 %%   http://www.latex-project.org/lppl.txt
  31 %% and version 1.2 or later is part of all distributions of LaTeX
  32 %% version 1999/12/01 or later.
  33 %%
  34 %% History:
  35 %%   JAN-FEB 2001  1.0  MM  first version
  36 %%     JUL   2001  1.1  MM  I added some macros for a upcoming
  37 %%                          presentation at a conference
  38 %%   SEP-OCT 2001  1.2  MM  some cosmetics; adapted to a lecture script;
  39 %%                          chapterpanel functionality
  40 %%   MAR-APR 2003  1.3  MM  some functionality removed (temporarily);
  41 %%                          first official release
  42 %%
  43 %% =====================================================================
  44 %% This program package contains the following files:
  45 %%  * pdfwin.sty             style file
  46 %%                           (to be included with \UsePackage{pdfwin})
  47 %%  * pdfwin.cfg             configuration file (empty)
  48 %%  ------------------------------------------------------------------
  49 %%  * truncate.sty           style file not included in all LaTeX
  50 %%                           distributions; needed for panel TOC
  51 %%  ------------------------------------------------------------------
  52 %%  * Bucuresti2003.tex      sample document, main file
  53 %%  * Buc*.pdf               graphics for sample document
  54 %%  * marble.png             background graphics for sample document
  55 %%  * JWGU-Logo.png          logo of my university
  56 %%  * shortvec.tex           abbreviations for vectors and matrices
  57 %% =====================================================================
  58 %%
  59 %% feel free to experiment with the code! But remember:
  60 %% modification means change of filename (and be fair and give reference
  61 %% to the original author :-). See LaTeX Project Public
  62 %% License for details.
  63 %%
  64 %% please report bugs to: [email protected]  Thanks!
  65
  66 \NeedsTeXFormat{LaTeX2e}
  67
  68 % ==============
  69 % identification
  70 % ==============
  71 %
  72 \ProvidesPackage{pdfwin}%
  73   [2003/04/04 v1.3   This is package pdfwin. It provides widely %
  74   customizable windows for screen output of TeX documents.]
  75
  76 % =================
  77 % required packages
  78 % =================
  79 %
  80 % NOTE: all packages listed here are standard packages.
  81 % However, if paneltoc is activated you have to get
  82 % truncate.sty from CTAN (e.g. ftp://ftp.dante.de/tex-archive)
  83 \RequirePackage{amssymb}     % black triangles
  84 \RequirePackage{keyval}      % user interface
  85 \RequirePackage{graphicx}
  86 \RequirePackage{color}
  87
  88 % ========================
  89 % preliminary declarations
  90 % ========================
  91 %
  92 \newif\[email protected]            \@nocfgfalse
  93 \newif\[email protected]         \@paneltocfalse
  94 \newif\[email protected]     \@chapterpanelfalse
  95 \newif\[email protected]        \@coloremphfalse
  96 \newif\[email protected]     \@pdftexdriverfalse
  97 \newif\[email protected]          \@chinesefalse   % added by Shujun Li
  98 %
  99 \def\PDFW[email protected]#1{\PackageWarning{pdfwin}{#1}}
 100 \def\[email protected]#1{\PackageInfo{pdfwin}{#1}}
 101 \def\[email protected]#1#2{\PackageError{pdfwin}{#1}{#2}}
 102 \def\[email protected]#1{\PackageWarningNoLine{pdfwin}{%
 103     Sorry, language `#1‘ not supported\MessageBreak%
 104     in this version. English strings are used instead.\MessageBreak%
 105     However you can give all the strings in the pdfwin.cfg\MessageBreak%
 106     file which will be read by the package. \MessageBreak\MessageBreak%
 107     If you can suggest translations for this language,\MessageBreak%
 108     please mail them to the author of this package}}
 109 %
 110 \def\paneltitlepagename#1{\gdef\@Paneltitlepagename{#1}}
 111 \def\panelabstractname#1{\gdef\@Panelabstractname{#1}}
 112 \def\panelcontentsname#1{\gdef\@Panelcontentsname{#1}}
 113 \def\panelindexname#1{\gdef\@Panelindexname{#1}}
 114 \def\panelhomepagename#1{\gdef\@Panelhomepagename{#1}}
 115 \def\panelfullscreenname#1{\gdef\@Panelfullscreenname{#1}}
 116 \def\panelgobackname#1{\gdef\@Panelgobackname{#1}}
 117 \def\panelgoforwardname#1{\gdef\@Panelgoforwardname{#1}}
 118 \def\panelsearchname#1{\gdef\@Panelsearchname{#1}}
 119 \def\panelquitname#1{\gdef\@Panelquitname{#1}}
 120 \def\panelclosename#1{\gdef\@Panelclosename{#1}}
 121 \def\panelprepagenamei#1{\gdef\@Panelprepagenamei{#1}} % added by Shujun Li
 122 \def\panelprepagenameii#1{\gdef\@Panelprepagenameii{#1}} % added by Shujun Li
 123 \def\panelpagename#1{\gdef\@Panelpagename{#1}}
 124 \def\panelofname#1{\gdef\@Panelofname{#1}}
 125 \let\@Paneltitlepagename\@empty
 126 \let\@Panelabstractname\@empty
 127 \let\@Panelcontentsname\@empty
 128 \let\@Panelindexname\@empty
 129 \let\@Panelhomepagename\@empty
 130 \let\@Panelfullscreenname\@empty
 131 \let\@Panelgobackname\@empty
 132 \let\@Panelgoforwardname\@empty
 133 \let\@Panelsearchname\@empty
 134 \let\@Panelquitname\@empty
 135 \let\@Panelclosename\@empty
 136 \let\@Panelprepagenamei\@empty % added by Shujun Li
 137 \let\@Panelprepagenameii\@empty % added by Shujun Li
 138 \let\@Panelpagename\@empty
 139 \let\@Panelofname\@empty
 140
 141 % =================================
 142 % option declaration and processing
 143 % =================================
 144 %
 145 \DeclareOption{nocfg}{\@nocfgtrue}
 146 \DeclareOption{paneltoc}{\@paneltoctrue}
 147 \DeclareOption{chapterpanel}{\@chapterpaneltrue}
 148 \DeclareOption{coloremph}{\@coloremphtrue}
 149 \DeclareOption{pdftex}{\@pdftexdrivertrue}
 150 \DeclareOption{sectionbreak}{%
 151   \let\[email protected]\section\def\section{\clearpage\[email protected]}%
 152 }
 153 %
 154 \DeclareOption{chinese}{\@chinesetrue}
 155 \DeclareOption{catalan}{%
 156   \paneltitlepagename{Inici}
 157   \panelabstractname{Resum}
 158   \panelcontentsname{Contingut}
 159   \panelindexname{Index} % ???
 160   \panelfullscreenname{Full Screen}
 161   \panelhomepagename{Plana personal}
 162   \panelgobackname{Tornar}
 163   \panelgoforwardname{->}
 164   \panelclosename{Tancar}
 165   \panelsearchname{???}
 166   \panelquitname{Sortir}
 167   \panelpagename{P\`agina}
 168   \panelofname{de}
 169 }
 170 \DeclareOption{czech}{%
 171   \paneltitlepagename{Tituln\‘{\i} strana}
 172   \panelabstractname{Abstrakt}
 173   \panelcontentsname{Obsah}
 174   \panelindexname{Index} % ???
 175   \panelfullscreenname{Full Screen}
 176   \panelhomepagename{\‘Uvodn\‘{\i} strana}
 177   \panelgobackname{Zp\v{e}t}
 178   \panelgoforwardname{->}
 179   \panelclosename{Zav\v{r}\‘{\i}t}
 180   \panelsearchname{???}
 181   \panelquitname{Konec}
 182   \panelpagename{Strana}
 183   \panelofname{z}
 184 }
 185 \DeclareOption{danish}{%
 186   \paneltitlepagename{Forside}
 187   \panelabstractname{Resum\‘e}
 188   \panelcontentsname{Indhold}
 189   \panelindexname{Index} % ???
 190   \panelfullscreenname{Full Screen}
 191   \panelhomepagename{Hjemmeside}
 192   \panelgobackname{G\aa\ tilbage}
 193   \panelgoforwardname{->}
 194   \panelclosename{Luk}
 195   \panelsearchname{???}
 196   \panelquitname{Afslut}
 197   \panelpagename{Side}
 198   \panelofname{af}
 199 }
 200 \DeclareOption{dutch}{
 201   \paneltitlepagename{Titel Pagina}
 202   \panelabstractname{Samenvatting}
 203   \panelcontentsname{Inhoudsopgave}
 204   \panelindexname{Index} % ???
 205   \panelfullscreenname{Full Screen}
 206   \panelhomepagename{Startpagina}
 207   \panelgobackname{Ga terug}
 208   \panelgoforwardname{->}
 209   \panelclosename{Sluiten}
 210   \panelsearchname{???}
 211   \panelquitname{Be\"eindigen}
 212   \panelpagename{Pagina}
 213   \panelofname{van}
 214 }
 215 \DeclareOption{english}{%
 216   \paneltitlepagename{Title Page}
 217   \panelabstractname{Abstract}
 218   \panelcontentsname{Contents}
 219   \panelindexname{Index} % ???
 220   \panelfullscreenname{Full Screen}
 221   \panelhomepagename{Home Page}
 222   \panelgobackname{Go Back}
 223   \panelgoforwardname{Go Forward}
 224   \panelclosename{Close}
 225   \panelsearchname{Search}
 226   \panelquitname{Quit}
 227   \panelpagename{Page}
 228   \panelofname{of}
 229 }
 230 \DeclareOption{french}{%
 231   \paneltitlepagename{Page de Titre}
 232   \panelabstractname{R\‘esum\‘e}
 233   \panelcontentsname{Sommaire}
 234   \panelindexname{Index} % ???
 235   \panelfullscreenname{Full Screen}
 236   \panelhomepagename{Page d\‘accueil}
 237   \panelgobackname{Retour}
 238   \panelgoforwardname{->}
 239   \panelclosename{Fermer}
 240   \panelsearchname{???}
 241   \panelquitname{Quitter}
 242   \panelpagename{Page}
 243   \panelofname{de}
 244 }
 245 \DeclareOption{german}{%
 246   \paneltitlepagename{Titelseite}
 247   \panelabstractname{Zusammenfassung}
 248   \panelcontentsname{Inhalt}
 249   \panelindexname{Index}
 250   \panelfullscreenname{Vollbild}
 251   \panelhomepagename{WWW-Startseite}
 252   \panelgobackname{Zur\"uck}
 253   \panelgoforwardname{Vor}
 254   \panelclosename{Schlie\ss en}
 255   \panelsearchname{Suchen}
 256   \panelquitname{Beenden}
 257   \panelpagename{Seite}
 258   \panelofname{von}
 259 }
 260 \DeclareOption{norsk}{%
 261   \paneltitlepagename{Forside}
 262   \panelabstractname{Sammendrag}
 263   \panelcontentsname{Innhold}
 264   \panelindexname{Index} % ???
 265   \panelfullscreenname{Full Screen}
 266   \panelhomepagename{Hjemmeside}
 267   \panelgobackname{G\aa\ tilbake}
 268   \panelgoforwardname{->}
 269   \panelclosename{Lukk}
 270   \panelsearchname{???}
 271   \panelquitname{Avslutt}
 272   \panelpagename{Side}
 273   \panelofname{av}
 274 }
 275 \DeclareOption{nynorsk}{%
 276   \paneltitlepagename{Forside}
 277   \panelabstractname{Samandrag}
 278   \panelcontentsname{Innhald}
 279   \panelindexname{Index} % ???
 280   \panelfullscreenname{Full Screen}
 281   \panelhomepagename{Heimeside}
 282   \panelgobackname{G\aa\ tilbake}
 283   \panelgoforwardname{->}
 284   \panelclosename{Lat att}
 285   \panelsearchname{???}
 286   \panelquitname{Avslutt}
 287   \panelpagename{Side}
 288   \panelofname{av}
 289 }
 290 \DeclareOption{polish}{%
 291   \paneltitlepagename{Strona tytu\l owa}
 292   \panelabstractname{Streszczenie}
 293   \panelcontentsname{Spis tre\‘sci}
 294   \panelindexname{Index} % ???
 295   \panelfullscreenname{Full Screen}
 296   \panelhomepagename{Strona g\l \‘owna}
 297   \panelgobackname{Powr\‘ot}
 298   \panelgoforwardname{->}
 299   \panelclosename{Zamknij}
 300   \panelsearchname{???}
 301   \panelquitname{Koniec}
 302   \panelpagename{Strona}
 303   \panelofname{z}
 304 }
 305 \DeclareOption{portuges}{%
 306   \paneltitlepagename{P\‘agina de Rosto}
 307   \panelabstractname{Sum\‘ario}
 308   \panelcontentsname{\‘Indice Geral}
 309   \panelindexname{Index} % ???
 310   \panelfullscreenname{Full Screen}
 311   \panelhomepagename{Homepage}
 312   \panelgobackname{Voltar}
 313   \panelgoforwardname{->}
 314   \panelclosename{Fechar}
 315   \panelsearchname{???}
 316   \panelquitname{Desistir}
 317   \panelpagename{P\‘agina}
 318   \panelofname{de}
 319 }
 320 \DeclareOption{russian}{%
 321   \paneltitlepagename{\cyr\CYRT\cyri\cyrt\cyru\cyrl\cyrsftsn\cyrn\cyra\cyrya{}
 322     \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}
 323   \panelabstractname{\cyr\CYRA\cyrn\cyrn\cyro\cyrt\cyra\cyrc\cyri\cyrya}
 324   \panelcontentsname{\cyr\CYRS\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre}
 325   \panelindexname{Index} % ???
 326   \panelfullscreenname{Full Screen}
 327   \panelhomepagename{Home Page}
 328   \panelgobackname{\cyr\CYRN\cyra\cyrz\cyra\cyrd}
 329   \panelgoforwardname{->}
 330   \panelclosename{\cyr\CYRZ\cyra\cyrk\cyrr\cyrery\cyrt\cyrsftsn}
 331   \panelsearchname{???}
 332   \panelquitname{\cyr\CYRV\cyrery\cyrh\cyro\cyrd}
 333   \panelpagename{\cyr\CYRS\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyra}
 334   \panelofname{\cyr\cyri\cyrz}
 335 }
 336 \DeclareOption{slovak}{%
 337   \paneltitlepagename{Tituln\‘a strana}
 338   \panelabstractname{Abstrakt}
 339   \panelcontentsname{Obsah}
 340   \panelindexname{Index} % ???
 341   \panelfullscreenname{Full Screen}
 342   \panelhomepagename{Domovsk\‘a str\‘anka}
 343   \panelgobackname{Sp\"a\v t}
 344   \panelgoforwardname{->}
 345   \panelclosename{Zatvori\v t}
 346   \panelsearchname{???}
 347   \panelquitname{Koniec}
 348   \panelpagename{Strana}
 349   \panelofname{z}
 350 }
 351 \DeclareOption{slovene}{%
 352   \paneltitlepagename{Naslovnica}
 353   \panelabstractname{Povzetek}
 354   \panelcontentsname{Kazalo}
 355   \panelindexname{Index} % ???
 356   \panelfullscreenname{Full Screen}
 357   \panelhomepagename{Spletna stran}
 358   \panelgobackname{Nazaj}
 359   \panelgoforwardname{->}
 360   \panelclosename{Zapri}
 361   \panelsearchname{???}
 362   \panelquitname{Kon\v{c}aj}
 363   \panelpagename{Stran}
 364   \panelofname{od}
 365 }
 366 \DeclareOption{spanish}{%
 367   \paneltitlepagename{P\‘agina de Abertura}
 368   \panelabstractname{Resumen}
 369   \panelcontentsname{Contenido}
 370   \panelindexname{Index} % ???
 371   \panelfullscreenname{Full Screen}
 372   \panelhomepagename{P\‘agina www}
 373   \panelgobackname{Regresar}
 374   \panelgoforwardname{->}
 375   \panelclosename{Cerrar}
 376   \panelsearchname{???}
 377   \panelquitname{Abandonar}
 378   \panelpagename{P\‘agina}
 379   \panelofname{de}
 380 }
 381 \DeclareOption{swedish}{%
 382   \paneltitlepagename{F\"ors\"attsblad}
 383   \panelabstractname{Sammanfattning}
 384   \panelcontentsname{Inneh\aa{}ll}
 385   \panelindexname{Index} % ???
 386   \panelfullscreenname{Full Screen}
 387   \panelhomepagename{Hemsida}
 388   \panelgobackname{Tillbaka}
 389   \panelgoforwardname{->}
 390   \panelclosename{St\"ang}
 391   \panelsearchname{???}
 392   \panelquitname{Avsluta}
 393   \panelpagename{Sida}
 394   \panelofname{av}
 395 }
 396 % define all other languages of babel package as non existent
 397 \DeclareOption{bahasa}{\[email protected]{bahasa}\ExecuteOptions{english}}
 398 \DeclareOption{breton}{\[email protected]{breton}\ExecuteOptions{english}}
 399 \DeclareOption{croatian}{\[email protected]{croatian}\ExecuteOptions{english}}
 400 \DeclareOption{esperanto}{\[email protected]{esperanto}\ExecuteOptions{english}}
 401 \DeclareOption{finnish}{\[email protected]{finnish}\ExecuteOptions{english}}
 402 \DeclareOption{galician}{\[email protected]{galician}\ExecuteOptions{english}}
 403 \DeclareOption{greek}{\[email protected]{greek}\ExecuteOptions{english}}
 404 \DeclareOption{hebrew}{\[email protected]{hebrew}\ExecuteOptions{english}}
 405 \DeclareOption{hungarian}{\[email protected]{hungarian}\ExecuteOptions{english}}
 406 \DeclareOption{magyar}{\[email protected]{magyar}\ExecuteOptions{english}}
 407 \DeclareOption{irish}{\[email protected]{irish}\ExecuteOptions{english}}
 408 \DeclareOption{italian}{\[email protected]{italian}\ExecuteOptions{english}}
 409 \DeclareOption{lowersorbian}{\[email protected]{lowersorbian}\ExecuteOptions{english}}
 410 \DeclareOption{uppersorbian}{\[email protected]{uppersorbian}\ExecuteOptions{english}}
 411 \DeclareOption{romanian}{\[email protected]{romanian}\ExecuteOptions{english}}
 412 \DeclareOption{scottish}{\[email protected]{scottish}\ExecuteOptions{english}}
 413 \DeclareOption{turkish}{\[email protected]{turkish}\ExecuteOptions{english}}
 414 \DeclareOption{ukrainian}{\[email protected]{ukrainian}\ExecuteOptions{english}}
 415 \DeclareOption{welsh}{\[email protected]{welsh}\ExecuteOptions{english}}
 416
 417 % some replacements
 418 \DeclareOption{american}{\ExecuteOptions{english}}
 419 \DeclareOption{USenglish}{\ExecuteOptions{english}}
 420 \DeclareOption{UKenglish}{\ExecuteOptions{english}}
 421 \DeclareOption{british}{\ExecuteOptions{english}}
 422 \DeclareOption{austrian}{\ExecuteOptions{german}}
 423 \DeclareOption{germanb}{\ExecuteOptions{german}}
 424 \DeclareOption{brazil}{\ExecuteOptions{portuges}}
 425 \DeclareOption{portuguese}{\ExecuteOptions{portuges}}
 426 \DeclareOption{brazilian}{\ExecuteOptions{portuges}}
 427 \DeclareOption{francais}{\ExecuteOptions{french}}
 428 \DeclareOption{ngerman}{\typeout{****** Igitt! Neue Beliebigkeits-Rechtschreibung!%
 429   Na, meinetwegen... ;-) ******}\ExecuteOptions{german}}
 430 \DeclareOption{naustrian}{\typeout{****** Igitt! Neue Beliebigkeits-Rechtschreibung!%
 431   Na, meinetwegen... ;-) ******}\ExecuteOptions{german}}
 432 \ExecuteOptions{english}
 433 \ProcessOptions\relax
 434
 435 \[email protected]\RequirePackage{CJK}\fi% added by Shujun Li
 436
 437 % =======================
 438 % BEGIN OF IMPLEMENTATION
 439 % =======================
 440 %
 441 % NOTE: all identifiers containing an ‘@‘ symbol are internal
 442 % identifiers. Please do not write code that relies on these
 443 % functions because they might change in future versions.
 444
 445 % --------------------------------------------------------------
 446 % HYPERREF SETUP
 447 %
 448 \[email protected]\RequirePackage[breakall]{truncate}\fi
 449 %
 450 \@ifundefined{hyperref}{%
 451   \[email protected]%
 452     \RequirePackage[pdftex,backref,pagebackref,colorlinks,plainpages=false,%
 453       menucolor=menucolor,%
 454 %      pdfpagemode=FullScreen,%
 455       pdfmenubar=false,pdftoolbar=false,%
 456       pdffitwindow=true,pdfcenterwindow=true,pdfwindowui=false,pdfview=Fit,%
 457       pdfstartview=Fit]{hyperref}%
 458   \else% (no pdftex => try to setup hyperref now)
 459     \hypersetup{%
 460       backref,pagebackref,colorlinks,plainpages=false,menucolor=menucolor,%
 461       pdfpagemode=none,pdfmenubar=false,pdftoolbar=false,pdffitwindow=true,%
 462       pdfcenterwindow=true,pdfwindowui=false,pdfview=Fit,pdfstartview=Fit%
 463     }
 464   \fi%
 465 }{ % (else hyperref undefined)
 466   \[email protected]{Please load hyperref package first}{hyperref must be loaded before pdfwin}%
 467 }
 468 \[email protected]\hypersetup{CJKbookmarks=true}\fi% added by Shujun Li
 469
 470
 471 % --------------------------------------------------------------
 472 % COUNTERS
 473 %
 474 % window types
 475 %  0: disabled
 476 %  1: transparent
 477 %  2: colored background
 478 %  3: graphics
 479 %  4: colored background + graphics
 480 \newcount\@[email protected]      \@[email protected]=2
 481 \newcount\@[email protected]     \@[email protected]=2
 482 \newcount\@[email protected]    \@[email protected]=2
 483 \newcount\@[email protected]     \@[email protected]=0
 484 %
 485 % define chapter counter for small classes (!!!)
 486 \ifx\[email protected]\@undefined\newcount\[email protected]\fi
 487 %
 488 % RealPage is necessary to allow different page numberings,
 489 % e.g. roman for titlepage, abstract, contents and foreword
 490 % and arabic numbering (starting with 1!) for the rest
 491 \newcounter{RealPage}
 492 \setcounter{RealPage}{1}
 493 %
 494 % Three windows are predefined - text, panel, user. Additional windows
 495 % can be defined by the user if he/she needs them.
 496 \newcounter{WindowCount}
 497 \setcounter{WindowCount}{3}
 498 %
 499 % PanelTocLine is a counter for the lines in the panel TOC
 500 \newcounter{PanelTocLine}[page]
 501 \newcounter{TocChapterCount}[page]
 502 \newcounter{ptocsection}\setcounter{ptocsection}{0}
 503
 504
 505 % --------------------------------------------------------------
 506 % BOOLEANS
 507 %
 508 \newif\[email protected]   \@PanelTocHighlightfalse
 509 \newif\[email protected]    \@PTocNTransparentfalse
 510 \newif\[email protected]    \@PTocHTransparentfalse
 511 \newif\[email protected]          \@InPreambletrue
 512 \AtBeginDocument{\@InPreamblefalse}
 513
 514
 515 % --------------------------------------------------------------
 516 % COLORS  ---  these colors can be modified (i.e. redefined) by the user
 517 %
 518 % screen and window colors
 519 \definecolor{ScreenBackgroundColor}{rgb}{.0,.2,.8}
 520 \definecolor{TextBackgroundColor}{rgb}{.8,.9,1.0}
 521 \definecolor{PanelBackgroundColor}{rgb}{.7,.75,.8}
 522 \definecolor{UserBackgroundColor}{rgb}{1.0,1.0,1.0}
 523 \definecolor{TextBorderColor}{rgb}{.0,.0,.0}
 524 \definecolor{PanelBorderColor}{rgb}{.0,.0,.0}
 525 \definecolor{UserBorderColor}{rgb}{.0,.0,.0}
 526 % button colors
 527 \definecolor{ButtonTextColor}{rgb}{.0,.0,.3}
 528 \definecolor{ButtonHighlightedTextColor}{rgb}{.8,.0,.2}
 529 \definecolor{ButtonDisabledTextColor}{rgb}{.5,.55,.6}
 530 \definecolor{ButtonBackgroundColor}{rgb}{.7,.75,.8}
 531 \definecolor{ButtonUpperShadowColor}{rgb}{.85,.9,.95}
 532 \definecolor{ButtonShadowColor}{rgb}{.5,.55,.6}
 533 % logo colors
 534 \definecolor{LogoShadowColor}{rgb}{.85,.9,.95}
 535 \definecolor{LogoUpperShadowColor}{rgb}{.5,.55,.6}
 536 % panel toc colors
 537 \definecolor{PanelTocNormalTextColor}{rgb}{.0,.0,.3}
 538 \definecolor{PanelTocNormalBackgroundColor}{rgb}{.7,.75,.8}
 539 \definecolor{PanelTocHighlightedTextColor}{rgb}{.8,.8,.0}
 540 \definecolor{PanelTocHighlightedBackgroundColor}{rgb}{.0,.0,.3}
 541 % text colors
 542 \definecolor{TextEmphColor}{rgb}{.0,.0,.8}%
 543 \definecolor{TextGrayedOutColor}{rgb}{.5,.5,.5}%
 544 \definecolor{TextHighlightedColor}{rgb}{.9,.0,.2}%
 545 \definecolor{TextRevealedColor}{rgb}{.0,.0,.5}%
 546 % section headings
 547 \definecolor{Section0Color}{rgb}{.7,.7,.0}
 548 \definecolor{Section1Color}{rgb}{.75,.6,.1}
 549 \definecolor{Section2Color}{rgb}{.7,.4,.2}
 550 \definecolor{Section3Color}{rgb}{.65,.2,.3}
 551 \definecolor{Section4Color}{rgb}{.6,.1,.5}
 552 \definecolor{Section5Color}{rgb}{.55,.0,.7}
 553 % chapter panel colors: 0 - title, contents, index, ...
 554 %                       1 - normal chapters
 555 % a/b/c/d: background/text/upper shadow/lower shadow
 556 \definecolor{ChapterPanelColor0a}{rgb}{.9,.9,.9}
 557 \definecolor{ChapterPanelColor0b}{rgb}{0,0,0}
 558 \definecolor{ChapterPanelColor0c}{rgb}{1,1,1}
 559 \definecolor{ChapterPanelColor0d}{rgb}{.4,.4,.4}
 560 \definecolor{ChapterPanelColor1a}{rgb}{.15,.2,.5}
 561 \definecolor{ChapterPanelColor1b}{rgb}{.95,.95,.95}
 562 \definecolor{ChapterPanelColor1c}{rgb}{.6,.7,.95}
 563 \definecolor{ChapterPanelColor1d}{rgb}{.0,.05,.3}
 564
 565 % --------------------------------------------------------------
 566 % LENGTHS
 567 %
 568 \setlength{\headheight}{0pt}
 569 \setlength{\headsep}{0pt}
 570 \setlength{\footskip}{0pt}
 571 \hoffset=0pt
 572 \voffset=0pt
 573 \paperwidth=20cm
 574 \paperheight=15cm
 575 \pagestyle{empty}
 576 %
 577 % NOTE:
 578 % We will use the \put command for displaying graphics. Therefore,%
 579 % the origin is in the LOWER left corner at (0pt/0pt).
 580 %
 581 % - text window position (lower left corner) and size
 582 \newlength{\@[email protected]}          \setlength{\@[email protected]}{.02\paperwidth}
 583 \newlength{\@[email protected]}          \setlength{\@[email protected]}{.02\paperheight}
 584 \newlength{\@[email protected]}         \setlength{\@[email protected]}{.79\paperwidth}
 585 \newlength{\@[email protected]}         \setlength{\@[email protected]}{.96\paperheight}
 586 % - panel position (lower left corner) and size
 587 \newlength{\@[email protected]}         \setlength{\@[email protected]}{.83\paperwidth}
 588 \newlength{\@[email protected]}         \setlength{\@[email protected]}{.02\paperheight}
 589 \newlength{\@[email protected]}        \setlength{\@[email protected]}{.15\paperwidth}
 590 \newlength{\@[email protected]}        \setlength{\@[email protected]}{.96\paperheight}
 591 % - user window position (lower left corner) and size
 592 \newlength{\@[email protected]}          \setlength{\@[email protected]}{.02\paperwidth}
 593 \newlength{\@[email protected]}          \setlength{\@[email protected]}{.92\paperheight}
 594 \newlength{\@[email protected]}         \setlength{\@[email protected]}{.79\paperwidth}
 595 \newlength{\@[email protected]}         \setlength{\@[email protected]}{.06\paperheight}
 596 % - window borders
 597 \newlength{\@[email protected]}  \setlength{\@[email protected]}{2.0pt}
 598 \newlength{\@[email protected]}  \setlength{\@[email protected]}{12pt}
 599 \newlength{\@[email protected]} \setlength{\@[email protected]}{2.0pt}
 600 \newlength{\@[email protected]} \setlength{\@[email protected]}{12pt}
 601 \newlength{\@[email protected]}  \setlength{\@[email protected]}{2.0pt}
 602 \newlength{\@[email protected]}  \setlength{\@[email protected]}{12pt}
 603 % - margins (apply for text window)
 604 \newlength{\@LeftMargin}       \setlength{\@LeftMargin}{1cm}
 605 \newlength{\@RightMargin}      \setlength{\@RightMargin}{1cm}
 606 \newlength{\@TopMargin}        \setlength{\@TopMargin}{1cm}
 607 \newlength{\@BottomMargin}     \setlength{\@BottomMargin}{1cm}
 608 % - button shape
 609 \newlength{\@ButtonShadowDepth}\setlength{\@ButtonShadowDepth}{2pt}
 610 \newlength{\@ButtonWidth}      \setlength{\@ButtonWidth}{.8\@[email protected]}
 611 \newlength{\@SmallButtonWidth} \setlength{\@SmallButtonWidth}{.4\@[email protected]}
 612 \addtolength{\@SmallButtonWidth}{-\@ButtonShadowDepth}
 613 % - logo shape
 614 \newlength{\@LogoWidth}        \setlength{\@LogoWidth}{.7\@[email protected]}
 615 \newlength{\@LogoShadowDepth}  \setlength{\@LogoShadowDepth}{3.0pt}
 616 % - panel toc height (usually automatic; fixed only if >0)
 617 \newlength{\@PanelTOCHeight}   \setlength{\@PanelTOCHeight}{0cm}
 618 %
 619 % temporary help registers
 620 \newdimen\[email protected]
 621 \newdimen\[email protected]
 622 \newdimen\[email protected]
 623 \newdimen\[email protected]
 624 \newdimen\[email protected]
 625 \newdimen\[email protected]
 626
 627 % --------------------------------------------------------------
 628 % LAYOUT
 629 %
 630 \newcommand{\InitLayout}{%
 631   % NOTE: both \oddsidemargin and \evensidemargin define
 632   %       LEFT margins (on odd/even pages). In one-sided
 633   %       documents only \oddsidemargin is used.
 634   \[email protected]%
 635   \else%
 636     \[email protected]{***** Page Layout changed outside of %
 637      Preamble - this might not work as expected! *****}
 638   \fi%
 639   \global\setlength{\textwidth}{\@[email protected]}%
 640   \global\addtolength{\textwidth}{-\@LeftMargin}%
 641   \global\addtolength{\textwidth}{-\@RightMargin}%
 642   \global\setlength{\textheight}{\@[email protected]}%
 643   \global\addtolength{\textheight}{-\@TopMargin}%
 644   \global\addtolength{\textheight}{-\@BottomMargin}%
 645   \global\addtolength{\textheight}{-\headheight}%
 646   \global\addtolength{\textheight}{-\headsep}%
 647   \global\addtolength{\textheight}{-\footskip}%
 648   \global\setlength{\oddsidemargin}{\@LeftMargin}%
 649   \global\addtolength{\oddsidemargin}{\@[email protected]}%
 650   \global\addtolength{\oddsidemargin}{-1in}%
 651   \global\setlength{\evensidemargin}{\@LeftMargin}%
 652   \global\addtolength{\evensidemargin}{\@[email protected]}%
 653   \global\addtolength{\evensidemargin}{-1in}%
 654   \global\setlength{\topmargin}{\@TopMargin}%
 655   \global\addtolength{\topmargin}{\paperheight}%
 656   \global\addtolength{\topmargin}{-\@[email protected]}%
 657   \global\addtolength{\topmargin}{-\@[email protected]}%
 658   \global\addtolength{\topmargin}{-1in}%
 659 }
 660 \InitLayout  % initialize with default values
 661
 662 % --------------------------------------------------------------
 663 % GENERAL DEFINITIONS
 664 %
 665 \renewcommand\floatpagefraction{1}
 666 \renewcommand\textfraction{0}
 667 %
 668 % Overwrite page styles. Can be modified by user to make use of
 669 % explicit or implicit (e.g. "empty" for title page or "plain" for
 670 % first page of chapters) page style modifications
 671 \def\[email protected]{}
 672 \def\[email protected]{}
 673 \def\[email protected]{}
 674 \def\[email protected]{}
 675 \def\[email protected]{}
 676 \def\[email protected]{}
 677 %
 678 \def\@linkcolor{red}
 679 \def\@anchorcolor{blue}
 680 \def\@citecolor{red}
 681 \def\@filecolor{red}
 682 \def\@urlcolor{magenta}
 683 \def\@menucolor{red}
 684 \def\@pagecolor{red}
 685 %
 686 \def\[email protected]@{\relax}
 687 \def\@[email protected]{\relax}
 688 \def\@[email protected]{\relax}
 689 \def\@[email protected]{\relax}
 690 %
 691 \let\@[email protected]\@empty
 692 \let\@[email protected]\@empty
 693 \let\@[email protected]\@empty
 694 \let\@[email protected]\@empty
 695 %
 696 \def\emptystring{empty}
 697 \edef\@paneltext{\emptystring}
 698 \edef\@LogoFile{\emptystring}
 699 \def\@LogoWidth{2cm}
 700 \edef\@HomepageURL{\emptystring}
 701 \edef\@LogoURL{\emptystring}
 702
 703
 704 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 705 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 706 %
 707 % USER INTERFACE
 708 %
 709 \long\def\SetUnderTextWin#1{\gdef\@[email protected]{#1}}
 710 \long\def\SetOverTextWin#1{\gdef\[email protected]@{#1}}
 711 \long\def\SetPanelContents#1{\gdef\@[email protected]{#1}}
 712 \long\def\SetUserContents#1{\gdef\@[email protected]{#1}}
 713 %
 714 \newcommand{\SetMargins}[4]{%
 715   \global\setlength{\@LeftMargin}{#1}%
 716   \global\setlength{\@RightMargin}{#2}%
 717   \global\setlength{\@TopMargin}{#3}%
 718   \global\setlength{\@BottomMargin}{#4}%
 719   \InitLayout%
 720 }
 721 \newcommand{\SetPaneltext}[1]{\gdef\@paneltext{#1}}
 722 %
 723 \expandafter\def\csname WindowName1\endcsname{Text}
 724 \expandafter\def\csname WindowName2\endcsname{Panel}
 725 \expandafter\def\csname WindowName3\endcsname{User}
 726 \expandafter\def\csname WindowRef1\endcsname{text}
 727 \expandafter\def\csname WindowRef2\endcsname{panel}
 728 \expandafter\def\csname WindowRef3\endcsname{user}
 729 %
 730 % MACROS USING KEYVAL PACKAGE
 731 \def\SetScreen#1{\setkeys{pdfwinScreen}{#1}}
 732 \def\SetLogo#1{\setkeys{pdfwinLogo}{#1}}
 733 \def\SetButtons#1{\setkeys{pdfwinButtons}{#1}}
 734 \def\SetPanelTOC#1{\setkeys{pdfwinPanelTOC}{#1}}
 735 \def\SetWindow#1#2{%
 736   \def\@WinName{error}%
 737   \@tempcnta=\[email protected]%
 738   \loop%
 739   \ifnum\@tempcnta>0%
 740     \def\tempa{#1}%
 741     \edef\tempb{\csname WindowRef\number\@tempcnta\endcsname}%
 742     \ifx\tempa\tempb%
 743       \xdef\@WinName{\csname WindowName\number\@tempcnta\endcsname}%
 744     \fi%
 745     \advance\@tempcnta by -1%
 746   \repeat%
 747   \def\tempb{error}%
 748   \ifx\@WinName\tempb%
 749     \[email protected]{SetWindow called with wrong window name specifier ‘#1‘}%
 750     {you can only use ‘text‘, ‘panel‘ or ‘user‘ (or your user-created%
 751     additional specifiers) as window identifiers %
 752     (first argument of SetWindow command)}%
 753   \fi%
 754   \setkeys{pdfwin}{#2}%
 755 }
 756 %
 757 % SCREEN KEYS
 758 \[email protected]{pdfwinScreen}{width}{\global\paperwidth=#1}
 759 \[email protected]{pdfwinScreen}{height}{\global\paperheight=#1\InitLayout}
 760 \[email protected]{pdfwinScreen}{filename}{\xdef\@[email protected]verlay{#1}}
 761 \[email protected]{pdfwinScreen}{backgroundcolor}%
 762   {\definecolor{ScreenBackgroundColor}{rgb}{#1}}
 763 \[email protected]{pdfwinScreen}{type}{%
 764   \def\tempa{#1}%
 765   \def\tempb{disabled}%
 766   \ifx\tempa\tempb\[email protected]{Disabling screen?! NO!}{\[email protected]}%
 767   \else\def\tempb{transparent}%
 768   \ifx\tempa\tempb\[email protected]{transparent screen?! NO!}{\[email protected]}%
 769   \else\def\tempb{colored}%
 770   \ifx\tempa\tempb\global\@[email protected]=2%
 771   \else\def\tempb{graphics}%
 772   \ifx\tempa\tempb\global\@[email protected]=3%
 773   \else\def\tempb{extended}%
 774   \ifx\tempa\tempb\global\@[email protected]=4%
 775   \else\def\tempb{wallpaper}%
 776   \ifx\tempa\tempb\global\@[email protected]=5%
 777   \else\[email protected]{SetScreen called with wrong type specifier ‘#1‘}{\[email protected]}%
 778   \fi\fi\fi\fi\fi\fi%
 779 }
 780 \def\[email protected]{Only ‘colored‘, ‘graphics‘, ‘extended‘ and ‘wallpaper‘ are %
 781   allowed for the screen type. In contrast to windows, ‘disabled‘ and %
 782   ‘transparent‘ are forbidden.}
 783 %
 784 % LOGO KEYS
 785 \[email protected]{pdfwinLogo}{shadowcolor}%
 786   {\definecolor{LogoShadowColor}{rgb}{#1}}
 787 \[email protected]{pdfwinLogo}{uppershadowcolor}%
 788   {\definecolor{LogoUpperShadowColor}{rgb}{#1}}
 789 \[email protected]{pdfwinLogo}{filename}{\xdef\@LogoFile{#1}}
 790 \[email protected]{pdfwinLogo}{width}{\xdef\@LogoWidth{#1}}
 791 \[email protected]{pdfwinLogo}{shadowdepth}{\global\@LogoShadowDepth=#1}
 792 \[email protected]{pdfwinLogo}{url}{\xdef\@LogoURL{#1}}
 793 %
 794 % BUTTONS KEYS
 795 \def\[email protected]{%
 796   \global\setlength{\@SmallButtonWidth}{.5\@ButtonWidth}%
 797   \global\addtolength{\@SmallButtonWidth}{-\@ButtonShadowDepth}}
 798 \[email protected]{pdfwinButtons}{width}{\global\@ButtonWidth=#1\[email protected]}
 799 \[email protected]{pdfwinButtons}{shadowdepth}%
 800   {\global\@ButtonShadowDepth=#1\[email protected]}
 801 \[email protected]{pdfwinButtons}{backgroundcolor}%
 802   {\definecolor{ButtonBackgroundColor}{rgb}{#1}}
 803 \[email protected]{pdfwinButtons}{textcolor}%
 804   {\definecolor{ButtonTextColor}{rgb}{#1}}
 805 \[email protected]{pdfwinButtons}{htextcolor}%
 806   {\definecolor{ButtonHighlightedTextColor}{rgb}{#1}}
 807 \[email protected]{pdfwinButtons}{dtextcolor}%
 808  {\definecolor{ButtonDisabledTextColor}{rgb}{#1}}
 809 \[email protected]{pdfwinButtons}{shadowcolor}%
 810   {\definecolor{ButtonShadowColor}{rgb}{#1}}
 811 \[email protected]{pdfwinButtons}{uppershadowcolor}%
 812   {\definecolor{ButtonUpperShadowColor}{rgb}{#1}}
 813 \[email protected]{pdfwinButtons}{url}{\xdef\@HomepageURL{#1}}
 814 %
 815 % PANELTOC KEYS
 816 \[email protected]{pdfwinPanelTOC}{textcolor}%
 817   {\definecolor{PanelTocNormalTextColor}{rgb}{#1}}
 818 \[email protected]{pdfwinPanelTOC}{backgroundcolor}%
 819   {\definecolor{PanelTocNormalBackgroundColor}{rgb}{#1}}
 820 \[email protected]{pdfwinPanelTOC}{htextcolor}%
 821   {\definecolor{PanelTocHighlightedTextColor}{rgb}{#1}}
 822 \[email protected]{pdfwinPanelTOC}{hbackgroundcolor}%
 823   {\definecolor{PanelTocHighlightedBackgroundColor}{rgb}{#1}}
 824 \[email protected]{pdfwinPanelTOC}{height}%
 825   {\global\@PanelTOCHeight=#1}
 826 \[email protected]{pdfwinPanelTOC}{transparency}{%
 827   \def\tempa{#1}%
 828   \def\tempb{none}%
 829   \ifx\tempa\tempb\@PTocNTransparentfalse\@PTocHTransparentfalse%
 830   \else\def\tempb{normal}%
 831   \ifx\tempa\tempb\@PTocNTransparenttrue\@PTocHTransparentfalse%
 832   \else\def\tempb{highlighted}%
 833   \ifx\tempa\tempb\@PTocNTransparentfalse\@PTocHTransparenttrue%
 834   \else\def\tempb{both}%
 835   \ifx\tempa\tempb\@PTocNTransparenttrue\@PTocHTransparenttrue%
 836   \else\[email protected]{wrong specifier ‘#1‘ for panel TOC transparency mode}%
 837     {Only the transparency modes ‘none‘, ‘normal‘, ‘highlighted‘ and%
 838     ‘both‘ are possible}%
 839   \fi\fi\fi\fi%
 840 }
 841 %
 842 % WINDOW KEYS
 843 \def\[email protected]@Win{\InitLayout}
 844 \def\[email protected]@Win{}
 845 \def\[email protected]@Win{}
 846 \[email protected]{pdfwin}{basex}{\global\csname @\@WinName @LLX\endcsname=#1%
 847   \csname [email protected]\@WinName @Win\endcsname}
 848 \[email protected]{pdfwin}{basey}{\global\csname @\@WinName @LLY\endcsname=#1%
 849   \csname [email protected]\@WinName @Win\endcsname}
 850 \[email protected]{pdfwin}{width}{\global\csname @\@WinName @DimX\endcsname=#1%
 851   \csname [email protected]\@WinName @Win\endcsname}
 852 \[email protected]{pdfwin}{height}{\global\csname @\@WinName @DimY\endcsname=#1%
 853   \csname [email protected]\@WinName @Win\endcsname}
 854 \[email protected]{pdfwin}{borderthickness}%
 855   {\global\csname @\@WinName @BorderThickness\endcsname=#1}
 856 \[email protected]{pdfwin}{borderradius}%
 857   {\global\csname @\@WinName @BorderArcRadius\endcsname=#1}
 858 \[email protected]{pdfwin}{filename}%
 859   {\expandafter\xdef\csname @\@WinName @Overlay\endcsname{#1}}
 860 \[email protected]{pdfwin}{backgroundcolor}%
 861   {\definecolor{\@WinName BackgroundColor}{rgb}{#1}}
 862 \[email protected]{pdfwin}{bordercolor}%
 863   {\definecolor{\@WinName BorderColor}{rgb}{#1}}
 864 \[email protected]{pdfwin}{type}{%
 865   \def\tempa{#1}%
 866   \def\tempb{disabled}%
 867   \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=0%
 868   \else\def\tempb{transparent}%
 869   \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=1%
 870   \else\def\tempb{colored}%
 871   \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=2%
 872   \else\def\tempb{graphics}%
 873   \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=3%
 874   \else\def\tempb{extended}%
 875   \ifx\tempa\tempb\global\csname @\@WinName @WinType\endcsname=4%
 876   \else\[email protected]{SetWindow called with wrong window type specifier ‘#1‘}%
 877    {Only the window types ‘disabled‘, ‘transparent‘, ‘colored‘,%
 878    ‘graphics‘ and ‘extended‘ are allowed.}%
 879   \fi\fi\fi\fi\fi%
 880 }
 881 %           --- user interface finished ---
 882 %
 883 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 884 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 885
 886
 887
 888 %==========================================================
 889 %
 890 %    --- internal realization part starts here ---
 891 %
 892 % NOTE: the following commands will be written to aux-file;
 893 % the initial value defined here is overwritten when aux-file is read.
 894 % NOTE: \LastPageString is not necessarily an arabic number
 895 \newcommand*{\LastPageString}{?}      % for page <x> of <y>
 896 \newcommand*{\ChapterNumber}{10}      % for chapter panel
 897 \newcommand*{\LastPage}{999}          % for disabling this button
 898 \newcommand*{\AbstractPage}{0}        % for disabling this button
 899 \newcommand*{\ContentsPage}{0}        % for disabling this button
 900 \newcommand*{\IndexPage}{0}           % for disabling this button
 901 %
 902 % chapter-specific version of \LastPageString:
 903 \expandafter\def\csname LastPageC0String\endcsname{???}
 904 \expandafter\def\csname LastPageC1String\endcsname{???}
 905 \expandafter\def\csname LastPageC2String\endcsname{???}
 906 \expandafter\def\csname LastPageC3String\endcsname{???}
 907 \expandafter\def\csname LastPageC4String\endcsname{???}
 908 \expandafter\def\csname LastPageC5String\endcsname{???}
 909 \expandafter\def\csname LastPageC6String\endcsname{???}
 910 \expandafter\def\csname LastPageC7String\endcsname{???}
 911 \expandafter\def\csname LastPageC8String\endcsname{???}
 912 \expandafter\def\csname LastPageC9String\endcsname{???}
 913 \expandafter\def\csname LastPageC10String\endcsname{???}
 914 \expandafter\def\csname LastPageC11String\endcsname{???}
 915 \expandafter\def\csname LastPageC12String\endcsname{???}
 916 \expandafter\def\csname LastPageC13String\endcsname{???}
 917 \expandafter\def\csname LastPageC14String\endcsname{???}
 918 \expandafter\def\csname LastPageC15String\endcsname{???}
 919 %
 920 % WARNING: AN EVIL HACK WILL FOLLOW NOW ... CONTINUE READING AT OWN RISK ;-)
 921 % we have to fight a fierce battle against the babel package here:
 922 % babel writes a \[email protected] command at the begin of the aux-file
 923 % (and toc, lof, lot files, if they exist). This command overwrites
 924 % \contentsname and \abstractname. Thus, a simple definition would
 925 % not work.
 926 % We have to change it \emph{at the beginning of the document}.
 927 % And additionally, we have to modify \[email protected] (this is
 928 % executed at the beginning of every toc, lof, lot or aux file!).
 929 \newcommand*{\PDFWinFightsBabelSuccessfully}{%
 930   \renewcommand*{\contentsname}{%
 931     \protect\hypertarget{contents}{\@Panelcontentsname}%
 932     \immediate\write\@auxout{\string\gdef\string\ContentsPage{\number\[email protected]}}%
 933   }%
 934   \renewcommand*{\abstractname}{%
 935     \protect\hypertarget{abstract}{\@Panelabstractname}%
 936     \immediate\write\@auxout{\string\gdef\string\AbstractPage{\number\[email protected]}}%
 937   }%
 938   \renewcommand*{\indexname}{%
 939     \protect\hypertarget{index}{\@Panelindexname}%
 940     \immediate\write\@auxout{\string\gdef\string\IndexPage{\number\[email protected]}}%
 941   }%
 942 }
 943 \AtBeginDocument{%
 944   \PDFWinFightsBabelSuccessfully%
 945   \let\[email protected]@language\[email protected]%
 946   \def\[email protected]#1{%
 947     \[email protected]@language{#1}\PDFWinFightsBabelSuccessfully}%
 948 }
 949
 950
 951 % --------------------------------------------------------------
 952 % NEW WINDOWS
 953 %
 954 \def\NewWindow#1#2{%
 955   % increase window counter
 956   \global\advance\[email protected] by 1\relax%
 957   %
 958   % window name and reference
 959   \expandafter\gdef\csname WindowName\number\[email protected]\endcsname{#1}%
 960   \expandafter\gdef\csname WindowRef\number\[email protected]\endcsname{#2}%
 961   %
 962   % append to \[email protected]
 963   \[email protected]@macro\[email protected]{\@ShowWindow{#1}}%
 964   %
 965   % new colors and variables
 966   \definecolor{#1BackgroundColor}{rgb}{1.0,1.0,1.0}%
 967   \definecolor{#1BorderColor}{rgb}{.0,.0,.0}%
 968   \expandafter\newcount\csname @#[email protected]\endcsname%
 969   \csname @#[email protected]\endcsname=0%
 970   \expandafter\newlength\csname @#[email protected]\endcsname%
 971   \csname @#[email protected]\endcsname=.02\paperwidth%
 972   \expandafter\newlength\csname @#[email protected]\endcsname%
 973   \csname @#[email protected]\endcsname=.92\paperheight%
 974   \expandafter\newlength\csname @#[email protected]\endcsname%
 975   \csname @#[email protected]\endcsname=.79\paperwidth%
 976   \expandafter\newlength\csname @#[email protected]\endcsname%
 977   \csname @#[email protected]\endcsname=.06\paperheight%
 978   \expandafter\newlength\csname @#[email protected]\endcsname%
 979   \csname @#[email protected]\endcsname=2.0pt%
 980   \expandafter\newlength\csname @#[email protected]\endcsname%
 981   \csname @#[email protected]\endcsname=12pt%
 982   %
 983   % misc
 984   \expandafter\def\csname [email protected]#[email protected]\endcsname{}%
 985   \expandafter\def\csname @#[email protected]\endcsname{\relax}%
 986   \long\expandafter\def\csname Set#1Contents\endcsname##1{%
 987     \expandafter\gdef\csname @#[email protected]\endcsname{##1}%
 988   }%
 989 }
 990
 991
 992 % --------------------------------------------------------------
 993 % INCREMENTAL PAGE NUMBERING (e.g. 10 - 11a - 11b - 11c - 12)
 994 %
 995 % mechanism: in order to avoid changes on internal functions as far
 996 % as possible, two new counters are introduced. The first one
 997 % memorizes the basic page number (i.e. 11 in the example given
 998 % above) and the second one is computed as the difference between
 999 % the normal page counter (not touched!) and the first counter,
1000 % plus offset of one.
1001 % NOTE: no \stepcounter or \addtocounter before/after page break
1002 % necessary for new counters; normal page counter does the job!
1003 %
1004 % define new counters for incremental page counting
1005 \newcount\[email protected]
1006 \newcount\[email protected]
1007 %
1008 % redefine (i.e. patch) \pagenumbering:
1009 % \pagenumbering{incremental} starts incremental numbering
1010 % \pagenumbering{restore} restores old setting
1011 % else: old \pagenumbering definition from latex.ltx
1012 \def\pagenumbering#1{%
1013   \def\tempa{#1}%
1014   \def\tempb{incremental}%
1015   \ifx\tempa\tempb
1016     \global\[email protected]=\[email protected]%
1017     \let\[email protected]\thepage%
1018     % NOTE: \thepage can be modified by user after \pagenumbering{incremental}
1019     \gdef\thepage{\arabic{incpagea}\alph{incpageb}}%
1020     \let\[email protected]\newpage%
1021     \def\newpage{\[email protected]\computeincpage}%
1022     \computeincpage
1023   \else
1024     \def\tempb{restore}%
1025     \ifx\tempa\tempb
1026       \let\newpage\[email protected]%
1027       \let\thepage\[email protected]%
1028       \global\[email protected]=\[email protected]%
1029       \stepcounter{page}
1030     \else
1031       \global\[email protected]ge \@ne \gdef\thepage{\csname @#1\endcsname\[email protected]}
1032     \fi
1033   \fi
1034 }
1035 \def\computeincpage{%
1036   \[email protected]=\[email protected]%
1037   \advance\[email protected]\@ne%
1038   \advance\[email protected] -\[email protected]%
1039 }
1040
1041
1042 % --------------------------------------------------------------
1043 % FONTS (can be redefined by user)
1044 %
1045 % setting button text font and style (button height)
1046 %\newcommand{\SetButtonTextStyle}{\rule[-4pt]{0pt}{13pt}%
1047 % \footnotesize\sffamily\itshape\mdseries}
1048 \newcommand{\SetButtonTextStyle}{\rule[-3pt]{0pt}{11pt}%
1049  \scriptsize\sffamily\itshape\mdseries}
1050 %
1051 % setting page info ("page x of y") font and style
1052 % (usually the same as button text)
1053 %\newcommand{\SetPageInfoStyle}{\rule[-4pt]{0pt}{13pt}%
1054 % \footnotesize\sffamily\itshape\mdseries}
1055 \newcommand{\SetPageInfoStyle}{\rule[-3pt]{0pt}{11pt}%
1056  \scriptsize\sffamily\itshape\mdseries}
1057 %
1058 % setting panel toc text font and style (button height)
1059 %\newcommand{\SetTocNTextStyle}{\rule[-3pt]{0pt}{11pt}%
1060 % \scriptsize\sffamily\itshape\mdseries}
1061 %\newcommand{\SetTocHTextStyle}{\rule[-3pt]{0pt}{11pt}%
1062 % \scriptsize\sffamily\itshape\bfseries}
1063 \newcommand{\SetTocNTextStyle}{\rule[-2pt]{0pt}{7pt}%
1064  \tiny\sffamily\itshape\mdseries}
1065 \newcommand{\SetTocHTextStyle}{\rule[-2pt]{0pt}{7pt}%
1066  \tiny\sffamily\itshape\bfseries}
1067 %
1068 % setting font and style of the chapter panel
1069 \newcommand{\SetChapterTextStyle}{\rule[-2pt]{0pt}{9pt}%
1070  \sffamily\bfseries\scriptsize}
1071 \newcommand{\SetChapterTitelStyle}{\rule[-2pt]{0pt}{7pt}%
1072  \sffamily\bfseries\tiny}
1073
1074
1075 % --------------------------------------------------------------
1076 % SECTION AND \EMPH COLORING
1077 %
1078 \[email protected]\renewcommand{\emph}[1]{\textcolor{TextEmphColor}{#1}}\fi
1079 %
1080 \let\[email protected]\@startsection
1081 \renewcommand{\@startsection}[6]{%
1082  \[email protected]{#1}{#2}{#3}{#4}{#5}{#6\color{Section#2Color}}}
1083 %
1084 % normally redefining \@startsection should be sufficient.
1085 % But unfortunately, it‘s not. Sometimes, the internal color stack
1086 % gets mixed up and the beginning of a new page is written in a
1087 % wrong color. The color is fixed once a differently colored text
1088 % is printed. A work-around for section headings (which are likely to
1089 % be affected by this bug) is printing the section number in the
1090 % correct color.
1091 \let\[email protected]\@seccntformat
1092 \def\@seccntformat#1{\protect\textcolor{Section\[email protected] Color}%
1093    {\[email protected]{#1}}\quad}%
1094
1095
1096 % --------------------------------------------------------------
1097 % DYNAMIC PAGES
1098 %
1099 % NOTE: if you are looking at this section in order to define new
1100 % dynamic environments and you don‘t really understand what‘s
1101 % going on here, then I have to apologize, but some things I need
1102 % are only possible in plain TeX and not in LaTeX, e.g. global
1103 % (and not local) counter settings. Notice that the LaTeX counter
1104 % abc is equivalent to the TeX counter \[email protected]
1105 %
1106 \newcounter{dynamicpage}      \setcounter{dynamicpage}{0}
1107 \newcounter{maxdynamicpages}  \setcounter{maxdynamicpages}{5}
1108 %
1109 \newcommand*{\copycolor}[2]{\expandafter\let\csname\string\color @#2%
1110   \expandafter\endcsname\csname\string\color @#1\endcsname}
1111 %
1112 \newcommand{\store}[1]{\long\gdef\recall{#1}\global\[email protected]=0}
1113 %
1114 \newcommand*{\revealnext}{%
1115   \newpage%
1116   \global\advance\[email protected] by 1%
1117   \relax%   %% otherwise the FIRST color would not be changed. Mysterious...
1118   \copycolor{TextRevealedColor}{color\number\[email protected]}%
1119   \recall%
1120 }
1121 \newcommand{\initreveal}[1]{%
1122   \@tempcnta=\[email protected]%
1123   \loop \ifnum\@tempcnta>0%
1124     \copycolor{TextBackgroundColor}{color\number\@tempcnta}%
1125     \advance\@tempcnta by -1%
1126   \repeat%
1127   \store{#1}%
1128 }
1129 \newcommand*{\highlightnext}{%
1130   \newpage%
1131   \@tempcnta=\[email protected]%
1132   \loop \ifnum\@tempcnta>0%
1133     \copycolor{TextGrayedOutColor}{color\number\@tempcnta}%
1134     \advance\@tempcnta by -1%
1135   \repeat%
1136   \global\advance\[email protected] by 1%
1137   \relax%
1138   \copycolor{TextHighlightedColor}{color\number\[email protected]}%
1139   \recall%
1140 }
1141 \newcommand{\inithighlight}[1]{\store{#1}}
1142
1143
1144 % --------------------------------------------------------------
1145 % BUTTON MACROS
1146 %
1147 % setting button color
1148 \newcommand{\NormalButtonCol}{\color{ButtonTextColor}}
1149 \newcommand{\FirstButtonCol}{\ifnum\number\[email protected]=1%
1150   \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
1151 \newcommand{\LastButtonCol}{\ifnum\number\[email protected]=\number\LastPage%
1152   \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
1153 \newcommand{\AbstractButtonCol}{\ifnum\number\[email protected]=\number\AbstractPage%
1154   \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
1155 \newcommand{\ContentsButtonCol}{\ifnum\number\[email protected]=\number\ContentsPage%
1156   \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
1157 \newcommand{\IndexButtonCol}{\ifnum\number\[email protected]=\number\IndexPage%
1158   \color{ButtonDisabledTextColor}\else\NormalButtonCol\fi}
1159 %
1160 % #1: box contents  #2,#3 : upper/lower border colors
1161 % \fboxrule determines the thickness of the shadow
1162 \newcommand*{\ThreeDimBox}[3]{\bgroup%
1163   \fboxsep0pt%
1164   \color{#2}%
1165   \setbox\@tempboxa\hbox{\fbox{#1}}%
1166   \copy\@tempboxa%
1167   \@tempcnta=10%
1168   \@tempdimc=\fboxrule%         %% increment
1169   \divide\@tempdimc by \@tempcnta%
1170   \color{#3}%
1171   \@tempdima=0pt%               %% width
1172   \@tempdimb=\ht\@tempboxa%     %% height
1173   \loop%
1174     \ifnum\@tempcnta>0%
1175     \advance\@tempcnta by -1%
1176     \advance\@tempdimb by -\@tempdimc%
1177     \advance\@tempdima by \@tempdimc%
1178     \hbox to 0pt{\hss\vrule \@width\@tempdima \@height\@tempdimb \@depth\dp\@tempboxa}%
1179   \repeat%
1180   \@tempcnta=10%
1181   \@tempdima=\wd\@tempboxa%     %% width
1182   \@tempdimb=-\dp\@tempboxa%    %% -depth -> height
1183   \loop%
1184     \ifnum\@tempcnta>0%
1185     \advance\@tempcnta by -1%
1186     \advance\@tempdimb by \@tempdimc%
1187     \advance\@tempdima by -\@tempdimc%
1188     \hbox to 0pt{\hss\vrule \@width\@tempdima \@height\@tempdimb \@depth\dp\@tempboxa}%
1189   \repeat%
1190 \egroup}
1191 %
1192 % [#1]: width (optional; default: \@ButtonWidth)    #2:  button text
1193 \newcommand{\AddButton}[2][\@ButtonWidth]{\bgroup%
1194   \fboxrule=\@ButtonShadowDepth%
1195   \ThreeDimBox{\colorbox{ButtonBackgroundColor}%
1196    {\hbox to #1{\hfil\NormalButtonCol\SetButtonTextStyle#2\hfil}}}%
1197    {ButtonUpperShadowColor}{ButtonShadowColor}%
1198 \egroup}
1199
1200
1201 % --------------------------------------------------------------
1202 % PANEL MACROS
1203 %
1204 \newcommand*{\btl}{\ensuremath{\blacktriangleleft}}
1205 \newcommand*{\btr}{\ensuremath{\blacktriangleright}}
1206 %
1207 % The default panel consists of four parts:
1208 %   [graphical logo]
1209 %   [panel TOC]
1210 %   navigation buttons
1211 %   [some text]
1212 % parts in square brackets are optional.
1213 %
1214 % The panel contents are composed vertically to build a minipage
1215 % NOTE: background color is set later
1216 \SetPanelContents{%
1217   \begin{minipage}[t][\@[email protected]][c]{\@[email protected]}%
1218     \normalcolor%
1219     \normalfont%
1220     \PanelContents%
1221   \end{minipage}%
1222 }
1223 % \PanelContents can be modified by user. The user does not need
1224 % to know anything about the internal realization of \@[email protected]
1225 % or \Draw<Something>. The \PanelContents level is encapsulated.
1226 % NOTE: all \Draw<Something> commands should end with \vfill
1227 \newcommand{\PanelContents}{%
1228   \centering%
1229   \vspace*{5pt}\vfill%
1230   \DrawLogo%
1231   \DrawPanelTOC%
1232   \DrawNavigationPanel%
1233   \DrawPanelText%
1234   \vspace*{5pt}%
1235 }
1236 %
1237 \def\DrawLogo{\ifx\emptystring\@LogoFile\else%
1238   \setbox0=\hbox{\bgroup%
1239     \fboxrule=\@LogoShadowDepth%
1240     \ThreeDimBox{\includegraphics[width=\@LogoWidth]%
1241      {\@LogoFile}}{LogoUpperShadowColor}{LogoShadowColor}%
1242   \egroup}%
1243   \ifx\emptystring\@LogoURL\mbox{\box0}\else\href{\@LogoURL}{\box0}\fi%
1244   \par\vfill\fi%
1245 }
1246 %
1247 \def\DrawPanelTOC{%
1248   \[email protected]%
1249     \ifdim\@PanelTOCHeight>0cm%  fixed size?
1250       \begin{minipage}[t][1.5cm][t]{\@[email protected]}%
1251         \@[email protected]%
1252       \end{minipage}%
1253     \else%
1254       \@[email protected]%
1255     \fi%
1256     \vfill%
1257   \else%
1258     \relax%
1259   \fi%
1260 }
1261 %
1262 \def\DrawPanelText{\ifx\emptystring\@paneltext\else%
1263  \parbox{.98\@[email protected]}{\centering \@paneltext}\par\vfill\fi}
1264 %
1265 % You can change \DrawNavigationPanel with \renewcommand.
1266 % Just copy this definition here and (un)comment and reorder
1267 % the items in the way you like.
1268 \newcommand{\DrawNavigationPanel}{
1269 %  \ShowPageInfo\par\vfill
1270   \GoToPageButton\par\vfill
1271 %  \HomePageButton\par\vfill
1272 %  \TitlePageButton\par\vfill
1273 %  \AbstractPageButton\par\vfill
1274 %  \IndexPageButton\par\vfill
1275 %  \ContentsPageButton\par\vfill
1276   \FirstLastButton\par\vfill
1277   \PrevNextButton\par\vfill
1278   \BackForwardButton\par\vfill
1279 %  \BackButton\par\vfill
1280 %  \ForwardButton\par\vfill
1281   \FullScreenButton\par\vfill
1282   \SearchButton\par\vfill
1283   \CloseButton\par\vfill
1284 %  \QuitButton\par\vfill
1285 }
1286 %
1287 % \ShowEmptyPageInfo needs exactly the same space as \ShowPageInfo. Use this
1288 % if you want to turn off page info for certain pages without changing the
1289 % positions of the other panel elements
1290 \def\ShowEmptyPageInfo{%
1291   \bgroup%
1292     \SetPageInfoStyle%
1293   \egroup%
1294 }
1295 \[email protected]
1296     \def\ShowPageInfo{%
1297     \bgroup%
1298         \SetPageInfoStyle%
1299         \textcolor{ButtonTextColor}{\@Panelprepagenamei}%
1300         \textcolor{ButtonHighlightedTextColor}{\thepage}%
1301         \textcolor{ButtonTextColor}{\@Panelpagename}%
1302         \space\textcolor{ButtonTextColor}{\@Panelofname}\space%
1303         \textcolor{ButtonTextColor}{\@Panelprepagenameii}%
1304         \[email protected]%
1305         \textcolor{ButtonHighlightedTextColor}%
1306         {\csname LastPageC\arabic{chapter}String\endcsname}%
1307         \else%
1308         \textcolor{ButtonHighlightedTextColor}{\LastPageString}%
1309         \fi%
1310         \textcolor{ButtonTextColor}{\@Panelpagename}%
1311     \egroup%
1312     }
1313     \def\GoToPageButton{%
1314     \Acrobatmenu{GoToPage}{\AddButton%
1315         {\textcolor{ButtonTextColor}{\@Panelprepagenamei}%
1316         \textcolor{ButtonHighlightedTextColor}{\thepage}%
1317         \textcolor{ButtonTextColor}{\@Panelpagename}%
1318         \space\textcolor{ButtonTextColor}{\@Panelofname}\space%
1319         \textcolor{ButtonTextColor}{\@Panelprepagenameii}%
1320         \[email protected]%
1321         \textcolor{ButtonHighlightedTextColor}%
1322         {\csname LastPageC\arabic{chapter}String\endcsname}%
1323         \else%
1324         \textcolor{ButtonHighlightedTextColor}{\LastPageString}%
1325         \fi%
1326         \textcolor{ButtonTextColor}{\@Panelpagename}}}
1327     }
1328 \else
1329     \def\ShowPageInfo{%
1330     \bgroup%
1331         \SetPageInfoStyle%
1332         \textcolor{ButtonTextColor}{\@Panelpagename}\space%
1333         \textcolor{ButtonHighlightedTextColor}{\thepage}%
1334         \space\textcolor{ButtonTextColor}{\@Panelofname}\space%
1335         \[email protected]%
1336         \textcolor{ButtonHighlightedTextColor}%
1337         {\csname LastPageC\arabic{chapter}String\endcsname}%
1338         \else%
1339         \textcolor{ButtonHighlightedTextColor}{\LastPageString}%
1340         \fi%
1341     \egroup%
1342     }
1343     \def\GoToPageButton{%
1344     \Acrobatmenu{GoToPage}{\AddButton%
1345         {\textcolor{ButtonTextColor}{\@Panelpagename}\space%
1346         \textcolor{ButtonHighlightedTextColor}{\thepage}\space%
1347         \textcolor{ButtonTextColor}{\@Panelofname}\space%
1348         \[email protected]%
1349         \textcolor{ButtonHighlightedTextColor}%
1350         {\csname LastPageC\arabic{chapter}String\endcsname}%
1351         \else%
1352         \textcolor{ButtonHighlightedTextColor}{\LastPageString}%
1353         \fi}}
1354     }
1355 \fi
1356 \def\HomePageButton{%
1357   \href{\@HomepageURL}{\AddButton{\@Panelhomepagename}}
1358 }
1359 \def\TitlePageButton{%
1360   \Acrobatmenu{FirstPage}{\AddButton{\FirstButtonCol\@Paneltitlepagename}}%
1361 }
1362 \def\AbstractPageButton{%
1363   \ifnum\number\AbstractPage=0%
1364     \[email protected]{no abstract! abstract page button not possible}%
1365   \else%
1366     \hyperlink{abstract}{\AddButton{\AbstractButtonCol\@Panelabstractname}}%
1367   \fi%
1368 }
1369 \def\ContentsPageButton{%
1370   \ifnum\number\ContentsPage=0%
1371     \[email protected]{no TOC found! contents page button not possible}%
1372   \else%
1373     \hyperlink{contents}{\AddButton{\ContentsButtonCol\@Panelcontentsname}}%
1374   \fi%
1375 }
1376 \def\IndexPageButton{%
1377   \ifnum\number\IndexPage=0%
1378     \[email protected]{no index found! index button not possible}%
1379   \else%
1380     \hyperlink{index}{\AddButton{\ContentsButtonCol\@Panelindexname}}%
1381   \fi%
1382 }
1383 \def\FirstLastButton{%
1384   \Acrobatmenu{FirstPage}{\AddButton[\@SmallButtonWidth]%
1385    {\FirstButtonCol\scalebox{.8}[1.4]{\btl\btl}}}%
1386   \Acrobatmenu{LastPage}{\AddButton[\@SmallButtonWidth]%
1387    {\LastButtonCol\scalebox{.8}[1.4]{\btr\btr}}}%
1388 }
1389 \def\PrevNextButton{%
1390   \Acrobatmenu{PrevPage}{\AddButton[\@SmallButtonWidth]%
1391    {\FirstButtonCol\scalebox{.8}[1.4]{\btl}}}%
1392   \Acrobatmenu{NextPage}{\AddButton[\@SmallButtonWidth]%
1393    {\LastButtonCol\scalebox{.8}[1.4]{\btr}}}%
1394 }
1395 \def\BackForwardButton{%
1396   \Acrobatmenu{GoBack}{\AddButton[\@SmallButtonWidth]%
1397    {\raisebox{-2pt}{\scalebox{2}{$\hookleftarrow$}}}}%
1398   \Acrobatmenu{GoForward}{\AddButton[\@SmallButtonWidth]%
1399    {\raisebox{-2pt}{\scalebox{2}{$\hookrightarrow$}}}}%
1400 }
1401 \def\BackButton{%
1402   \Acrobatmenu{GoBack}{\AddButton{\@Panelgobackname}}%
1403 }
1404 \def\ForwardButton{%
1405   \Acrobatmenu{GoForward}{\AddButton{\@Panelgoforwardname}}%
1406 }
1407 \def\FullScreenButton{%
1408   \Acrobatmenu{FullScreen}{\AddButton{\@Panelfullscreenname}}%
1409 }
1410 \def\SearchButton{%
1411   \Acrobatmenu{Find}{\AddButton{\@Panelsearchname}}%
1412 }
1413 \def\CloseButton{%
1414   \Acrobatmenu{Close}{\AddButton{\@Panelclosename}}%
1415 }
1416 \def\QuitButton{%
1417   \Acrobatmenu{Quit}{\AddButton{\@Panelquitname}}%
1418 }
1419
1420
1421 % --------------------------------------------------------------
1422 % PANEL TOC SECTION COUNTING
1423 %
1424 \def\sectionstring{section}
1425 \def\chapterstring{chapter}
1426 %
1427 \def\AddPanelTocEntry#1{%
1428   \stepcounter{ptocsection}%
1429   \hypertarget{ptoctarget\number\[email protected]}{}%
1430   \addtocontents{toc}{\protect\PTocEntry{#1}{ptoctarget\number\[email protected]}}%
1431 }%
1432 %
1433 \let\PTocEntry\@gobbletwo
1434
1435
1436 % --------------------------------------------------------------
1437 % PANEL TOC MACROS
1438 %
1439 % for a panel TOC we have to modify:
1440 %  * the input of the *.toc file
1441 %  * the generation of the *.toc file
1442 % the last thing is necessary because usually the \tableofcontents
1443 % command does BOTH jobs: the display and the generation. And
1444 % therefore, it must only be called once in a normal LaTeX
1445 % document.
1446 % But for a panel TOC (i.e. a TOC an EVERY page) we have to separate
1447 % both tasks.
1448 %
1449 % The original \tableofcontents is (in article class):
1450 %  \newcommand\tableofcontents{%
1451 %    \section*{\contentsname\@mkboth{\MakeUppercase\contentsname}%
1452 %    {\MakeUppercase\contentsname}}\@starttoc{toc}%
1453 %  }
1454 % and \@starttoc does (latex base):
1455 %  \def\@starttoc#1{%
1456 %    \begingroup
1457 %      \makeatletter
1458 %      \@input{\jobname.#1}%
1459 %      \[email protected]
1460 %        \expandafter\newwrite\csname [email protected]#1\endcsname
1461 %        \immediate\openout \csname [email protected]#1\endcsname \jobname.#1\relax
1462 %      \fi
1463 %      \@nobreakfalse
1464 %    \endgroup}
1465 %
1466 % We separate this in two parts: \tableofcontents is redefined to
1467 % only SHOW the toc and the WRITE command is given at the end of
1468 % the document.
1469 % NOTE: \makeatletter is necessary if e.g. the babel package is used:
1470 % this package writes a \[email protected] command via the *.aux file
1471 % of the last LaTeX run. Without \makeatletter, a "undefined command"
1472 % would result because ‘@‘ is no letter anymore.
1473 \renewcommand{\tableofcontents}{%
1474   \section*{\contentsname\@mkboth{\MakeUppercase\contentsname}%
1475     {\MakeUppercase\contentsname}}%
1476   \begingroup%
1477     \makeatletter%
1478     \@input{\jobname.toc}%
1479   \endgroup%
1480 }
1481 %
1482 \AtEndDocument{%
1483   \[email protected]%
1484     \clearpage% <-- otherwise the panel toc on the last page would be lost
1485     \newwrite\[email protected]%
1486     \immediate\openout\[email protected]\jobname.toc\relax%
1487   \fi
1488 }
1489 % On reading the *.toc file for the panel TOC, we must modify the
1490 % display (locally, of course!):
1491 %  - disable \numberline which would produce a dotted line with
1492 %    the page number at the end.
1493 %  - count the sections in order to switch between normal and
1494 %    highlighted display
1495 \def\@[email protected]{%
1496   \IfFileExists{\jobname.toc}{\vbox%
1497   \bgroup%
1498     \rightskip0pt plus 1fill%
1499     \hbadness=10000%
1500     \let\numberline\@gobble%
1501     \let\contentsline\[email protected]%
1502     \let\PTocEntry\[email protected]%
1503     \makeatletter%
1504     \@input{\jobname.toc}%
1505     \[email protected]{TOC file read}%
1506   \egroup}%
1507   % ELSE (file does not exist)
1508   {\[email protected]{TOC file not available}}%
1509 }
1510 %
1511 \long\def\[email protected]#1#2#3#4{%
1512   \edef\temp{#1}%
1513   \ifx\temp\chapterstring%
1514     \stepcounter{TocChapterCount}%
1515   \fi%
1516   \ifnum\[email protected]=\[email protected]%
1517     \ifx\temp\sectionstring%
1518       \stepcounter{PanelTocLine}%
1519       \@tempcnta=\[email protected]%
1520       \advance\@tempcnta by \[email protected]%
1521       \ifnum\@tempcnta=\[email protected]%
1522         \global\@PanelTocHighlighttrue%
1523       \else%
1524         \global\@PanelTocHighlightfalse%
1525       \fi%
1526       \hyperlink{#4}{\makebox[\@[email protected]]%
1527         {\[email protected]{.97\@[email protected]}{\truncate{.96\@[email protected]}{#2}}}}%
1528       \par%
1529     \fi% section entry detected
1530   \fi% in actual chapter
1531 }
1532 %
1533 \long\def\[email protected]#1#2{%
1534   \stepcounter{PanelTocLine}%
1535   \@tempcnta=\[email protected]%
1536   \advance\@tempcnta by \[email protected]%
1537   \ifnum\@tempcnta=\[email protected]%
1538     \global\@PanelTocHighlighttrue%
1539   \else%
1540     \global\@PanelTocHighlightfalse%
1541   \fi%
1542   \hyperlink{#2}{\makebox[\@[email protected]]%
1543     {\[email protected]{.97\@[email protected]}{\truncate{.96\@[email protected]}{#1}}}}%
1544   \par%
1545 }
1546 %
1547 % displaying the panel TOC buttons
1548 \def\[email protected]#1#2{\begingroup%
1549   \fboxsep0pt
1550   \fboxrule0pt%
1551   \[email protected]%
1552     \[email protected]%
1553       {\hbox to #1{\color{PanelTocHighlightedTextColor}%
1554       \SetTocHTextStyle\hfill#2\hfill}}%
1555     \else%
1556       {\colorbox{PanelTocHighlightedBackgroundColor}{\hbox to #1%
1557       {\color{PanelTocHighlightedTextColor}\SetTocHTextStyle\hfill#2\hfill}}}%
1558     \fi%
1559   \else%
1560     \[email protected]%
1561       {\hbox to #1{\color{PanelTocNormalTextColor}%
1562       \SetTocNTextStyle\hfill#2\hfill}}%
1563     \else%
1564       {\colorbox{PanelTocNormalBackgroundColor}{\hbox to #1%
1565       {\color{PanelTocNormalTextColor}\SetTocNTextStyle\hfill#2\hfill}}}%
1566     \fi%
1567   \fi%
1568 \endgroup}
1569
1570
1571 % --------------------------------------------------------------
1572 % CHAPTER PANEL MACROS
1573 %
1574 % (!!!) einige Sachen noch fest verdrahtet!
1575 %
1576 \newcommand{\ChapterBox}{%
1577   \normalfont\normalsize%
1578   \bgroup%
1579   \fboxrule1pt%
1580   \@tempcnta=0%
1581   \@tempcntb=\number\ChapterNumber%
1582   \advance\@tempcntb by 1%
1583   \loop%
1584   \ifnum\@tempcnta<\@tempcntb%
1585     \ifnum\[email protected]=\@tempcnta%
1586       \ifnum\@tempcnta=0%
1587         \Acrobatmenu{FirstPage}{\[email protected]{\@Paneltitlepagename}}
1588       \else \ifnum\@tempcnta=16%
1589         \hyperlink{index}{\[email protected]{\@Panelindexname}}
1590       \else%
1591         \hyperlink{chapter.\number\@tempcnta}{\[email protected]{\chaptertitle}}
1592       \fi\fi%
1593     \else % chapter not selected
1594       \ifnum\@tempcnta=0%
1595         \Acrobatmenu{FirstPage}{\[email protected]{T}}
1596       \else\ifnum\@tempcnta=16%
1597         \hyperlink{index}{\[email protected]{I}}
1598       \else%
1599         \hyperlink{chapter.\number\@tempcnta}{\[email protected]}
1600       \fi\fi
1601     \fi % chapter selected?
1602     \advance\@tempcnta by 1%
1603   \repeat
1604   \egroup
1605 }
1606 %
1607 \newcommand{\[email protected]}[1]{%
1608   \ThreeDimBox{\colorbox{ChapterPanelColor0a}{%
1609     \begin{minipage}[c][5mm]{22mm}%
1610       \centering\SetChapterTextStyle\color{ChapterPanelColor0b}#1%
1611     \end{minipage}%
1612   }}{ChapterPanelColor0c}{ChapterPanelColor0d}%
1613 }
1614 \newcommand{\[email protected]}[1]{%
1615   \ThreeDimBox{\colorbox{ChapterPanelColor1a}{%
1616     \begin{minipage}[c][5mm]{22mm}%
1617       \offinterlineskip\centering\SetChapterTextStyle\color{ChapterPanelColor1b}%
1618       \@chapapp\space\@Roman\@tempcnta\\ \SetChapterTitelStyle #1\\ %
1619     \end{minipage}%
1620   }}{ChapterPanelColor1c}{ChapterPanelColor1d}%
1621 }
1622 \newcommand{\[email protected]}[1]{%
1623   \ThreeDimBox{\colorbox{ChapterPanelColor0a}{%
1624     \begin{minipage}[c][3mm]{3mm}%
1625       \centering\SetChapterTextStyle\color{ChapterPanelColor0b}#1%
1626     \end{minipage}%
1627   }}{ChapterPanelColor0c}{ChapterPanelColor0d}%
1628 }
1629 \newcommand{\[email protected]}{%
1630   \ThreeDimBox{\colorbox{ChapterPanelColor1a}{%
1631     \begin{minipage}[c][3mm]{3mm}%
1632       \centering\SetChapterTextStyle\color{ChapterPanelColor1b}%
1633       \@Roman\@tempcnta%
1634     \end{minipage}%
1635   }}{ChapterPanelColor1c}{ChapterPanelColor1d}%
1636 }
1637 %
1638 \[email protected]\SetUserContents{\ChapterBox}\fi
1639
1640 % --------------------------------------------------------------
1641 % OVERLAY MACROS
1642 %
1643 % TeX assembles a page and calls \shipout{...} then.
1644 % Therefore, we have to interrupt \shipout
1645 \AtBeginDocument{%
1646   \let\[email protected]\shipout
1647   \let\shipout\[email protected]
1648 }
1649 %
1650 % now we have to steal shipout‘s argument in order
1651 % to modify it as we like
1652 \def\[email protected]{%
1653   \afterassignment\[email protected]%
1654   \global\setbox\@cclv= %
1655 }
1656 \newcommand{\[email protected]}{%
1657   \ifvoid\@cclv%
1658      \relax\aftergroup\[email protected]%
1659   \else%
1660      \[email protected]%
1661   \fi%
1662 }
1663
1664 % --------------------------------------------------------------
1665 % PAGE COMPOSITION
1666 % (original page is in box 255 [or \box\@cclv])
1667 %
1668 \newcommand{\[email protected]}{%
1669   \bgroup%
1670     \@tempdima=1in%
1671     \@tempcnta=\@tempdima%   % => unit: scaled points
1672     \@tempcntb=\paperheight%
1673     \advance\@tempcntb by -\@tempdima%
1674     \global\setbox\@cclv\vbox{%
1675       \offinterlineskip%
1676       \vbox{%
1677         \let\protect\relax%
1678         \unitlength=1sp%
1679         \[email protected](0,0)(\@tempcnta,\@tempcntb)%
1680           {\bgroup%
1681             \setlength{\unitlength}{1pt}%
1682             % draw background
1683             \[email protected]%
1684             % draw other windows
1685             \[email protected]%
1686           \egroup}%
1687         \endpicture%
1688       }%
1689       \vbox to 0mm{\hbox to 0mm{\box\@cclv\hss}\vss}%
1690       \vbox{%
1691         \let\protect\relax%
1692         \unitlength=1sp%
1693         \[email protected](0,0)(\@tempcnta,\@tempcntb)%
1694           {\bgroup%
1695             \setlength{\unitlength}{1pt}
1696             \[email protected]%
1697           \egroup}%
1698         \endpicture%
1699       }%
1700     }%
1701   \egroup%
1702   \addtocounter{RealPage}{1}%
1703   \[email protected]\box\@cclv%
1704 }
1705
1706
1707 % --------------------------------------------------------------
1708 % WINDOW DRAWING
1709 %
1710 \def\[email protected]{%
1711   \normalcolor%
1712   \normalfont%
1713   \@ShowWindow{Text}%
1714   \@ShowWindow{Panel}%
1715   \@ShowWindow{User}%
1716 }
1717
1718 \def\[email protected]{%
1719   \ifcase\@[email protected]%
1720   \or%
1721   \or%
1722     % 2 = colored
1723     \put(0,0){\bgroup\color{ScreenBackgroundColor}\vrule%
1724       height\paperheight depth0pt width\paperwidth\egroup}%
1725   \or%
1726     % 3 = graphics
1727     \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]%
1728       {\@[email protected]}}%
1729   \or%
1730     % 4 = extended
1731     \put(0,0){\bgroup\color{ScreenBackgroundColor}\vrule%
1732       height\paperheight depth0pt width\paperwidth\egroup}%
1733     \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]%
1734       {\@[email protected]}}%
1735   \or%
1736     % 5 = wallpaper
1737     \bgroup%
1738       \setbox0=\hbox{\includegraphics{\@[email protected]}}%
1739       \setlength{\unitlength}{1sp}%
1740       \@tempcnta=\paperwidth%
1741       \count255=\wd0%
1742       \divide\@tempcnta by \count255%
1743       \setbox2=\hbox{\count255=-1%
1744         \loop\ifnum\count255<\@tempcnta\advance\count255 by 1\copy0\repeat\hss}
1745       \@tempcntb=\paperheight%
1746       \count255=\ht0%
1747       \divide\@tempcntb by \count255%
1748       \advance\@tempcntb by 1%
1749       \multiput(0,0)(0,\count255){\@tempcntb}{\copy2}%
1750     \egroup%
1751   \fi%
1752 }
1753 %
1754 % show window procedure
1755 \def\@ShowWindow#1{%
1756   \expandafter\[email protected]\csname @#[email protected]\endcsname%
1757   \expandafter\[email protected]\csname @#[email protected]\endcsname%
1758   \expandafter\[email protected]\csname @#[email protected]\endcsname%
1759   \expandafter\[email protected]\csname @#[email protected]\endcsname%
1760   \expandafter\[email protected]\csname @#[email protected]\endcsname%
1761   \expandafter\[email protected]\csname @#[email protected]\endcsname%
1762   \ifcase\csname @#[email protected]\endcsname%
1763     % 0 = disabled
1764     \relax%
1765   \or%
1766     % 1 = transparent => frame+contents
1767     \[email protected]{#1}%
1768     \[email protected]{#1}%
1769   \or%
1770     % 2 = colored => frame+box+contents
1771     \[email protected]{#1}%
1772     \[email protected]{#1}%
1773   \or%
1774     % 3 = graphics => graphics+contents
1775     \[email protected]{#1}%
1776     \[email protected]{#1}%
1777     \[email protected]{#1}%
1778   \or%
1779     % 4 = extended => frame+box+graphics+contents
1780     \[email protected]{#1}%
1781     \[email protected]{#1}%
1782     \[email protected]{#1}%
1783   \fi%
1784 }
1785 %
1786 \def\[email protected]#1{%
1787   \bgroup
1788     \color{#1BorderColor}%
1789     \@tempdimb=\[email protected]  \advance\@tempdimb by \[email protected]%
1790     \put(\[email protected]\[email protected],\[email protected]\[email protected])%
1791      {\vrule width\[email protected] height\@tempdimb depth-\[email protected]}%
1792     \put(\[email protected]\[email protected],\[email protected]\[email protected])%
1793      {\vrule width\[email protected] height0pt depth\[email protected]}%
1794     \@tempdima=\[email protected]  \advance\@tempdima by -\[email protected]%
1795     \@tempdimc=\[email protected]  \advance\@tempdimc by \[email protected]%
1796     \put(\[email protected]\@tempdima,\[email protected]\[email protected])%
1797      {\vrule width\[email protected] height\@tempdimb depth\[email protected]}%
1798     \put(\[email protected]\@tempdimc,\[email protected]\[email protected])%
1799      {\vrule width\[email protected] height\@tempdimb depth\[email protected]}%
1800   \egroup
1801 }
1802 \def\[email protected]#1{%
1803   \ifdim\[email protected]=0pt%
1804     \[email protected]{#1}%
1805     \put(\[email protected]\[email protected],\[email protected]\[email protected])%
1806      {\color{#1BackgroundColor}\vrule height\[email protected]%
1807      depth0pt width\[email protected]}%
1808   \else
1809     \@tempdima=\[email protected]  \advance\@tempdima by -\[email protected]%
1810     \@tempdimb=\[email protected]  \advance\@tempdimb by \[email protected]%
1811     \@tempdimc=\[email protected]  \advance\@tempdimc by -2.0\[email protected]%
1812     % bottom line: corners and bottom border
1813     \dimen0\[email protected]  \advance\dimen0\[email protected]   % big radius
1814     \put(\[email protected]\@tempdima,\[email protected]\@tempdimb){%
1815       \color{#1BorderColor}%
1816       \[email protected]{\@height}{\@depth}%
1817       \vrule width\@tempdimc height0pt depth\dimen0%
1818       \[email protected]{\@height}{\@depth}%
1819     }%
1820     \dimen0\[email protected]  \advance\dimen0 by -0.3pt%
1821     \put(\[email protected]\[email protected],\[email protected]\@tempdimb){%
1822       \color{#1BackgroundColor}%
1823       \[email protected]{\@height}{\@depth}%
1824       \vrule width\@tempdimc height0pt depth\dimen0%
1825       \[email protected]{\@height}{\@depth}%
1826     }%
1827     % top line: corners and top border
1828     \@tempdimb=\[email protected]  \advance\@tempdimb by -\[email protected]%
1829     \advance\@tempdimb by \[email protected]%
1830     \dimen0\[email protected]  \advance\dimen0\[email protected]   % big radius
1831     \put(\[email protected]\@tempdima,\[email protected]\@tempdimb){%
1832       \color{#1BorderColor}%
1833       \[email protected]{\@depth}{\@height}%
1834       \vrule width\@tempdimc height\dimen0 depth0pt%
1835       \[email protected]{\@depth}{\@height}%
1836     }%
1837     \dimen0\[email protected]%
1838     \dimen0\[email protected]  \advance\dimen0 by -0.3pt%
1839     \put(\[email protected]\[email protected],\[email protected]\@tempdimb){%
1840       \color{#1BackgroundColor}%
1841       \[email protected]{\@depth}{\@height}%
1842       \vrule width\@tempdimc height\dimen0 depth0pt%
1843       \[email protected]{\@depth}{\@height}%
1844     }%
1845     % middle line: side borders and center
1846     \@tempdimb=\[email protected]  \advance\@tempdimb by .93\[email protected]%
1847     \@tempdimc=\[email protected]  \advance\@tempdimc by -1.86\[email protected]%
1848     \put(\[email protected]\@tempdima,\[email protected]\@tempdimb){%
1849       \color{#1BorderColor}%
1850       \vrule width\[email protected] height\@tempdimc depth0pt%
1851       \color{#1BackgroundColor}%
1852       \vrule width\[email protected] height\@tempdimc depth0pt%
1853       \color{#1BorderColor}%
1854       \vrule width\[email protected] height\@tempdimc depth0pt%
1855     }%
1856   \fi%
1857 }
1858 \def\[email protected]#1{%
1859   \edef\tempFileName{\csname @#[email protected]\endcsname}%
1860   \put(\[email protected]\[email protected],\[email protected]\[email protected])%
1861    {\includegraphics[width=\[email protected],height=\[email protected]]{\tempFileName}}%
1862 }
1863 \def\[email protected]#1{%
1864   \put(\[email protected]\[email protected],\[email protected]\[email protected])%
1865    {\makebox(\[email protected]\[email protected],\[email protected]\[email protected])%
1866    {\csname @#[email protected]\endcsname}}%
1867 }
1868 %
1869 \def\[email protected]{%
1870   \put(\[email protected]\@[email protected],\[email protected]\@[email protected])%
1871    {\makebox(\[email protected]\@[email protected],\[email protected]\@[email protected])%
1872    {\[email protected]@}}%
1873 }
1874
1875
1876 % --------------------------------------------------------------
1877 % CORNER DRAWING: drawing a few black rectangles, because
1878 % (La)TeX‘s graphical features are very limited...
1879 %
1880 % NOTE: overlap of bars is necessary to avoid white
1881 % lines due to alialising effects.
1882 % The straight forward method, namely putting together simple
1883 % adjacent bars, does not work properly.
1884 % NOTE: \[email protected] means 0pt. \@width, \@height, \@depth are macros for
1885 % the strings width, height, depth. 120 calls save enough memory
1886 % space to justify that in this section.
1887 \def\[email protected]#1#2{
1888   \vrule \@width.070\dimen0 #1 \[email protected] #2 1.0\dimen0  \kern-.070\dimen0%
1889   \vrule \@width.170\dimen0 #1 \[email protected] #2 .99\dimen0  \kern-.170\dimen0%
1890   \vrule \@width.221\dimen0 #1 \[email protected] #2 .98\dimen0  \kern-.221\dimen0%
1891   \vrule \@width.262\dimen0 #1 \[email protected] #2 .97\dimen0  \kern-.262\dimen0%
1892   \vrule \@width.296\dimen0 #1 \[email protected] #2 .96\dimen0  \kern-.296\dimen0%
1893   \vrule \@width.327\dimen0 #1 \[email protected] #2 .95\dimen0  \kern-.327\dimen0%
1894   \vrule \@width.354\dimen0 #1 \[email protected] #2 .94\dimen0  \kern-.354\dimen0%
1895   \vrule \@width.380\dimen0 #1 \[email protected] #2 .93\dimen0  \kern-.380\dimen0%
1896   \vrule \@width.403\dimen0 #1 \[email protected] #2 .92\dimen0  \kern-.403\dimen0%
1897   \vrule \@width.425\dimen0 #1 \[email protected] #2 .91\dimen0  \kern-.425\dimen0%
1898   \vrule \@width.446\dimen0 #1 \[email protected] #2 .90\dimen0  \kern-.446\dimen0%
1899   \vrule \@width.465\dimen0 #1 \[email protected] #2 .89\dimen0  \kern-.465\dimen0%
1900   \vrule \@width.484\dimen0 #1 \[email protected] #2 .88\dimen0  \kern-.484\dimen0%
1901   \vrule \@width.502\dimen0 #1 \[email protected] #2 .87\dimen0  \kern-.502\dimen0%
1902   \vrule \@width.519\dimen0 #1 \[email protected] #2 .86\dimen0  \kern-.519\dimen0%
1903   \vrule \@width.535\dimen0 #1 \[email protected] #2 .85\dimen0  \kern-.535\dimen0%
1904   \vrule \@width.550\dimen0 #1 \[email protected] #2 .84\dimen0  \kern-.550\dimen0%
1905   \vrule \@width.565\dimen0 #1 \[email protected] #2 .83\dimen0  \kern-.565\dimen0%
1906   \vrule \@width.579\dimen0 #1 \[email protected] #2 .82\dimen0  \kern-.579\dimen0%
1907   \vrule \@width.593\dimen0 #1 \[email protected] #2 .81\dimen0  \kern-.593\dimen0%
1908   \vrule \@width.606\dimen0 #1 \[email protected] #2 .80\dimen0  \kern-.606\dimen0%
1909   \vrule \@width.619\dimen0 #1 \[email protected] #2 .79\dimen0  \kern-.619\dimen0%
1910   \vrule \@width.632\dimen0 #1 \[email protected] #2 .78\dimen0  \kern-.632\dimen0%
1911   \vrule \@width.644\dimen0 #1 \[email protected] #2 .77\dimen0  \kern-.644\dimen0%
1912   \vrule \@width.656\dimen0 #1 \[email protected] #2 .76\dimen0  \kern-.656\dimen0%
1913   \vrule \@width.668\dimen0 #1 \[email protected] #2 .75\dimen0  \kern-.668\dimen0%
1914   \vrule \@width.679\dimen0 #1 \[email protected] #2 .74\dimen0  \kern-.679\dimen0%
1915   \vrule \@width.689\dimen0 #1 \[email protected] #2 .73\dimen0  \kern-.689\dimen0%
1916   \vrule \@width.699\dimen0 #1 \[email protected] #2 .72\dimen0  \kern-.699\dimen0%
1917   \vrule \@width.709\dimen0 #1 \[email protected] #2 .71\dimen0  \kern-.709\dimen0%
1918   %
1919   \vrule #2 .070\dimen0 #1 \[email protected] \@width1.0\dimen0  \kern-1.0\dimen0%
1920   \vrule #2 .170\dimen0 #1 \[email protected] \@width.99\dimen0  \kern-.99\dimen0%
1921   \vrule #2 .221\dimen0 #1 \[email protected] \@width.98\dimen0  \kern-.98\dimen0%
1922   \vrule #2 .262\dimen0 #1 \[email protected] \@width.97\dimen0  \kern-.97\dimen0%
1923   \vrule #2 .296\dimen0 #1 \[email protected] \@width.96\dimen0  \kern-.96\dimen0%
1924   \vrule #2 .327\dimen0 #1 \[email protected] \@width.95\dimen0  \kern-.95\dimen0%
1925   \vrule #2 .354\dimen0 #1 \[email protected] \@width.94\dimen0  \kern-.94\dimen0%
1926   \vrule #2 .380\dimen0 #1 \[email protected] \@width.93\dimen0  \kern-.93\dimen0%
1927   \vrule #2 .403\dimen0 #1 \[email protected] \@width.92\dimen0  \kern-.92\dimen0%
1928   \vrule #2 .425\dimen0 #1 \[email protected] \@width.91\dimen0  \kern-.91\dimen0%
1929   \vrule #2 .446\dimen0 #1 \[email protected] \@width.90\dimen0  \kern-.90\dimen0%
1930   \vrule #2 .465\dimen0 #1 \[email protected] \@width.89\dimen0  \kern-.89\dimen0%
1931   \vrule #2 .484\dimen0 #1 \[email protected] \@width.88\dimen0  \kern-.88\dimen0%
1932   \vrule #2 .502\dimen0 #1 \[email protected] \@width.87\dimen0  \kern-.87\dimen0%
1933   \vrule #2 .519\dimen0 #1 \[email protected] \@width.86\dimen0  \kern-.86\dimen0%
1934   \vrule #2 .535\dimen0 #1 \[email protected] \@width.85\dimen0  \kern-.85\dimen0%
1935   \vrule #2 .550\dimen0 #1 \[email protected] \@width.84\dimen0  \kern-.84\dimen0%
1936   \vrule #2 .565\dimen0 #1 \[email protected] \@width.83\dimen0  \kern-.83\dimen0%
1937   \vrule #2 .579\dimen0 #1 \[email protected] \@width.82\dimen0  \kern-.82\dimen0%
1938   \vrule #2 .593\dimen0 #1 \[email protected] \@width.81\dimen0  \kern-.81\dimen0%
1939   \vrule #2 .606\dimen0 #1 \[email protected] \@width.80\dimen0  \kern-.80\dimen0%
1940   \vrule #2 .619\dimen0 #1 \[email protected] \@width.79\dimen0  \kern-.79\dimen0%
1941   \vrule #2 .632\dimen0 #1 \[email protected] \@width.78\dimen0  \kern-.78\dimen0%
1942   \vrule #2 .644\dimen0 #1 \[email protected] \@width.77\dimen0  \kern-.77\dimen0%
1943   \vrule #2 .656\dimen0 #1 \[email protected] \@width.76\dimen0  \kern-.76\dimen0%
1944   \vrule #2 .668\dimen0 #1 \[email protected] \@width.75\dimen0  \kern-.75\dimen0%
1945   \vrule #2 .679\dimen0 #1 \[email protected] \@width.74\dimen0  \kern-.74\dimen0%
1946   \vrule #2 .689\dimen0 #1 \[email protected] \@width.73\dimen0  \kern-.73\dimen0%
1947   \vrule #2 .699\dimen0 #1 \[email protected] \@width.72\dimen0  \kern-.72\dimen0%
1948   \vrule #2 .709\dimen0 #1 \[email protected] \@width.71\dimen0  \kern-.71\dimen0%
1949 }
1950 \def\[email protected]#1#2{
1951   \vrule #2 .070\dimen0 #1 \[email protected] \@width1.0\dimen0  \kern-.99\dimen0%
1952   \vrule #2 .170\dimen0 #1 \[email protected] \@width.99\dimen0  \kern-.98\dimen0%
1953   \vrule #2 .221\dimen0 #1 \[email protected] \@width.98\dimen0  \kern-.97\dimen0%
1954   \vrule #2 .262\dimen0 #1 \[email protected] \@width.97\dimen0  \kern-.96\dimen0%
1955   \vrule #2 .296\dimen0 #1 \[email protected] \@width.96\dimen0  \kern-.95\dimen0%
1956   \vrule #2 .327\dimen0 #1 \[email protected] \@width.95\dimen0  \kern-.94\dimen0%
1957   \vrule #2 .354\dimen0 #1 \[email protected] \@width.94\dimen0  \kern-.93\dimen0%
1958   \vrule #2 .380\dimen0 #1 \[email protected] \@width.93\dimen0  \kern-.92\dimen0%
1959   \vrule #2 .403\dimen0 #1 \[email protected] \@width.92\dimen0  \kern-.91\dimen0%
1960   \vrule #2 .425\dimen0 #1 \[email protected] \@width.91\dimen0  \kern-.90\dimen0%
1961   \vrule #2 .446\dimen0 #1 \[email protected] \@width.90\dimen0  \kern-.89\dimen0%
1962   \vrule #2 .465\dimen0 #1 \[email protected] \@width.89\dimen0  \kern-.88\dimen0%
1963   \vrule #2 .484\dimen0 #1 \[email protected] \@width.88\dimen0  \kern-.87\dimen0%
1964   \vrule #2 .502\dimen0 #1 \[email protected] \@width.87\dimen0  \kern-.86\dimen0%
1965   \vrule #2 .519\dimen0 #1 \[email protected] \@width.86\dimen0  \kern-.85\dimen0%
1966   \vrule #2 .535\dimen0 #1 \[email protected] \@width.85\dimen0  \kern-.84\dimen0%
1967   \vrule #2 .550\dimen0 #1 \[email protected] \@width.84\dimen0  \kern-.83\dimen0%
1968   \vrule #2 .565\dimen0 #1 \[email protected] \@width.83\dimen0  \kern-.82\dimen0%
1969   \vrule #2 .579\dimen0 #1 \[email protected] \@width.82\dimen0  \kern-.81\dimen0%
1970   \vrule #2 .593\dimen0 #1 \[email protected] \@width.81\dimen0  \kern-.80\dimen0%
1971   \vrule #2 .606\dimen0 #1 \[email protected] \@width.80\dimen0  \kern-.79\dimen0%
1972   \vrule #2 .619\dimen0 #1 \[email protected] \@width.79\dimen0  \kern-.78\dimen0%
1973   \vrule #2 .632\dimen0 #1 \[email protected] \@width.78\dimen0  \kern-.77\dimen0%
1974   \vrule #2 .644\dimen0 #1 \[email protected] \@width.77\dimen0  \kern-.76\dimen0%
1975   \vrule #2 .656\dimen0 #1 \[email protected] \@width.76\dimen0  \kern-.75\dimen0%
1976   \vrule #2 .668\dimen0 #1 \[email protected] \@width.75\dimen0  \kern-.74\dimen0%
1977   \vrule #2 .679\dimen0 #1 \[email protected] \@width.74\dimen0  \kern-.73\dimen0%
1978   \vrule #2 .689\dimen0 #1 \[email protected] \@width.73\dimen0  \kern-.72\dimen0%
1979   \vrule #2 .699\dimen0 #1 \[email protected] \@width.72\dimen0  \kern-.71\dimen0%
1980   \vrule #2 .709\dimen0 #1 \[email protected] \@width.71\dimen0  \kern-.709\dimen0%
1981   %
1982   \vrule \@width.709\dimen0 #1 \[email protected] #2 .71\dimen0  \kern-.699\dimen0%
1983   \vrule \@width.699\dimen0 #1 \[email protected] #2 .72\dimen0  \kern-.689\dimen0%
1984   \vrule \@width.689\dimen0 #1 \[email protected] #2 .73\dimen0  \kern-.679\dimen0%
1985   \vrule \@width.679\dimen0 #1 \[email protected] #2 .74\dimen0  \kern-.668\dimen0%
1986   \vrule \@width.668\dimen0 #1 \[email protected] #2 .75\dimen0  \kern-.656\dimen0%
1987   \vrule \@width.656\dimen0 #1 \[email protected] #2 .76\dimen0  \kern-.644\dimen0%
1988   \vrule \@width.644\dimen0 #1 \[email protected] #2 .77\dimen0  \kern-.632\dimen0%
1989   \vrule \@width.632\dimen0 #1 \[email protected] #2 .78\dimen0  \kern-.619\dimen0%
1990   \vrule \@width.619\dimen0 #1 \[email protected] #2 .79\dimen0  \kern-.606\dimen0%
1991   \vrule \@width.606\dimen0 #1 \[email protected] #2 .80\dimen0  \kern-.593\dimen0%
1992   \vrule \@width.593\dimen0 #1 \[email protected] #2 .81\dimen0  \kern-.579\dimen0%
1993   \vrule \@width.579\dimen0 #1 \[email protected] #2 .82\dimen0  \kern-.565\dimen0%
1994   \vrule \@width.565\dimen0 #1 \[email protected] #2 .83\dimen0  \kern-.550\dimen0%
1995   \vrule \@width.550\dimen0 #1 \[email protected] #2 .84\dimen0  \kern-.535\dimen0%
1996   \vrule \@width.535\dimen0 #1 \[email protected] #2 .85\dimen0  \kern-.519\dimen0%
1997   \vrule \@width.519\dimen0 #1 \[email protected] #2 .86\dimen0  \kern-.502\dimen0%
1998   \vrule \@width.502\dimen0 #1 \[email protected] #2 .87\dimen0  \kern-.484\dimen0%
1999   \vrule \@width.484\dimen0 #1 \[email protected] #2 .88\dimen0  \kern-.465\dimen0%
2000   \vrule \@width.465\dimen0 #1 \[email protected] #2 .89\dimen0  \kern-.446\dimen0%
2001   \vrule \@width.446\dimen0 #1 \[email protected] #2 .90\dimen0  \kern-.425\dimen0%
2002   \vrule \@width.425\dimen0 #1 \[email protected] #2 .91\dimen0  \kern-.403\dimen0%
2003   \vrule \@width.403\dimen0 #1 \[email protected] #2 .92\dimen0  \kern-.380\dimen0%
2004   \vrule \@width.380\dimen0 #1 \[email protected] #2 .93\dimen0  \kern-.354\dimen0%
2005   \vrule \@width.354\dimen0 #1 \[email protected] #2 .94\dimen0  \kern-.327\dimen0%
2006   \vrule \@width.327\dimen0 #1 \[email protected] #2 .95\dimen0  \kern-.296\dimen0%
2007   \vrule \@width.296\dimen0 #1 \[email protected] #2 .96\dimen0  \kern-.262\dimen0%
2008   \vrule \@width.262\dimen0 #1 \[email protected] #2 .97\dimen0  \kern-.221\dimen0%
2009   \vrule \@width.221\dimen0 #1 \[email protected] #2 .98\dimen0  \kern-.170\dimen0%
2010   \vrule \@width.170\dimen0 #1 \[email protected] #2 .99\dimen0  \kern-.070\dimen0%
2011   \vrule \@width.070\dimen0 #1 \[email protected] #2 1.0\dimen0%
2012 }
2013
2014
2015 %-------------- Verbatim fix -------------
2016 % This code is provided by DP Story
2017 \newdimen\@PDFspaceleft
2018 \def\@PDFpagespace{%
2019   \ifdim\pagetotal=0pt
2020      \@PDFspaceleft=\vsize
2021    \else
2022      \@PDFspaceleft=\pagegoal
2023      \advance\@PDFspaceleft by-\pagetotal
2024  \fi}
2025 \let\@PDFverbatim\verbatim
2026 \let\@PDFendverbatim\endverbatim
2027 \AtBeginDocument{%
2028    \def\verbatim{\begingroup\setbox0=\vbox\bgroup
2029          \hsize=\linewidth%
2030          \@PDFverbatim\[email protected]}
2031    \def\endverbatim{\@PDFendverbatim\egroup
2032     \@PDFpagespace\ifdim\@PDFspaceleft>\ht0
2033        \else
2034         \setbox1=\vsplit0 to\@PDFspaceleft
2035         \[email protected]\unvbox1 \penalty\@M
2036        \fi
2037     \ifvoid0\relax\else\[email protected]\unvbox0\fi
2038     \endgroup}
2039   \def\@verb{\@vobeyspaces \frenchspacing\@sverb}
2040   \[email protected]% added by Shujun Li
2041     \begin{CJK*}{GBK}{kai}\CJKtilde%
2042     \input cnames.tex
2043   \fi% end of chinese option
2044 }
2045 % end of DPS‘ code
2046 %-------------- end of Verbatim fix -------------
2047
2048
2049 % --------------------------------------------------------------
2050 % FINAL STUFF: \AtEndDocument settings and config file input
2051 %
2052 \AtEndDocument{%
2053   \clearpage%
2054   \addtocounter{page}{-1}%
2055   \addtocounter{RealPage}{-1}%
2056   \immediate\write\@auxout{\string\gdef\string\LastPageString{\thepage}}%
2057   \immediate\write\@auxout{\string\expandafter\string\gdef%
2058    \string\csname\space LastPageC\arabic{chapter}String\string\endcsname{\thepage}}%
2059   \immediate\write\@auxout{\string\gdef\string\LastPage{\arabic{RealPage}}}%
2060   \immediate\write\@auxout{\string\gdef\string\ChapterNumber{\arabic{chapter}}}%
2061   \addtocounter{page}{1}%
2062   \[email protected]\end{CJK*}\fi% added by Shujun Li
2063 }
2064
2065 \[email protected]%
2066   \relax%
2067 \else%
2068   \IfFileExists{pdfwin.cfg}{\input pdfwin.cfg}%
2069   {\[email protected]{pdfwin.cfg does not exist!}}%
2070 \fi
2071
2072 \endinput
2073
2074 %%%%%%%%%%%%%%%%%%% EOF

pdfwin.cfg

% pdfwin.cfg
%
% this file is read by pdfwin.sty
% if you want to modify pdfwin‘s default behavior, you should do it here.

% the following codes are changed by Shujun Li (www.hooklee.com) for his talk
% on CityU-PolyU joint seminar series of Chaos and System Control, 7 May 2004

% I added a new length to support the explicit setting of the width of the background graphics
\newlength\@[email protected]
\setlength\@[email protected]{0.25\textwidth}
\[email protected]{pdfwinScreen}{imagewidth}{\setlength\@[email protected]{#1}}
\def\[email protected]{%
  \ifcase\@[email protected]%
  \or%
  \or%
    % 2 = colored
    \put(0,0){\bgroup\color{ScreenBackgroundColor}\vrule%
      height\paperheight depth0pt width\paperwidth\egroup}%
  \or%
    % 3 = graphics
    \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]%
      {\@[email protected]}}%
  \or%
    % 4 = extended
    \put(0,0){\bgroup\color{ScreenBackgroundColor}\vrule%
      height\paperheight depth0pt width\paperwidth\egroup}%
    \put(0,0){\includegraphics[width=\paperwidth,height=\paperheight]%
      {\@[email protected]}}%
  \or%
    % 5 = wallpaper
    \bgroup%
      \setbox0=\hbox{\includegraphics[width=\@[email protected]]{\@[email protected]}}%
      \setlength{\unitlength}{1sp}%
      \@tempcnta=\paperwidth%
      \count255=\wd0%
      \divide\@tempcnta by \count255%
      \setbox2=\hbox{\count255=-1%
        \loop\ifnum\count255<\@tempcnta\advance\count255 by 1\copy0\repeat\hss}
      \@tempcntb=\paperheight%
      \count255=\ht0%
      \divide\@tempcntb by \count255%
      \advance\@tempcntb by 1%
      \multiput(0,0)(0,\count255){\@tempcntb}{\copy2}%
    \egroup%
  \fi%
}

% I increased the maximal page number to be 6
\setcounter{maxdynamicpages}{6}
%
% EOF

truncate.sty

  1 % truncate.sty  ver 3.6   20-Aug-2001    Donald Arseneau
  2 % This LaTeX program is released to the public domain.
  3 %
  4 % Truncate text to a specified width:  \truncate [marker]{width}{text}
  5 %
  6 % If the text is too wide to fit in the specified width, then it is
  7 % truncated, and a continuation marker is shown at the end. The default
  8 % marker, used when the optional "[marker]" parameter is omitted, is
  9 % "\,\dots".  You can change this default by redefining "\TruncateMarker"
 10 % ("\renewcommand{\TruncateMarker}{}").
 11 %
 12 % Normally, the text (whether truncated or not) is printed flush-left
 13 % in a box with exactly the width specified. The package option "[fit]"
 14 % ("\usepackage[fit]{truncate}") causes the output text to have its
 15 % natural width, up to a maximum of the specified width.
 16 %
 17 % The text will not normally be truncated in the middle of a word,
 18 % nor at a space specified by the tie "~".  For example:
 19 %
 20 %     "\truncate{122pt}{This text has been~truncated}"
 21 % gives
 22 %     "This text has...      "
 23 %
 24 % You can give one of the package options "[hyphenate]", "[breakwords]",
 25 % or "[breakall]" to allow breaking in the middle of words. The first
 26 % two only truncate at hyphenation points; with the difference being that
 27 % "breakwords" suppresses the hyphen character.  On the other hand,
 28 % "breakall" allows truncation at any character.  For example:
 29 %
 30 %     "\truncate{122pt}{This text has been~truncated}"
 31 % gives
 32 %     "This text has been trun-..."   (hyphenate)
 33 %     "This text has been trun... "   (breakwords)
 34 %     "This text has been trunc..."   (breakall)
 35 %
 36 % (All of these options work through TeX‘s hyphenation mechanism.)
 37 %
 38 \ProvidesPackage{truncate}[2001/08/20 \space ver 3.6]
 39 %
 40 % [breakwords] allows hyphenation but with invisible hyphen characters
 41 \DeclareOption{breakwords}{%
 42    \let\@[email protected]\relax
 43    \expandafter\chardef\csname \string\@TruncHyph T1\endcsname 23
 44    \expandafter\chardef\csname \string\@TruncHyph OT1\endcsname 223
 45    \expandafter\chardef\csname \string\@TruncHyph LY1\endcsname 0
 46    \def\@[email protected]{\hyphenpenalty\[email protected] \exhyphenpenalty\[email protected]
 47      \doublehyphendemerits\[email protected] \finalhyphendemerits\[email protected]
 48      \the\@[email protected] % set invisible hyphenchars for all fonts used
 49   }}
 50 %
 51 % [breakall] is like breakwords, but all characters are treated like
 52 % the letter "c"; the default language 0 patterns allow hyphenation
 53 % c-c-c-c-c-c-c-c-c.  This means we don‘t need special patterns!
 54 \DeclareOption{breakall}{\ExecuteOptions{breakwords}%
 55     \expandafter\def\expandafter\@[email protected]\expandafter{\@[email protected]
 56       \@tempcnta\[email protected] \chardef\c`\c % in knuth patterns, c allows hyphens
 57       \loop \lccode\@tempcnta\c \advance\@tempcnta\@ne
 58       \ifnum\@tempcnta<\@cclvi \repeat}%
 59     \def\@[email protected]{% force US english
 60       \lefthyphenmin\@ne \righthyphenmin\@ne
 61       \doublehyphendemerits\language
 62       \language\[email protected] % default English language
 63       \let\language\doublehyphendemerits
 64       \uchyph\@ne
 65     }}
 66 %
 67 % [hyphenate] ordinary hyphenation for breakpoints
 68 \DeclareOption{hyphenate}{% takes precedence over breakwords
 69    \def\@[email protected]{\hyphenpenalty\[email protected]@n}\let\@[email protected]\relax}
 70 %
 71 % [fit] use true size of truncated text, not requested size.
 72 \DeclareOption{fit}{\def\@[email protected]{%
 73    \setbox\[email protected]\hbox{\unhbox\[email protected]\unskip\unskip\@tempa}%
 74    \ifdim\wd\[email protected]>\hsize \hbox to\hsize{\unhbox\[email protected]}\else \box\[email protected] \fi}}
 75 %
 76 % Defaults:
 77 \let\@[email protected]\@empty
 78 \def\@[email protected]{\hyphenpenalty\@M}
 79 \def\@[email protected]{\hbox to\hsize{\unhbox\[email protected]\unskip\unskip\@tempa\hfil}}
 80 \let\@[email protected]\@empty
 81
 82 \ProcessOptions\relax
 83
 84 \providecommand{\TruncateMarker}{\,\dots}
 85
 86 \newcommand{\truncate}[3][\TruncateMarker]{% #1=marker #2=width #3=text
 87   \parbox[b]{#2}{\tolerance9999 \emergencystretch .216\hsize
 88    \vbadness\maxdimen \vfuzz\vsize % no overfull warnings
 89    \hbadness\maxdimen \hfuzz\vsize
 90    %  set up hyphenchar switching for all fonts used.
 91    \edef\@tempb{\the\@[email protected]}% save whole stack
 92    \global\@[email protected]{}%
 93    \ifx\@[email protected]\relax
 94      \let\@[email protected]\selectfont
 95      \def\selectfont{\@[email protected]\@[email protected]}%
 96    \fi
 97    \@[email protected] % do it for current font
 98    \setbox\[email protected]\vbox\bgroup
 99     % First set text in a hbox to see if it fits.
100     \setbox\[email protected]\@@line{\ignorespaces #3\unskip\hfil}%
101     \ifnum\badness>\@M  % text does not fit
102       \settowidth\rightskip{#1}%
103       \advance\rightskip \[email protected]\@plus\[email protected]
104       \parfillskip-\@ne\rightskip \@plus\@ne fil
105       \parshape \[email protected] \[email protected]\hsize \[email protected]\maxdimen \linepenalty60
106       \tracinglostchars\[email protected]
107       %% \let\par\relax -- don‘t do this because \vskip causes infinite loop
108       \@[email protected] % must set language before paragraph
109       \noindent \vadjust{\penalty-\@MM}% for splitting off first line
110       \nobreak\hskip\[email protected] % allow first word hyphenation
111       \ignorespaces #3% the text
112       \pretolerance\hyphenpenalty \@[email protected] % set up `hyphenation‘
113       \@@par
114       \ifnum\prevgraf>\@ne
115        \egroup \def\@tempa{#1}% use truncation marker
116       \else
117        \egroup \let\@tempa\@empty% no linebreak, so all text fits; no marker
118       \fi
119     \else
120       \box\[email protected] \egroup \let\@tempa\@empty
121     \fi
122    \setbox\@tempboxa\vsplit\[email protected] to\[email protected] \unvbox\@tempboxa
123    \unskip\unpenalty\unpenalty
124    \setbox\[email protected]\lastbox
125    \nointerlineskip
126    \hfuzz\[email protected]
127    \@[email protected]
128    \let\@[email protected]\@firstofone \the\@[email protected] % restore hyphenchars
129    \global\@[email protected]\expandafter{\@tempb}% restore the stack itself
130  }}
131 % (Note that the text may be proessed twice.  I could avoid that
132 % if there are problems with global counters etc.)
133
134 % we save (implicit global) hyphenchar settings for each font on a
135 % manual stack -- the token register \@[email protected] -- before changing
136 % them.  We execute \@[email protected] to set them to the invisible
137 % characters and then again to restore them.  (I can‘t imagine this
138 % will ever be required.)
139 \newtoks\@[email protected]
140 \global\@[email protected]{}
141 %
142 \def\@[email protected]{\begingroup
143   \edef\@tempa{%
144     \hyphenchar\the\font=\noexpand\@[email protected]{\the\hyphenchar\font}\relax
145     \the\@[email protected]}%
146   \global\@[email protected]\expandafter{\@tempa}%
147 %  \hyphenchar\font\[email protected]
148   \endgroup}
149 %
150 % select an invisible character for hyphenation.  Use \textcompwordmark, if
151 % any; use selected numbers for certain encodings (OT1 uses a *missing*
152 % character); use a space otherwise.
153 \def\@[email protected]#1{%
154   \@ifundefined{\[email protected]\string\textcompwordmark}{%
155     \@ifundefined{\string\@TruncHyph\[email protected]}%
156       {32}% If no appropriate character, guess space character may be blank
157       {\csname \string\@TruncHyph\[email protected]\endcsname}%
158   }{\csname\[email protected]\string\textcompwordmark\endcsname}}%
时间: 2024-11-10 03:53:35

pdfwin_slides的相关文章