summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/pdfpages
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-05-11 20:54:59 +0000
committerKarl Berry <karl@freefriends.org>2015-05-11 20:54:59 +0000
commit2f4b3573893f56d03b6be8228d36e9dd6f7cd089 (patch)
tree84e288e0f8972d2c573127e6d2e65b9f055c0eca /Master/texmf-dist/source/latex/pdfpages
parent2f48bc401a4d735d9ccb93564430e563092a863d (diff)
pdfpages (11may15)
git-svn-id: svn://tug.org/texlive/trunk@37333 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/pdfpages')
-rw-r--r--Master/texmf-dist/source/latex/pdfpages/pdfpages.dtx274
-rw-r--r--Master/texmf-dist/source/latex/pdfpages/pdfpages.ins4
2 files changed, 170 insertions, 108 deletions
diff --git a/Master/texmf-dist/source/latex/pdfpages/pdfpages.dtx b/Master/texmf-dist/source/latex/pdfpages/pdfpages.dtx
index 77d6a592f96..2592aef2920 100644
--- a/Master/texmf-dist/source/latex/pdfpages/pdfpages.dtx
+++ b/Master/texmf-dist/source/latex/pdfpages/pdfpages.dtx
@@ -27,10 +27,10 @@
%<*dtx>
\makeatletter
%</dtx>
-\def\AM@fileversion{v0.4w}
+\def\AM@fileversion{v0.4x}
\def\AM@SVN@Date@i#1-#2-#3\END{\def\AM@filedate{#1/#2/#3}}
\def\AM@SVN@Date$Date: #1 #2${\AM@SVN@Date@i#1\END}
-\AM@SVN@Date$Date: 2015-04-15 23:44:35 +0200 (Wed, 15 Apr 2015) $
+\AM@SVN@Date$Date: 2015-05-11 18:08:19 +0200 (Mon, 11 May 2015) $
%</!(example1,example2,example3,installer)>
%
%
@@ -82,7 +82,7 @@
%
% \GetFileInfo{pdfpages.dtx}
%
-% \CheckSum{4669}
+% \CheckSum{4677}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -155,7 +155,7 @@
% \begin{abstract}
% \noindent
% This package simplifies the insertion of external multi-page \PDF\
-% or \PS\ documents. It supports \pdfTeX, \VTeX, and \XeTeX.
+% or \PS\ documents. It supports \pdfTeX, \VTeX, \XeTeX, and \luaTeX
% \end{abstract}
%
% \tableofcontents
@@ -1041,7 +1041,7 @@
% \bibitem{pax}
% Heiko Oberdiek,
% \textit{pax: Extract and reinsert PDF annotations with pdfTeX}
-% \url{http://www.ctan.org/tex-archive/macros/latex/contrib/pax/}
+% \url{http://www.ctan.org/pkg/pax}
%
% \end{thebibliography}
% }
@@ -1114,6 +1114,8 @@
\RequirePackage{ifthen, calc, eso-pic}
\RequirePackage{graphicx}
\newif\ifAM@DVIoutput\AM@DVIoutputfalse
+\newdimen\AM@pagewidth
+\newdimen\AM@pageheight
\input{pp\AM@driver.def}
\ifx\AM@endinput\relax\expandafter\endinput\fi
\ifAM@pkg@survey
@@ -1367,10 +1369,42 @@
% \begin{macrocode}
\newcommand{\AM@output}[1]{%
% \end{macrocode}
-% Tune some \LaTeX\ parameters.
+% For the following calculations we need to know the page size.
+% But since we are still before |\newpage| we must not set |\paper{width,height}|
+% and must not call |\AM@setpagedimen| now. This shall be done after |\newpage|.
+% However, to get the calculation right we set and use |\AM@page{width,height}|,
+% which will eventually (after the next |\newpage|) become the real page size.
% \begin{macrocode}
- \c@totalnumber=0
- \if@twocolumn\let\AM@twocolumn\relax \onecolumn \fi
+ \AM@getpagedimen
+ \ifdim\AM@pagewidth=\z@
+ \AM@pagewidth=210mm
+ \PackageWarningNoLine{pdfpages}{%
+ Erroneous page width of 0.0pt is corrected}%
+ \fi
+ \ifdim\AM@pageheight=\z@
+ \AM@pageheight=297mm
+ \PackageWarningNoLine{pdfpages}{%
+ Erroneous page height of 0.0pt is corrected}%
+ \fi
+% \end{macrocode}
+% Floats are unwanted here. Thus defer all floats until after |\includepdf|.
+% \par
+% 1) Floats which are already in \LaTeX's output routine shall be removed from
+% there and pushed onto |\@deferlist| or |\@dbldeferlist|.
+% \begin{macrocode}
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \gdef\@toplist{}%
+ \gdef\@botlist{}%
+ \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
+ \gdef\@dbltoplist{}%
+% \end{macrocode}
+% 2) Clear |\@deferlist| and |\@dbldeferlist|. But save them first
+% so they can be restored later.
+% \begin{macrocode}
+ \global\let\AM@deferlist\@deferlist
+ \gdef\@deferlist{}%
+ \global\let\AM@dbldeferlist\@dbldeferlist
+ \gdef\@dbldeferlist{}%
% \end{macrocode}
% Some drivers, like |ppnull|, need a hook to disable
% |\includegraphics|.
@@ -1465,7 +1499,6 @@
{\edef\AM@page{\AM@pagetemplate}}%
\AM@readfirst{\AM@doclist}%
\edef\AM@docname{\the\toks@}%
- \newpage
\AM@isphantom
\ifAM@noautoscale
\def\AM@globalscale{1}%
@@ -1485,48 +1518,17 @@
\fi
\fi
% \end{macrocode}
-% Adjust the paper size.
-% \begin{macrocode}
- \ifthenelse{\boolean{AM@fitpaper}}
- {\setlength{\AM@pagewidth}{\wd\@tempboxa}%
- \setlength{\AM@pageheight}{\ht\@tempboxa + \dp\@tempboxa}%
- \setlength{\paperwidth}{\wd\@tempboxa}%
- \setlength{\paperheight}{\ht\@tempboxa + \dp\@tempboxa}%
- \AM@fitpaper@special
- \AM@setpagedimen
- \@ifundefined{stockwidth}{}{%
- \setlength{\stockwidth}{\AM@pagewidth}%
- \setlength{\stockheight}{\AM@pageheight}%
- \setlength{\trimtop}{0pt}%
- \setlength{\trimedge}{0pt}}%
- }{}%
-% \end{macrocode}
-% \begin{macrocode}
- \ifdim\AM@pagewidth=\z@
- \AM@pagewidth=210mm
- \PackageWarningNoLine{pdfpages}{%
- Erroneous page width of 0.0pt is corrected}%
- \fi
- \ifdim\AM@pageheight=\z@
- \AM@pageheight=297mm
- \PackageWarningNoLine{pdfpages}{%
- Erroneous page height of 0.0pt is corrected}%
- \fi
-% \end{macrocode}
-% |eso-pic| needs |\paperwidth| and |\paperheight|, which may
-% not be defined, e.g. with |minimal.cls|.
+% Fit papersize.
% \begin{macrocode}
- \ifdim\paperwidth=\z@
- \let\paperwidth\AM@pagewidth
- \fi
- \ifdim\paperheight=\z@
- \let\paperheight\AM@pageheight
- \fi
+ \ifthenelse{\boolean{AM@fitpaper}}{
+ \setlength{\AM@pagewidth}{\wd\@tempboxa}%
+ \setlength{\AM@pageheight}{\ht\@tempboxa + \dp\@tempboxa}%
+ }{}%
% \end{macrocode}
% Calculate required scaling in horizontal direction.
% \begin{macrocode}
\def\AM@xscale{%
- (\paperwidth - \tw@\fboxrule*\AM@xnup
+ (\AM@pagewidth - \tw@\fboxrule*\AM@xnup
- \AM@deltax * \AM@xnupminusi) /
(\AM@xnup * \real{\strip@pt\wd\@tempboxa})
}%
@@ -1537,7 +1539,7 @@
% \begin{macrocode}
\setlength{\@tempdimb}{\ht\@tempboxa + \dp\@tempboxa}%
\def\AM@yscale{
- (\paperheight - \tw@\fboxrule*\AM@ynup
+ (\AM@pageheight - \tw@\fboxrule*\AM@ynup
- \AM@deltay *\AM@ynupminusi) /
(\AM@ynup * \real{\strip@pt\@tempdimb})
}%
@@ -1581,11 +1583,11 @@
\edef\AM@templateheight{\the\@tempdima}%
\setlength{\@tempdimb}{\ht\@tempboxa + \dp\@tempboxa}%
\def\AM@xmargin{%
- (\paperwidth - (\wd\@tempboxa+\tw@\fboxrule)*\AM@xnup
+ (\AM@pagewidth - (\wd\@tempboxa+\tw@\fboxrule)*\AM@xnup
- \AM@deltax * \AM@xnupminusi) * \real{.5}%
}%
\def\AM@ymargin{%
- (\paperheight - (\@tempdimb+\tw@\fboxrule)*\AM@ynup
+ (\AM@pageheight - (\@tempdimb+\tw@\fboxrule)*\AM@ynup
- \AM@deltay * \AM@ynupminusi) * \real{.5}%
}%
\setlength{\@tempdima}{\AM@xmargin}%
@@ -1794,6 +1796,12 @@
% \end{macrocode}
% Ship out page.
% \begin{macrocode}
+ \newpage
+ \ifnum\AM@xnupi=1
+ \ifnum\AM@ynupi=1
+ \ifAM@reflectall \setbox\AM@pagebox\null \fi
+ \fi
+ \fi
\ifAM@phantompage
\def\AM@shippage{}%
\else
@@ -1831,6 +1839,38 @@
\AM@AddToShipoutPicture{\setlength{\unitlength}{\p@}%
\global\let\AM@filelist@save\@filelist}%
% \end{macrocode}
+% Adjust paper size:
+% After |\newpage| we may finally set |\paper{width,height}| and call
+% |\AM@setpagedimen|.
+% \begin{macrocode}
+ \ifthenelse{\boolean{AM@fitpaper}}{
+ \setlength{\paperwidth}{\AM@pagewidth}%
+ \setlength{\paperheight}{\AM@pageheight}%
+ \AM@fitpaper@special
+ \AM@setpagedimen
+ \@ifundefined{stockwidth}{}{%
+ \setlength{\stockwidth}{\AM@pagewidth}%
+ \setlength{\stockheight}{\AM@pageheight}%
+ \setlength{\trimtop}{0pt}%
+ \setlength{\trimedge}{0pt}}%
+ }{}
+% \end{macrocode}
+% |eso-pic| needs |\paperwidth| and |\paperheight|, which may
+% not be defined, e.g. with |minimal.cls|.
+% \begin{macrocode}
+ \ifdim\paperwidth=\z@
+ \let\paperwidth\AM@pagewidth
+ \fi
+ \ifdim\paperheight=\z@
+ \let\paperheight\AM@pageheight
+ \fi
+% \end{macrocode}
+% \begin{macrocode}
+ \if@twocolumn
+ \@twocolumnfalse
+ \let\AM@twocolumn\relax
+ \fi
+% \end{macrocode}
% |\AM@pagebox| is only used for option |reflect|, which was added
% lately. Probabley it would be better to use |\AM@pagebox| in
% all cases?
@@ -1871,10 +1911,10 @@
}%
\AM@ClearShipoutPicture
\fi
- \newpage
- \ifAM@reflectall \setbox\AM@pagebox\null \fi
- \ifAM@pdflscape\PLS@Rotate{0}\fi
- \AM@ClearShipoutPicture
+% \ifAM@reflectall \setbox\AM@pagebox\null \fi
+% \ifAM@pdflscape\PLS@Rotate{0}\fi
+% \AM@ClearShipoutPicture
+
% \end{macrocode}
% When creating signatures, every second page must be rotated
% by $180^{\circ}$ and therefore the xoffset must be multiplied
@@ -1884,14 +1924,20 @@
\ifAM@sigrotate\AM@sigrotatefalse\else\AM@sigrotatetrue\fi
\@tempdima=\AM@xoffset\relax
\multiply\@tempdima\m@ne
- \edef\AM@xoffset{\the\@tempdima}
+ \edef\AM@xoffset{\the\@tempdima}%
\fi
\fi
\fi
% \end{macrocode}
% \begin{macrocode}
}% whiledo
- \ifx\AM@twocolumn\relax\twocolumn\fi
+ \global\let\@deferlist\AM@deferlist
+ \global\let\@dbldeferlist\AM@dbldeferlist
+ \ifx\AM@twocolumn\relax
+ \@twocolumntrue
+ \@firstcolumnfalse
+ \fi
+ \newpage
}% AM@output
% \end{macrocode}
% \macro{\AM@readlist}
@@ -2584,15 +2630,15 @@
% \end{macrocode}
% Calculate value of |\AM@signature| for option |booklet|.
% \begin{macrocode}
-\ifAM@booklet
- \AM@countpagelist
- \@tempcntb=\@tempcnta
- \divide\@tempcnta by 4
- \multiply\@tempcnta by 4
- \advance\@tempcntb-\@tempcnta
- \ifnum\@tempcntb=0\else \advance\@tempcnta by 4\fi
- \edef\AM@signature{\the\@tempcnta}%
-\fi
+ \ifAM@booklet
+ \AM@countpagelist
+ \@tempcntb=\@tempcnta
+ \divide\@tempcnta by 4
+ \multiply\@tempcnta by 4
+ \advance\@tempcntb-\@tempcnta
+ \ifnum\@tempcntb=0\else \advance\@tempcnta by 4\fi
+ \edef\AM@signature{\the\@tempcnta}%
+ \fi
% \end{macrocode}
% Make |\AM@signature| a multiply of 4.
% \begin{macrocode}
@@ -3062,7 +3108,7 @@
% \begin{macrocode}
\newcommand{\AM@parse@templatesize}{}
\def\AM@parse@templatesize#1#2\END{%
- \setbox\AM@templatesizebox=\hbox{\rule{#1}{#2}}
+ \setbox\AM@templatesizebox=\hbox{\rule{#1}{#2}}%
\AM@templatesizetrue
}
\newbox\AM@templatesizebox
@@ -3199,12 +3245,12 @@
% is used repeatedly on the same file. Heiko is aware of this and will provide
% a solution in pdftex.def. Until then we will use the original graphicx's filename
% from |\Gread@@pdftex|.
-% \begin{macrocode}
-%% \def\AM@getpagecount{%
-%% \setbox\@tempboxa=\hbox{\includegraphics{\AM@currentdocname}}%
-%% \edef\AM@pagecount{\the\pdflastximagepages}%
-%% }
-% \end{macrocode}
+%
+% \def\AM@getpagecount{%
+% \setbox\@tempboxa=\hbox{\includegraphics{\AM@currentdocname}}%
+% \edef\AM@pagecount{\the\pdflastximagepages}%
+% }
+%
% \begin{macrocode}
%<*(pppdftexdef,ppluatexdef)>
\let\AM@Gread@@pdftex\Gread@@pdftex
@@ -3220,11 +3266,13 @@
% \end{macrocode}
% Page dimensions.
% \begin{macrocode}
-\let\AM@pagewidth\pdfpagewidth
-\let\AM@pageheight\pdfpageheight
+\def\AM@getpagedimen{%
+ \AM@pagewidth=\paperwidth
+ \AM@pageheight=\paperheight
+}
\def\AM@setpagedimen{%
- \setlength{\pdfpagewidth}{\wd\@tempboxa}%
- \setlength{\pdfpageheight}{\ht\@tempboxa + \dp\@tempboxa}%
+ \pdfpagewidth\AM@pagewidth
+ \pdfpageheight\AM@pageheight
}
\let\AM@pagesize@boogie\relax
% \end{macrocode}
@@ -3349,8 +3397,8 @@
\endgroup
}
\def\AM@region@calc{%
- \setlength{\@tempdima}{\ht\@tempboxa + \dp\@tempboxa}
- \edef\AM@region@depth{\the\@tempdima}
+ \setlength{\@tempdima}{\ht\@tempboxa + \dp\@tempboxa}%
+ \edef\AM@region@depth{\the\@tempdima}%
}
% \end{macrocode}
% Do not disable |\includegraphics|.
@@ -3374,7 +3422,7 @@
\PackageError{pdfpages}
{The graphics package was loaded with driver\MessageBreak
`\Gin@driver', which cannot be used with VTeX}
- {Check the driver option of the graphics package.}
+ {Check the driver option of the graphics package.}%
\global\let\AM@endinput\relax
\aftergroup\endinput}{}
\endgroup
@@ -3408,11 +3456,13 @@
% \end{macrocode}
% Page dimensions.
% \begin{macrocode}
-\let\AM@pagewidth\mediawidth
-\let\AM@pageheight\mediaheight
+\def\AM@getpagedimen{%
+ \AM@pagewidth=\mediawidth
+ \AM@pageheight=\mediaheight
+}
\def\AM@setpagedimen{%
- \setlength{\mediawidth}{\wd\@tempboxa}%
- \setlength{\mediaheight}{\ht\@tempboxa+\dp\@tempboxa}%
+ \mediawidth\AM@pagewidth
+ \mediaheight\AM@pageheight
}
\let\AM@pagesize@boogie\relax
% \end{macrocode}
@@ -3522,7 +3572,10 @@
% \begin{macrocode}
\def\AM@getpagecount{%
\expandafter\filename@parse\expandafter{\AM@currentdocname}%
- \lowercase{\edef\type@ext{.\filename@ext}}%
+ \edef\type@ext{%
+ \noexpand\lowercase{%
+ \noexpand\def\noexpand\type@ext{.\filename@ext}}}%
+ \type@ext
\ifx\type@ext\G@pdf@ext
\ifdefined\import@path
\let\AM@import@path\import@path
@@ -3557,11 +3610,13 @@
% \end{macrocode}
% Page dimensions.
% \begin{macrocode}
-\let\AM@pagewidth\pdfpagewidth
-\let\AM@pageheight\pdfpageheight
+\def\AM@getpagedimen{%
+ \AM@pagewidth=\paperwidth
+ \AM@pageheight=\paperheight
+}
\def\AM@setpagedimen{%
- \setlength{\pdfpagewidth}{\wd\@tempboxa}%
- \setlength{\pdfpageheight}{\ht\@tempboxa+\dp\@tempboxa}%
+ \pdfpagewidth\AM@pagewidth
+ \pdfpageheight\AM@pageheight
}
\def\AM@pagesize@boogie{%
\ifdim\AM@pagewidth=\z@
@@ -3740,13 +3795,15 @@
% \end{macrocode}
% Page dimensions.
% \begin{macrocode}
-\let\AM@pagewidth\paperwidth
-\let\AM@pageheight\paperheight
+\def\AM@getpagedimen{%
+ \AM@pagewidth=\paperwidth
+ \AM@pageheight=\paperheight
+}
\def\AM@setpagedimen{%
- \setlength{\paperwidth}{\wd\@tempboxa}%
- \setlength{\paperheight}{\ht\@tempboxa + \dp\@tempboxa}%
+ \paperwidth\AM@pagewidth
+ \paperheight\AM@pageheight
}
-\let\AM@pagesize@boogie\relax
+\let\AM@pagesize@boogie\relax
% \end{macrocode}
% Rotate page.
% \begin{macrocode}
@@ -3818,7 +3875,7 @@
% \subsubsection{Dvipdfm driver}
%
% Package |graphicx| should be loaded with the |dvipdfm| driver.
-% However, |\RequirePackage[dvipdfm]{graphicx}| is not recommended
+% However, \break |\RequirePackage[dvipdfm]{graphicx}| is not recommended
% because it will cause an `option clash' if a user loaded |graphicx|
% with additional options before. Thus, we expect the user to load
% |graphicx| with |dvipdfm| driver before loading pdfpages.
@@ -3832,8 +3889,8 @@
\@spaces \string\usepackage[dvipdfm]{graphicx}\MessageBreak
\@spaces \string\usepackage[dvipdfm]{pdfpages}\MessageBreak
This time I will try to load `dvipdfm.def' which \MessageBreak
- will overwrite `Gin@driver'. Let's hope for the best}
- \input{dvipdfm.def}
+ will overwrite `Gin@driver'. Let's hope for the best}%
+ \input{dvipdfm.def}%
\fi
% \end{macrocode}
% \begin{macrocode}
@@ -3854,13 +3911,15 @@
% \end{macrocode}
% Page dimensions.
% \begin{macrocode}
-\let\AM@pagewidth\paperwidth
-\let\AM@pageheight\paperheight
+\def\AM@getpagedimen{%
+ \AM@pagewidth=\paperwidth
+ \AM@pageheight=\paperheight
+}
\def\AM@setpagedimen{%
- \setlength{\paperwidth}{\wd\@tempboxa}%
- \setlength{\paperheight}{\ht\@tempboxa + \dp\@tempboxa}%
+ \paperwidth\AM@pagewidth
+ \paperheight\AM@pageheight
}
-\let\AM@pagesize@boogie\relax
+\let\AM@pagesize@boogie\relax
% \end{macrocode}
% Rotate page.
% \begin{macrocode}
@@ -4030,11 +4089,13 @@
% \end{macrocode}
% Page dimensions.
% \begin{macrocode}
-\let\AM@pagewidth\paperwidth
-\let\AM@pageheight\paperheight
+\def\AM@getpagedimen{%
+ \AM@pagewidth=\paperwidth
+ \AM@pageheight=\paperheight
+}
\def\AM@setpagedimen{%
- \setlength{\paperwidth}{\wd\@tempboxa}%
- \setlength{\paperheight}{\ht\@tempboxa + \dp\@tempboxa}%
+ \paperwidth\AM@pagewidth
+ \paperheight\AM@pageheight
}
\let\AM@pagesize@boogie\relax
% \end{macrocode}
@@ -4297,6 +4358,11 @@
% of \pdfTeX. Therefore \luaTeX\ gets its on driver file |ppluatex.def|.
% \end{itemize}
%
+% \subsection*{2015/05/04 v0.4x}
+% \begin{itemize}
+% \item Issue with uppercase filename extentions in ppxetex.def fixed.
+% \item Issue with suspending of floats, and bang floats, during output fixed.
+% \end{itemize}
% \Finale
%
% \iffalse
diff --git a/Master/texmf-dist/source/latex/pdfpages/pdfpages.ins b/Master/texmf-dist/source/latex/pdfpages/pdfpages.ins
index fe0c146ea06..aff6ac2f9c3 100644
--- a/Master/texmf-dist/source/latex/pdfpages/pdfpages.ins
+++ b/Master/texmf-dist/source/latex/pdfpages/pdfpages.ins
@@ -21,10 +21,6 @@
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%
-%% \def\AM@getpagecount{%
-%% \setbox\@tempboxa=\hbox{\includegraphics{\AM@currentdocname}}%
-%% \edef\AM@pagecount{\the\pdflastximagepages}%
-%% }
\input docstrip
\askforoverwritefalse
\keepsilent