From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/pdfpagediff/doc/Makefile | 42 +++ macros/latex/contrib/pdfpagediff/doc/ar1.png | Bin 0 -> 76717 bytes macros/latex/contrib/pdfpagediff/doc/ar2.png | Bin 0 -> 74614 bytes macros/latex/contrib/pdfpagediff/doc/ar3.png | Bin 0 -> 73503 bytes .../contrib/pdfpagediff/doc/pdfpagediff-doc.pdf | Bin 0 -> 449373 bytes .../contrib/pdfpagediff/doc/pdfpagediff-doc.sty | 360 +++++++++++++++++++++ .../contrib/pdfpagediff/doc/pdfpagediff-doc.tex | 179 ++++++++++ 7 files changed, 581 insertions(+) create mode 100644 macros/latex/contrib/pdfpagediff/doc/Makefile create mode 100644 macros/latex/contrib/pdfpagediff/doc/ar1.png create mode 100644 macros/latex/contrib/pdfpagediff/doc/ar2.png create mode 100644 macros/latex/contrib/pdfpagediff/doc/ar3.png create mode 100644 macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.pdf create mode 100644 macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.sty create mode 100644 macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.tex (limited to 'macros/latex/contrib/pdfpagediff/doc') diff --git a/macros/latex/contrib/pdfpagediff/doc/Makefile b/macros/latex/contrib/pdfpagediff/doc/Makefile new file mode 100644 index 0000000000..84aaa5a4b2 --- /dev/null +++ b/macros/latex/contrib/pdfpagediff/doc/Makefile @@ -0,0 +1,42 @@ +## +## Makefile +## +## +## +## +## + +file=pdfpagediff-doc + + +all: pdf out + make pdf + +out: + if [ -f $(file).out ] ; then cp $(file).out tmp.out; fi ; + sed 's/BOOKMARK/dtxmark/g;' tmp.out > x.out; mv x.out tmp.out ; + +pdf: + pdflatex $(file).tex + +index: + makeindex -s gind.ist -o $(file).ind $(file).idx + +changes: + makeindex -s gglo.ist -o $(file).gls $(file).glo + +xview: + xpdf -z 200 $(file).pdf &>/dev/null + +view: + acroread $(file).pdf + +ins: + latex $(file).ins + +diff: + diff $(file).sty ../$(file).sty |less + +copy: + cp $(file).sty ../ + diff --git a/macros/latex/contrib/pdfpagediff/doc/ar1.png b/macros/latex/contrib/pdfpagediff/doc/ar1.png new file mode 100644 index 0000000000..61f00dd281 Binary files /dev/null and b/macros/latex/contrib/pdfpagediff/doc/ar1.png differ diff --git a/macros/latex/contrib/pdfpagediff/doc/ar2.png b/macros/latex/contrib/pdfpagediff/doc/ar2.png new file mode 100644 index 0000000000..8c8420e8e0 Binary files /dev/null and b/macros/latex/contrib/pdfpagediff/doc/ar2.png differ diff --git a/macros/latex/contrib/pdfpagediff/doc/ar3.png b/macros/latex/contrib/pdfpagediff/doc/ar3.png new file mode 100644 index 0000000000..c6504d26c5 Binary files /dev/null and b/macros/latex/contrib/pdfpagediff/doc/ar3.png differ diff --git a/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.pdf b/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.pdf new file mode 100644 index 0000000000..8a20c5afc1 Binary files /dev/null and b/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.pdf differ diff --git a/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.sty b/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.sty new file mode 100644 index 0000000000..582f6ecd9f --- /dev/null +++ b/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.sty @@ -0,0 +1,360 @@ +%% +%% This is file 'pdfpagediff-doc.sty'. +%% +%% A supplementary package with auxiliary macros needed to typeset +%% the documentation file, pdfpagediff-doc.tex. +%% +%% File: pdfpagediff-doc.sty Copyright (c) 2010-2015, CV Radhakrishnan +%% JWRA 34, Jagathy, Trivandrum 695014 +%% http://www.cvr.cc Email: +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% $Id: pdfpagediff-doc.sty,v 1.3 2015/07/24 09:46:59 cvr Exp cvr $ +%% +%% +\RequirePackage[dvipsnames,svgnames]{xcolor} +\RequirePackage{graphicx} +\RequirePackage{tikz} +\usetikzlibrary{backgrounds} +\newdimen\lmrgn +\def\rulecolor{seccolor} +\def\rulewidth{1pt} +\pgfdeclareshape{filledbox}{% + \inheritsavedanchors[from=rectangle] % + \inheritanchorborder[from=rectangle] + \inheritanchor[from=rectangle]{center} + \inheritanchor[from=rectangle]{north} + \inheritanchor[from=rectangle]{south} + \inheritanchor[from=rectangle]{west} + \inheritanchor[from=rectangle]{east} + \backgroundpath{% + \southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y + \northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y + \pgf@xc=\pgf@xb \advance\pgf@xc by-5pt + \pgf@yc=\pgf@yb \advance\pgf@yc by-5pt + \pgfsetlinewidth{.2pt} + \pgfsetstrokecolor{seccolor} + \pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}} + \pgfsetcornersarced{\pgfpoint{9pt}{9pt}} + \pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}} + \pgfsetcornersarced{\pgforigin} + \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}} + \pgfsetcornersarced{\pgfpoint{9pt}{9pt}} + \pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}} + \pgfsetcornersarced{\pgforigin} + \pgfpathclose ; + }% +} + +\newdimen\Linewidth +\setlength\Linewidth{\textwidth} +\addtolength{\Linewidth}{-17pt} +\newcounter{clip} +\def\src#1{\gdef\@src{#1}}\let\@src\@empty +\def\includeclip{\@ifnextchar[{\@includeclip}{\@includeclip[]}} +\def\@includeclip[#1]#2#3#4{\par + \vskip.75\baselineskip plus 3pt minus 1pt + \begingroup\color{white}% + \noindent% + \begin{tikzpicture} + %\node[fill=black!10,draw,shape=filledbox, + \node[fill=white,% + draw, + shade,% + top color=white!10, + bottom color=white, + shape=filledbox, + inner sep=8pt, + text width=\Linewidth] (x) + {\parbox{\Linewidth} + {\ifx\@src\@empty\else\refstepcounter{clip}\label{clip\theclip}% + {\color{seccolor}\sffamily\scriptsize + Clip \theclip\space\@src, p.\,#2}% + \par\vskip3pt\fi\normalcolor + \includegraphics[width=\Linewidth,page={#2},% + viewport={#3},clip=true,#1]{#4}} + \hspace*{-10pt}}; + \end{tikzpicture} + \endgroup + \par\vskip.5\baselineskip + plus 3pt minus 1pt} +%% +%% include clippings from a pdf document: +%% #1 => Optional argument for \includegraphics +%% #2 => page number +%% #3 => co-ordinates +%% #4 => file name + + \colorlet{itemcolor}{brown} + \colorlet{verbcolor}{Sepia} + \colorlet{botrulecolor}{orange!25} + \colorlet{botbgcolor}{orange!15} + \colorlet{botcolor}{orange!80} + \colorlet{pgrulecolor}{orange} + \colorlet{pgbgcolor}{white} + + \colorlet{quicklinkrulecolor}{orange!40} + \colorlet{quicklinkcolor}{brown} + \colorlet{topverticalrule}{brown} + \colorlet{titlecolor}{brown} + \colorlet{hlinkcolor}{brown} + \colorlet{hlinktricolor}{orange!70} + \colorlet{linkcolor}{brown} + \colorlet{urlcolor}{brown} + + \colorlet{arrayrulecolor}{olive!30} + \colorlet{seccolor}{brown} + + \colorlet{toprulecolor}{orange!30} + \colorlet{topbgcolor}{orange!10} + \colorlet{topcolor}{brown!80} +% +% +\def\floatpagefraction{.99} +\RequirePackage{geometry} +\geometry{top=2in, + bottom=1in, + left=2in, + right=1in, + a4paper} + +\DeclareRobustCommand{\LaTeX}{L\kern-.25em% + {\sbox\z@ T% + \vbox to\ht\z@{% + \hbox{% + \check@mathfonts + \fontsize\sf@size\z@ + \math@fontsfalse\selectfont + A}% + \vss}% + }% + \kern-.10em% + \TeX} + +\RequirePackage{comment,xspace} +\def\xml{\textsc{xml}\xspace} +\def\latex{{\small\LaTeX}\xspace} +\def\pdf{\textsc{pdf}\xspace} +\def\pdfa{\textsc{pdf/a-1}b\xspace} +\def\pdfx{\textsc{pdf/x-1}a\xspace} +\def\xmp{\textsc{xmp}\xspace} +\def\pdftex{\textsc{pdf{\small\TeX}}\xspace} +\def\defmacro#1{\texttt{\bsl#1}} +\def\thanh{H\`an Th\^e\llap{\raise 0.5ex\hbox{\'{}}} Th\`anh\xspace} +\def\gnulinux{\textsc{gnu/linux}\xspace} +\def\bsl{\expandafter\@gobble\string\\} +\def\tex{{\small\TeX}\xspace} + +\let\@DRAFTout@Hook\@empty +\newcommand{\DRAFTout}{\g@addto@macro\@DRAFTout@Hook} +\newcommand{\@DRAFTout@Out}{% + \afterassignment\@DRAFTout@Test + \global\setbox\@cclv= % + } +\newcommand{\@DRAFTout@Test}{% + \ifvoid\@cclv\relax + \aftergroup\@DRAFTout@Output + \else + \@DRAFTout@Output + \fi% + } +\newcommand{\@DRAFTout@Output}{% + \@DRAFTout@Hook% + \@DRAFTout@Org@Out\box\@cclv% + } +\newcommand{\@DRAFTout@Org@Out}{} +\newcommand*{\@DRAFTout@Init}{% + \let\@DRAFTout@Org@Out\shipout + \let\shipout\@DRAFTout@Out + } +\newdimen\OHeight +\setlength\OHeight{\textheight} +\addtolength\OHeight{\headheight} +\addtolength\OHeight{\headsep} +\addtolength\OHeight{\footskip} + +\newif\ifoverlay\overlayfalse + +\AtBeginDocument{\@DRAFTout@Init} +\newcommand{\@DraftOverlay@Hook}{} +\newcommand{\AddToDraftOverlay}{\g@addto@macro\@DraftOverlay@Hook} +\newcommand{\ClearDraftOverlay}{\let\@DraftOverlay@Hook\@empty} +\newcommand{\@DraftOverlay}{% + \ifx\@DraftOverlay@Hook\@empty + \else + \bgroup + \@tempdima=1in + \@tempcnta=\@tempdima + \@tempcntb=-\@tempdima + \advance\@tempcntb\paperheight + \ifoverlay + \global\setbox\@cclv\vbox{% + \box\@cclv + \vbox{\let\protect\relax% + \unitlength=1pt% + \pictur@(0,0)(\strip@pt\@tempdima,\strip@pt\@tempdimb)% + \@DraftOverlay@Hook% + \endpicture}}% + \else + \global\setbox\@cclv\vbox{% + \vbox{\let\protect\relax% + \unitlength=1sp% + \pictur@(0,0)(\@tempcnta,\@tempcntb)% + \@DraftOverlay@Hook% + \endpicture}% + \box\@cclv}% + \fi + \egroup + \fi +} + +\definecolor{gray30}{gray}{.7} +\definecolor{gray20}{gray}{.8} +\definecolor{gray10}{gray}{.9} + +\DRAFTout{\@DraftOverlay} +\long\def\puttext(#1)#2{\AddToDraftOverlay{% + \setlength{\unitlength}{1pt}\thinlines% + \put(#1){#2}}} + +\RequirePackage{shortvrb} +\MakeShortVerb{\|} +\RequirePackage{amsfonts,amssymb} +\IfFileExists{mathpazo.sty}{\RequirePackage{mathpazo}}{} +\IfFileExists{charter.sty}{\RequirePackage{charter}}{} +\IfFileExists{sourcesanspro.sty}{\RequirePackage[osf,light,default]{sourcesanspro}}{} +\IfFileExists{inconsolata.sty}{\RequirePackage[scaled=.9]{inconsolata}}{} + +\def\theCodelineNo{\reset@font\tiny\arabic{CodelineNo}} + +\def\@seccntformat#1{\llap{\csname the#1\endcsname.\hspace*{6pt}}} +\def\section{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\large\bfseries\color{seccolor}}} +\def\subsection{\@startsection{subsection}{2}{\z@}% + {-2.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\normalfont\normalsize\bfseries\color{seccolor}}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-1.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\normalfont\normalsize\bfseries\color{seccolor}}} + +\puttext(0,36){\botstring}% + \puttext(0,840){\copy\topbox} + +\RequirePackage{colortbl} +\arrayrulecolor{arrayrulecolor} +\let\shline\hline +\def\hline{\noalign{\vskip3pt}\shline\noalign{\vskip4pt}} + +\RequirePackage[pdftex,colorlinks]{hyperref} +\def\Hlink#1#2{\hyperlink{#2}{\color{hlinktricolor}% + $\blacktriangleright$~\color{hlinkcolor}#1}} + \def\@linkcolor{linkcolor} + \def\@urlcolor{urlcolor} + +\pagestyle{empty} +\def\version#1{\gdef\@version{#1}} +\def\@version{1.0} +\def\contact#1{\gdef\@contact{#1}} +\def\author#1{\gdef\@author{#1}} +\def\@author{CV Radhakrishnan} +\def\@contact{\texttt{cvr@cvr.cc}} +\def\keywords#1{\gdef\@keywords{#1}} +\def\@keywords{\LaTeX, \xml} + +\long\def\Hrule{\\[-4pt]\hspace*{-3em}% + {\color{quicklinkrulecolor}\rule{\linewidth}{.1pt}}\\} + +\long\def\dtxmarkone[#1][#2]#3#4#5{\def\next{#1}% + \ifcase\next\or\Hlink{#4}{#3}\Hrule \fi} + +\newcounter{dtx} + +\long\def\dtxmarktwo[#1][#2]#3#4#5{\def\next{#1}% + \stepcounter{dtx}\parbox{.45\linewidth}% + {\ifcase\next\or\Hlink{#4}{#3}\fi}% + \ifodd\thedtx\relax\else\Hrule\fi} + +%\let\dtxmark\dtxmarkone +\let\dtxmark\dtxmarktwo + +\newbox\topbox +\long\def\maketitle{\global\setbox\topbox=\vbox{\hsize=\paperwidth + \parindent=0pt + \fcolorbox{toprulecolor}{topbgcolor}% + {\parbox[t][1.5in][c]{\paperwidth}% + {\hspace*{15mm}% + \parbox[c]{.35\paperwidth}{\fontsize{18pt}{20pt}% + \raggedright\normalfont\sffamily \selectfont + \color{titlecolor} \@title\\[6pt] + {\normalsize\rmfamily\scshape\@author}\\% + {\footnotesize\textsc{keywords:} \@keywords}}% + \hfill + \parbox[c][1.5in][c]{1mm}{\color{topverticalrule}% + \rule{.1pt}{1.5in}}% + \hfill + \parbox[c][1.5in][c]{.35\paperwidth}% + {\normalfont\footnotesize\sffamily\color{quicklinkcolor}% + \vspace*{6pt} QUICK LINKS\Hrule + \IfFileExists{tmp.out}{\input tmp.out}{}% + }\hspace*{5mm}% + }% + }% + }% +} +\gdef\botstring{\fcolorbox{botrulecolor}{botbgcolor}% + {\parbox[t][.5in][t]{\paperwidth}% + {\normalfont\sffamily\footnotesize% + \color{botcolor}% + \hspace*{5mm}\parbox[c][.5in][c]{.45\paperwidth}% + {\raggedright CVR.CC, + \href{http://www.cvr.cc}{% + http://www.cvr.cc}\\ + JWRA 34, Jagathy, Trivandrum + 695014, India + }\hfill% + \parbox[c][.5in][c]{1cm} + {\centering\sffamily\mdseries + \fcolorbox{pgrulecolor}{pgbgcolor}{\thepage}% + }\hfill + \parbox[c][.5in][c]{.45\paperwidth} + {\raggedleft\begin{tabular}{rl}% + Version:&\@version\\ + Date:&\@date\\ + Contact:&\@contact + \end{tabular}\hspace*{5mm}% + }% + }% + }% + } + +\RequirePackage{enumitem} +\setitemize[1]{label={\small\color{itemcolor}$\blacktriangleright$},itemsep=0pt} +\setitemize[2]{label={\small\color{itemcolor}$\triangleright$},itemsep=0pt} +\setenumerate[1]{label={\small\color{itemcolor}\arabic*.},itemsep=0pt} + +\def\MacroFont{\fontencoding\encodingdefault + \fontfamily\ttdefault + \fontseries\mddefault + \fontshape\updefault + \color{verbcolor}\small}% + +\def\verbatim@font{\normalfont\color{verbcolor}\ttfamily} + +\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi + \bgroup + \verb@eol@error \let\do\@makeother \dospecials + \verbatim@font\@noligs + \@ifstar\@sverb\@verb} + +\endinput + +%% +%% End of file 'pdfpagediff-doc.sty' +%% \ No newline at end of file diff --git a/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.tex b/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.tex new file mode 100644 index 0000000000..43a7d2a7e7 --- /dev/null +++ b/macros/latex/contrib/pdfpagediff/doc/pdfpagediff-doc.tex @@ -0,0 +1,179 @@ +%% +%% +%% This is file 'pdfpagediff-doc.tex'. +%% +%% File: pdfpagediff-doc.tex Copyright (c) 2010 C. V. Radhakrishnan +%% JWRA 34, Jagathy, Trivandrum 695014 +%% http://www.cvr.cc Email: +%% +%% This document may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% $Id: pdfpagediff-doc.tex,v 1.5 2015/07/24 09:42:14 cvr Exp cvr $ +%% +%% + +\documentclass[a4paper]{article} + +\usepackage{pdfpagediff-doc} + +\begin{document} + +\title{User Manual of \texttt{pdfpagediff} Package} +\date{2015/07/24} +\version{1.5} +\keywords{\pdf, \textsc{pdf}{\fontsize{6.5}{7}\selectfont\TeX, \LaTeX}} +\author{C.\,V.\,Radhakrishnan} +\contact{\texttt{cvr@cvr.cc}} + +\maketitle +\advance\baselineskip by 1pt + +\noindent We often encounter nightmarish scenario while generating +final versions of a long document when one or more of the following +happens: +\begin{enumerate} +\item New revised versions of packages used. +\item Smaller changes to a fewer number of pages of a long document. +\item No change in the document, but recompiled with revised page + numbers as it happens during compilation of journal articles into an + issue for printing. +\item Simply you happened to retypeset for no reason and then you're + forced to check each page for surprises. +\end{enumerate} + +Now you are left with the job of comparing the \textsc{pdf}s generated +now and that of previous version and it is not fun. To make the job +easier, |pdgpagediff| package is written. + +\section{Principles} + +We have a version of document, say, |file1.pdf| and we have its +revised version, |file2.pdf|. |pdfpagediff| will create a composite +pdf by juxtaposing each page of |file1.pdf| over the corresponding +page of |file2.pdf| or vice-versa. Since the pdf's are transparent, +you can notice the slightest change visually by simply flipping +through the pages. + +\section{Dependencies} + +|pdfpagediff| depends on the following packages: +\begin{enumerate} +\item |geometry.sty| +\item |graphicx.sty| +\item |color.sty| +\item |substr.sty| +\end{enumerate} + +\section{Usage} + +Package can be loaded with the following command: +\begin{verbatim} + \usepackage{pdfpagediff} +\end{verbatim} +Another command |\layerPages| has been defined to include two versions +of the \pdf documents to create the composite document, the syntax is: +\begin{verbatim} + \layerPages[]{}{}| +\end{verbatim} +First one doesn't have an optional argument of page numbers, which +means all the pages will be used to create the composite document. +Second one has comma separted page numbers and hyphen separated page +ranges which can be mixed in any order as shown in subsequent examples +of usage. The last one has |10-| which means from page |10| to end +of the document. + +\begin{enumerate} +\item |\layerPages{file1.pdf}{file2}| +\item |\layerPages[1,2,4-6,8]{file1}{file2.pdf}| +\item |\layerPages[1,2,4-6,8,10-22]{file1.pdf}{file2.pdf}| +\item |\layerPages[1,2,4-6,8-13,17]{file1}{file2.pdf}| +\item |\layerPages[10-]{file1.pdf}{file2.pdf}| +\end{enumerate} +You need Adobe Reader to view the composite document which only +provides to view each layer or all layers together or no layers at +all. There is a small layer button at top left hand side of the +Adobe Reader window, see the figure below: + +\medskip +\noindent\includegraphics[width=\linewidth]{ar1} + +\medskip\noindent +You can see |Layers| icon, clicking on the icon will show you the +layers. We have two layers in this example, namely, |First| and +|Second| which are also the default. These labels can be changed with +|\FirstDoc| and |\SecondDoc| commands respectively. + +\subsubsection*{First Document} +\noindent\includegraphics[width=\linewidth]{ar2.png} + +\medskip\noindent The above figure shows the first document alone. You +might note that icon for second layer is not visible now. + +\subsubsection*{Second Document} +\noindent\includegraphics[width=\linewidth]{ar3.png} + +\medskip\noindent The second document is generated with 30\% gray +instead of black to facilitate easy indication of locations with +differences. Also, note that icon for first layer is invisible since +the second layer alone is mode visible here. + +\section{Examples} + +You might take a look at Clip \ref{clip1} which has a paragraph from +the composite document. The last word of the paragraph has a +mismatch. + +\src{A paragraph from composite document.} +\includeclip{3}{104 419 508 556}{ltest.pdf} + +Now let us take a look at the last two lines of the above para from +the first document: + +\src{Last two lines from first document.} +\includeclip{3}{104 380 508 408}{file1.pdf} + +Here is the same location of the second document: + +\src{Last two lines from second document.} +\includeclip{3}{104 380 508 408}{file2.pdf} + +\noindent The difference is a space added before the last word +`concepts'. If you look at Clip \ref{clip1} now, you will get to know +the difference quickly. + +Further differences can be observed in pages 9 and 17 of the included +document, |ltest.pdf|. + +\section{Limitations} +Following limitations apply: +\begin{enumerate} +\item Documents with enormous changes cannot be comapared. +\item Documents with opaque backgrounds cannot be compared. +\item Tables and figures with background will not provide any + meaningful information even if there are differences. +\item This is not a character by character or word by word diff + program, instead it depends largely on your eyes very much. +\item |pdfpagediff| will work only with \pdftex and will not work with + any other \tex compilers. + +\end{enumerate} + +\section{Acknowledgements} + +The test document is a chapter namely, |matrices.tex| from a freely +available textbook, \emph{Matrix Overview} by Paul Hewson, at: +\url{http://knowledgeforge.net/opentextbook/svn/multivariatestatistics/}. +Permission to use this chapter to demonstrate the features of +|pdfpagediff| is gratefully acknowledged. + +\section{Download} + +The package can be downloaded from +\url{http://www.ctan.org/pkg/pdfpagediff}. Bug +reports, feature requests and suggestions can be posted at +\url{http://www.cvr.cc/pdfpagediff/}. The author can be contacted at +\url{}. + +\end{document} -- cgit v1.2.3