summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pdflscape/pdflscape.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/pdflscape/pdflscape.dtx')
-rw-r--r--macros/latex/contrib/pdflscape/pdflscape.dtx129
1 files changed, 86 insertions, 43 deletions
diff --git a/macros/latex/contrib/pdflscape/pdflscape.dtx b/macros/latex/contrib/pdflscape/pdflscape.dtx
index d85ffb9bcd..c0d45d9f67 100644
--- a/macros/latex/contrib/pdflscape/pdflscape.dtx
+++ b/macros/latex/contrib/pdflscape/pdflscape.dtx
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: pdflscape.dtx
-% Version: 2019/12/05 v0.12
+% Version: 2022-10-28 v0.13
% Info: Display of landscape pages in PDF
%
% Copyright (C)
% 2001, 2004, 2006-2008 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
+% 2016-2022 Oberdiek Package Support Group
% https://github.com/ho-tex/pdflscape/issues
%
% This work may be distributed and/or modified under the
@@ -27,7 +27,8 @@
%
% This work consists of the main source file pdflscape.dtx
% and the derived files
-% pdflscape.sty, pdflscape.pdf, pdflscape.ins, pdflscape.drv,
+% pdflscape.sty, pdflscape-nometadata, pdflscape.pdf,
+% pdflscape.ins, pdflscape.drv,
%
% Distribution:
% CTAN:macros/latex/contrib/pdflscape/pdflscape.dtx
@@ -61,6 +62,7 @@
%
% Installation:
% TDS:tex/latex/pdflscape/pdflscape.sty
+% TDS:tex/latex/pdflscape/pdflscape-nometadata.sty
% TDS:doc/latex/pdflscape/pdflscape.pdf
% TDS:source/latex/pdflscape/pdflscape.dtx
%
@@ -79,7 +81,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: pdflscape 2019/12/05 v0.12 Display of landscape pages in PDF (HO)}
+\Msg{* Package: pdflscape 2022-10-28 v0.13 Display of landscape pages in PDF (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -91,11 +93,11 @@
This is a generated file.
Project: pdflscape
-Version: 2019/12/05 v0.12
+Version: 2022-10-28 v0.13
Copyright (C)
2001, 2004, 2006-2008 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2022 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -116,7 +118,8 @@ https://github.com/ho-tex/pdflscape/issues
This work consists of the main source file pdflscape.dtx
and the derived files
- pdflscape.sty, pdflscape.pdf, pdflscape.ins, pdflscape.drv,
+ pdflscape.sty, pdflscape-nometadata.sty, pdflscape.pdf,
+ pdflscape.ins, pdflscape.drv,
\endpreamble
\let\MetaPrefix\DoubleperCent
@@ -125,7 +128,8 @@ and the derived files
\file{pdflscape.ins}{\from{pdflscape.dtx}{install}}%
\file{pdflscape.drv}{\from{pdflscape.dtx}{driver}}%
\usedir{tex/latex/pdflscape}%
- \file{pdflscape.sty}{\from{pdflscape.dtx}{package}}%
+ \file{pdflscape-nometadata.sty}{\from{pdflscape.dtx}{package}}%
+ \file{pdflscape.sty}{\from{pdflscape.dtx}{package-new}}%
}
\catcode32=13\relax% active space
@@ -136,6 +140,7 @@ and the derived files
\Msg{* file into a directory searched by TeX:}
\Msg{*}
\Msg{* pdflscape.sty}
+\Msg{* pdflscape-nometadata.sty}
\Msg{*}
\Msg{* To produce the documentation run the file `pdflscape.drv'}
\Msg{* through LaTeX.}
@@ -152,7 +157,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{pdflscape.drv}%
- [2019/12/05 v0.12 Display of landscape pages in PDF (HO)]%
+ [2022-10-28 v0.13 Display of landscape pages in PDF (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\usepackage{graphics}
@@ -167,7 +172,7 @@ and the derived files
% \GetFileInfo{pdflscape.drv}
%
% \title{The \xpackage{pdflscape} package}
-% \date{2019/12/05 v0.12}
+% \date{2022-10-28 v0.13}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/pdflscape/issues}}}
%
@@ -184,13 +189,21 @@ and the derived files
% \section{Documentation}
%
% \subsection{Supported drivers}
+%
+% If the PDF management is loaded by the use of \verb+\DocumentMetadata{}+ at
+% the beginning of the document, the engines and backends supported by \texttt{l3backend}
+% can be used. Driver options are passed to graphics and are typically only needed if
+% \LaTeX{} is used with \texttt{dvipdfmx}.
+%
+% Without the PDF management the following driver options can be used (many are
+% simply aliases to each other):
%
% \begin{itemize}
% \item \xoption{pdftex},\xoption{luatex}
% \item \xoption{dvips}, \xoption{dvipsone},
-% \xoption{pctex32}, \xoption{pctexps}
+% \xoption{pctexps}
% (and other drivers that provide a non-empty \cs{Gin@PS@raw})
-% \item \xoption{dvipdfm}
+% \item \xoption{dvipdfm}, \xoption{dvipdfmx}, \xoption{xetex}
% \end{itemize}
%
% \subsection{Caveat}
@@ -224,8 +237,55 @@ and the derived files
% }
%
% \section{Implementation}
+% \subsection{New version using the methods of the PDF management}
+% Identification
+% \begin{macrocode}
+%<*package-new>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{pdflscape}{2022-10-27}{0.13}
+ {Display of landscape pages in PDF}%
+% \end{macrocode}
+% Testing if the pdfmanagement is used
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2022-06-01}
+ {
+ \IfDocumentMetadataTF {}{\RequirePackageWithOptions{pdflscape-nometadata}}
+ \IfDocumentMetadataTF {}{\endinput}
+ }
+ {\RequirePackageWithOptions{pdflscape-nometadata}}
+% \end{macrocode}
+% Load lscape, but don't pass the \texttt{pdftex} option
+% as it would use \cs{pdfpageattr} which is incompatible with the pdf management.
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToPackage\CurrentOption{graphics}}
+\ProcessOptions
+\RequirePackage{lscape}
+% \end{macrocode}
+% this always turns in the same direction as the original code
+% of pdflscape does. left and right would need
+% \verb+\pdfmanagement_add:nnn{ThisPage}{Rotate}{..}+
+% on every page (e.g. in a shipout hook) and some option to control the wanted
+% orientation.
+
+% \begin{macrocode}
+\tl_new:N\g__pdflscape_saverotate_tl
+\hook_gput_code:nnn {env/landscape/begin}{pdflscape}
+ {
+ \pdfmanagement_get:nnN {Page}{Rotate}\l_tmpa_tl
+ \tl_gset_eq:NN\g__pdflscape_saverotate_tl\l_tmpa_tl
+ \clearpage
+ \pdfmanagement_add:nnn{Page}{Rotate}{90}
+ }
+\hook_gput_code:nnn {env/landscape/after}{pdflscape}
+ {
+ \quark_if_no_value:NTF\g__pdflscape_saverotate_tl
+ {\pdfmanagement_remove:nn{Page}{Rotate}}
+ {\pdfmanagement_add:nnx{Page}{Rotate}{\g__pdflscape_saverotate_tl}}
+ }
+%</package-new>
+% \end{macrocode}
%
-% \subsection{Package identification}
+% \subsection{Old version without the PDF management}
%
% \begin{macrocode}
%<*package>
@@ -233,8 +293,8 @@ and the derived files
% Package identification.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pdflscape}%
- [2019/12/05 v0.12 Display of landscape pages in PDF (HO)]
+\ProvidesPackage{pdflscape-nometadata}%
+ [2022-10-28 v0.13 Display of landscape pages in PDF (HO)]
% \end{macrocode}
%
% \subsection{Driver options}
@@ -452,19 +512,18 @@ and the derived files
% \begin{macrocode}
\def\PLS@temp{dvips}
\ifx\PLS@temp\PLS@driver
- \RequirePackage{atbegshi}%
- \AtBeginShipout{\PLS@AtBeginShipout}%
+ \AddToHook{shipout/before}{\PLS@AtBeginShipout}%
\let\PLS@AtBeginShipout\@empty
\def\PLS@AddRotate#1{%
\ifnum#1=0 %
\else
\def\PLS@AtBeginShipout{%
- \global\setbox\AtBeginShipoutBox\vbox{%
+ \global\setbox\ShipoutBox\vbox{%
\Gin@PS@raw{%
[{ThisPage}\string<\string</Rotate #1\string>\string>%
/PUT pdfmark%
}%
- \box\AtBeginShipoutBox
+ \box\ShipoutBox
}%
}%
\fi
@@ -478,16 +537,15 @@ and the derived files
% \begin{macrocode}
\def\PLS@temp{dvipdfm}
\ifx\PLS@temp\PLS@driver
- \RequirePackage{atbegshi}%
- \AtBeginShipout{\PLS@AtBeginShipout}%
+ \AddToHook{shipout/before}{\PLS@AtBeginShipout}%
\let\PLS@AtBeginShipout\@empty
\def\PLS@AddRotate#1{%
\ifnum#1=0 %
\else
\def\PLS@AtBeginShipout{%
- \global\setbox\AtBeginShipoutBox\vbox{%
+ \global\setbox\ShipoutBox\vbox{%
\special{pdf: put @thispage <</Rotate #1>>}%
- \box\AtBeginShipoutBox
+ \box\ShipoutBox
}%
}%
\fi
@@ -584,26 +642,6 @@ and the derived files
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `pdflscape'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/pdflscape.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{pdflscape.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip pdflscape.tds.zip -d ~/texmf|
-% \end{quote}
-%
% \subsection{Package installation}
%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
@@ -620,6 +658,7 @@ and the derived files
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
% pdflscape.sty & tex/latex/pdflscape/pdflscape.sty\\
+% pdflscape-nometadata.sty & tex/latex/pdflscape/pdflscape-nometadata.sty\\
% pdflscape.pdf & doc/latex/pdflscape/pdflscape.pdf\\
% pdflscape.dtx & source/latex/pdflscape/pdflscape.dtx\\
% \end{tabular}^^A
@@ -798,6 +837,10 @@ and the derived files
% Documentation updates.
% \item \xpackage{iftex} package.
% \end{Version}
+% \begin{Version}{2022-10-28 v0.13}
+% \item Made the package compatible with the PDF management.
+% \item Removed the dependency to atbegshi.
+% \end{Version}
% \end{History}
%
% \PrintIndex