summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/thumbpdf/thumbpdf.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:46:03 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:46:03 +0000
commit873660d1a83ece926fe7206288dda9c36b349c1b (patch)
treea48f77125c309a355b5d0eb58d6b24446abe9d62 /Master/texmf-dist/tex/generic/thumbpdf/thumbpdf.tex
parent2939242967231097459df0fc3150fabc2f639111 (diff)
generic 1
git-svn-id: svn://tug.org/texlive/trunk@613 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/thumbpdf/thumbpdf.tex')
-rw-r--r--Master/texmf-dist/tex/generic/thumbpdf/thumbpdf.tex278
1 files changed, 278 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/thumbpdf/thumbpdf.tex b/Master/texmf-dist/tex/generic/thumbpdf/thumbpdf.tex
new file mode 100644
index 00000000000..0bfdf2b8eda
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/thumbpdf/thumbpdf.tex
@@ -0,0 +1,278 @@
+% File: thumbpdf.tex
+% Project: thumbpdf
+% Version: 2005/07/06 v3.8
+% Author: Heiko Oberdiek
+%
+% Copyright: Copyright (C) 1999-2005 Heiko Oberdiek.
+%
+% This work may be distributed and/or modified under
+% the conditions of the LaTeX Project Public License,
+% either version 1.3 of this license or (at your option)
+% any later version. The latest version of this license
+% is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions
+% of LaTeX version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Heiko Oberdiek.
+%
+% See file "readme.txt" for a list of files that
+% belong to this project.
+%
+% Function: Program to include thumbnails as images.
+% It looks for thumbnail files `thb*.png' and
+% includes them as images in the output pdf file
+% `thumbpdf.pdf'. The perl script `thumbpdf(.pl)'
+% automatically calls pdftex with this file to
+% generate `thumbpdf.pdf' and produces the data
+% files, that contains the necessary pdf image objects
+% for package `thumbpdf.sty'.
+%
+% Requirement: * pdftex
+% * thumbnails `thb*.png'
+%
+% Use: * Syntax: pdftex thumbpdf
+% * \thumbmax:
+% Because it takes some time to look for 1000 thumbnail
+% files, a maximum number can be specified:
+% pdftex \def\thumbmax{20}\input thumbpdf
+% * \thumbjob:
+% This macro contains the name of the user's TeX file
+% without extension (`<jobname>'). It is needed to build
+% the name of the optional file `<jobname>.tno', that
+% contains extra thumbnail declarations:
+% pdftex \def\thumbjob{example}\input thumbpdf
+% Then `example.tno' are read to get additional
+% thumbnails.
+%
+% History: 1999/02/14 v1.0: first public release
+% 1999/02/23 v1.1
+% 1999/03/01 v1.2
+% 1999/03/12 v1.3: Copyright: LPPL
+% 1999/05/05 v1.4
+% 1999/06/13 v1.5
+% 1999/07/27 v1.6
+% 1999/08/08 v1.7: pdfTeX 0.14a
+% 1999/09/09 v1.8
+% 1999/09/16 v1.9
+% 2000/01/11 v1.10: \immediate before \pdfximage removed,
+% because it is obsolete and because of a problem with
+% a pre-release version of pdfTeX 0.14d.
+% 2000/01/19 v1.11
+% 2000/02/11 v1.12: \thumbjob added.
+% 2000/02/22 v2.0: Looking for `\thumbjob.tno' only, the
+% file name `thumbopt.tex' is not supported anymore.
+% 2000/02/28 v2.1
+% 2000/03/07 v2.2
+% 2000/03/22 v2.3
+% 2000/04/10 v2.4: Version is also printed on screen.
+% 2000/07/29 v2.5
+% 2000/09/27 v2.6
+% 2000/10/27 v2.7
+% 2001/01/12 v2.8
+% 2001/03/29 v2.9
+% 2001/04/02 v2.10
+% 2001/04/26 v2.11
+% 2002/01/11 v3.0
+% 2002/05/26 v3.1
+% 2002/05/26 v3.2
+% 2003/03/19 v3.3
+% 2003/06/06 v3.4
+% 2004/10/24 v3.5: LPPL 1.3.
+% 2004/11/19 v3.6
+% 2004/11/19 v3.7: For easier debugging, the special
+% thumbpdf objects are now valid PDF objects that
+% are referenced in the Catalog.
+% 2005/07/06 v3.8
+
+\immediate\write16{%
+ File: thumbpdf.tex 2005/07/06 v3.8 %
+ Including thumbnails as images (HO)%
+}
+\immediate\write16{%
+****************************************************************}
+\immediate\write16{%
+* Generating `thumbpdf.pdf', each page with a found thumbnail. *}
+\immediate\write16{%
+****************************************************************}
+
+\def\END{\csname @@end\endcsname\end}
+
+% Check, if LaTeX format
+\ifx\mbox\undefined
+\else
+ \immediate\write16{%
+ !!! Process this file `\jobname.tex' with pdf(e)tex %
+ (plain format) !!!%
+ }%
+ \expandafter\END
+\fi
+
+% Check if pdfTeX
+\ifx\pdfoutput\undefined
+ \immediate\write16{%
+ !!! Process this file `\jobname.tex' with pdf(e)tex %
+ (NOT tex) !!!%
+ }%
+ \expandafter\END
+\fi
+
+\pdfoutput=1
+
+% this file is tested with pdfTeX 0.13a
+% but for downward compatibilty a trick from Hans Hagen:
+\ifnum\pdftexversion<13 \ifnum\expandafter `\pdftexrevision<`s
+ \let\normalpdfimage\pdfimage
+ \def\grabpdfimage#1#2{\normalpdfimage#1 #2\relax}
+ \def\pdfimage#1#{\grabpdfimage{#1}}
+\fi\fi
+
+% syntax has changed with pdfTeX 0.14a:
+\ifnum\pdftexversion>13
+ \def\pdfimage#1#{\grabpdfimage{#1}}
+ \def\grabpdfimage#1#2{%
+ \pdfximage#1{#2}\pdfrefximage\pdflastximage
+ }
+\fi
+
+% max. 106x106 / 72 dpi
+\hsize 1.5in
+\vsize 1.5in
+
+\nopagenumbers
+
+\newcount\thumbcount
+\def\thumbcountstep{\advance\thumbcount by 1 }
+
+\def\thumbfilename{thb\the\thumbcount.png}
+
+\newread\thumbread
+\def\ifthumbexists{%
+ \openin\thumbread=\thumbfilename\relax
+ \ifeof\thumbread
+ \expandafter\noneofone
+ \else
+ \closein\thumbread
+ \expandafter\firstofone
+ \fi
+}
+\def\noneofone#1{}
+\def\firstofone#1{#1}
+
+\def\iffileexists#1{%
+ \openin\thumbread=#1\relax
+ \ifeof\thumbread
+ \expandafter\secondoftwo
+ \else
+ \closein\thumbread
+ \expandafter\firstoftwo
+ \fi
+}
+\long\def\firstoftwo#1#2{#1}
+\long\def\secondoftwo#1#2{#2}
+
+\let\listthumbs\empty
+
+\def\printthumbfile{%
+ \vfill\eject
+ \centerline{%
+ \pdfimage height \vsize {\thumbfilename}%
+ }%
+}
+
+\newcount\thumbfound
+\thumbfound=0
+\def\processthumb{%
+ \edef\listthumbs{\listthumbs\space\the\thumbcount}%
+ \printthumbfile
+ \pageno=\thumbcount
+ \advance\thumbfound by 1
+}
+
+\expandafter\ifx\csname thumbmax\endcsname\relax
+ \def\thumbmax{999}%
+\fi
+
+\immediate\write16{* Looking for thumbnails 0..\thumbmax:}
+
+\thumbcount=\thumbmax\relax
+\advance\thumbcount by 1
+\edef\thumbmax{\the\thumbcount}%
+\thumbcount=0
+\loop
+\ifnum\thumbcount<\thumbmax\relax
+ \ifthumbexists\processthumb
+ \thumbcountstep
+\repeat
+
+\break
+\immediate\write16{==> \the\thumbfound\space thumbnail(s) found.}
+\immediate\pdfobj{<</MaxThumbNumber \the\thumbfound>>}
+\edef\CatalogHook{\the\pdflastobj\space 0 R}%
+\immediate\write16{* Looking for extra thumbnails:}
+
+\def\END{%
+ \ifx\allthumbs\empty
+ \else
+ \immediate\pdfobj{<</ListThumbs\listthumbs>>}%
+ \edef\CatalogHook{\CatalogHook\space\the\pdflastobj\space 0 R}%
+ \fi
+ \pdfcatalog{/ThumbpdfHook [\CatalogHook]}%
+ \vfill\eject
+ \csname bye\endcsname % \bye is \outer
+}
+
+% <jobname>.tno
+\ifx\thumbjob\UnDeFiNeD
+ \immediate\write16{!!! Warning: \string\thumbjob\space undefined,
+ search for extra thumbnails skipped!%
+ }
+ \expandafter\END
+\fi
+\def\optfile{\thumbjob.tno}%
+\iffileexists{\optfile}{}{%
+ \immediate\write16{==> No optional thumbnail file.}%
+ \END
+}%
+\thumbfound=0
+
+\def\thumb{\futurelet\nexttoken\thumbA}
+\let\braceleft=[
+\def\thumbA{%
+ \if\nexttoken\braceleft
+ \expandafter\thumbB
+ \else
+ \expandafter\thumbC
+ \fi
+}
+\def\thumbC#1{\thumbB[#1]{#1}}
+\def\thumbB[#1]#2{% #1: label, #2: file[.png]
+ \iffileexists{#2.png}{%
+ \def\thumbfilename{#2.png}%
+ }{%
+ \iffileexists{#2}{%
+ \def\thumbfilename{#2}%
+ }{%
+ \let\thumbfilename\empty
+ }%
+ }%
+ \ifx\thumbfilename\empty
+ \immediate\write16{%
+ !!! Warning: Thumbnail `#2' does not exist!"}%
+ \else
+ \edef\listthumbs{\listthumbs\space{#1}}%
+ \printthumbfile
+ \advance\thumbcount by -1
+ \pageno=\thumbcount
+ \advance\thumbfound by 1
+ \fi
+}
+
+\thumbcount=0
+\input \optfile
+\break
+\immediate\write16{==> \the\thumbfound\space extra thumbnail(s) found.}%
+
+\END