summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-10-29 19:49:11 +0000
committerKarl Berry <karl@freefriends.org>2022-10-29 19:49:11 +0000
commit7f60206420bf17ee49721e3ea3bddc11834c37b1 (patch)
tree09304bd724c356da7c76a09d47f7ae41b1a27b5c
parentda2983eaf28cbe959300f10351f8105a83d74a0a (diff)
pdflscape (29oct22)
git-svn-id: svn://tug.org/texlive/trunk@64851 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/pdflscape/README.md12
-rw-r--r--Master/texmf-dist/doc/latex/pdflscape/pdflscape.pdfbin299397 -> 323238 bytes
-rw-r--r--Master/texmf-dist/source/latex/pdflscape/pdflscape.dtx129
-rw-r--r--Master/texmf-dist/tex/latex/pdflscape/pdflscape-nometadata.sty253
-rw-r--r--Master/texmf-dist/tex/latex/pdflscape/pdflscape.sty249
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
6 files changed, 380 insertions, 264 deletions
diff --git a/Master/texmf-dist/doc/latex/pdflscape/README.md b/Master/texmf-dist/doc/latex/pdflscape/README.md
index 89416f1b8da..bdbec6af7aa 100644
--- a/Master/texmf-dist/doc/latex/pdflscape/README.md
+++ b/Master/texmf-dist/doc/latex/pdflscape/README.md
@@ -1,10 +1,16 @@
-# pdflscape
-
-pdflscape package for LaTeX
+# pdflscape package for LaTeX
+Version: 2022-10-28 v0.13
Package pdflscape adds PDF support to the
environment landscape of package lscape
by setting the PDF page attribute /Rotate.
+% Copyright (C)
+% 2001, 2004, 2006-2008 Heiko Oberdiek
+% 2016-2022 Oberdiek Package Support Group
+% https://github.com/ho-tex/pdflscape/issues
+
+## License
+LATEX Project Public License, version 1.3c or later.
diff --git a/Master/texmf-dist/doc/latex/pdflscape/pdflscape.pdf b/Master/texmf-dist/doc/latex/pdflscape/pdflscape.pdf
index b94089a91e8..ee0637ae409 100644
--- a/Master/texmf-dist/doc/latex/pdflscape/pdflscape.pdf
+++ b/Master/texmf-dist/doc/latex/pdflscape/pdflscape.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/pdflscape/pdflscape.dtx b/Master/texmf-dist/source/latex/pdflscape/pdflscape.dtx
index d85ffb9bcdb..c0d45d9f67b 100644
--- a/Master/texmf-dist/source/latex/pdflscape/pdflscape.dtx
+++ b/Master/texmf-dist/source/latex/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
diff --git a/Master/texmf-dist/tex/latex/pdflscape/pdflscape-nometadata.sty b/Master/texmf-dist/tex/latex/pdflscape/pdflscape-nometadata.sty
new file mode 100644
index 00000000000..30ad20a6e93
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/pdflscape/pdflscape-nometadata.sty
@@ -0,0 +1,253 @@
+%%
+%% This is file `pdflscape-nometadata.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pdflscape.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Project: pdflscape
+%% Version: 2022-10-28 v0.13
+%%
+%% Copyright (C)
+%% 2001, 2004, 2006-2008 Heiko Oberdiek
+%% 2016-2022 Oberdiek Package Support Group
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c of this license or (at your option) any later
+%% version. This version of this license is in
+%% https://www.latex-project.org/lppl/lppl-1-3c.txt
+%% and the latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainers of this work are
+%% Heiko Oberdiek and the Oberdiek Package Support Group
+%% https://github.com/ho-tex/pdflscape/issues
+%%
+%% This work consists of the main source file pdflscape.dtx
+%% and the derived files
+%% pdflscape.sty, pdflscape-nometadata.sty, pdflscape.pdf,
+%% pdflscape.ins, pdflscape.drv,
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pdflscape-nometadata}%
+ [2022-10-28 v0.13 Display of landscape pages in PDF (HO)]
+\let\PLS@option\@empty
+\let\PLS@driver\@empty
+\def\PLS@temp#1#2{%
+ \DeclareOption{#1}{%
+ \let\PLS@option\CurrentOption
+ \def\PLS@driver{#2}%
+ }%
+}
+\PLS@temp{pdftex}{pdftex}
+\PLS@temp{luatex}{pdftex}
+\PLS@temp{dvips}{dvips}
+\PLS@temp{dvipsone}{dvips}
+\PLS@temp{pctexps}{dvips}
+\PLS@temp{dvipdfm}{dvipdfm}
+\PLS@temp{dvipdfmx}{dvipdfm}
+\PLS@temp{xetex}{dvipdfm}
+\let\PLS@temp\@empty
+\DeclareOption*{%
+ \ifx\PLS@temp\@empty
+ \let\PLS@temp\CurrentOption
+ \else
+ \edef\PLS@temp{\PLS@temp,\CurrentOption}%
+ \fi
+}
+\ProcessOptions*
+\ifx\PLS@option\@empty
+\else
+ \expandafter\PassOptionsToPackage\expandafter{\PLS@option}{lscape}%
+\fi
+\ifx\PLS@temp\@empty
+\else
+ \expandafter\PassOptionsToPackage\expandafter{\PLS@temp}{lscape}%
+\fi
+\RequirePackage{iftex}[2019/11/07]%
+\RequirePackage{lscape}
+\def\PLS@temp{pdftex}
+\ifpdf
+ \ifx\PLS@driver\@empty
+ \let\PLS@driver\PLS@temp
+ \PackageInfo{pdflscape}{Auto-detected driver: \PLS@temp}%
+ \fi
+ \ifx\PLS@driver\PLS@temp
+ \else
+ \PackageError{pdflscape}{%
+ The driver option `\PLS@option' is not compatible\MessageBreak
+ with pdfTeX in PDF mode, using driver `pdftex' instead%
+ }\@ehc
+ \let\PLS@driver\PLS@temp
+ \fi
+\fi
+\def\PLS@temp{dvipdfm}
+\ifxetex
+ \ifx\PLS@driver\@empty
+ \let\PLS@driver\PLS@temp
+ \PackageInfo{pdflscape}{%
+ Auto-detected driver: \PLS@temp\space(xetex)%
+ }%
+ \fi
+ \ifx\PLS@driver\PLS@temp
+ \else
+ \PackageError{pdflscape}{%
+ The driver option `\PLS@option' is not compatible\MessageBreak
+ with XeTeX, using driver for XeTeX (dvipdfm) instead%
+ }\@ehc
+ \let\PLS@driver\PLS@temp
+ \fi
+\fi
+\def\PLS@temp#1#2{%
+ \ifx\PLS@driver\@empty
+ \begingroup
+ \def\PLS@temp{#1.def}%
+ \expandafter\endgroup
+ \ifx\PLS@temp\Gin@driver
+ \def\PLS@driver{#2}%
+ \PackageInfo{pdflscape}{%
+ Auto-detected driver: \PLS@driver\space(#1)%
+ }%
+ \fi
+ \fi
+}
+\PLS@temp{dvipdfm}{dvipdfm}
+\PLS@temp{dvipdfmx}{dvipdfm}
+\PLS@temp{dvips}{dvips}
+\PLS@temp{dvipsone}{dvips}
+\PLS@temp{pctexps}{dvips}
+\ifx\PLS@driver\@empty
+ \def\PLS@temp{dvips}%
+ \ifnum 1=0\ifx\Gin@PS@raw\@undefined
+ \else
+ \ifx\Gin@PS@raw\relax
+ \else
+ \ifx\Gin@PS@raw\@empty
+ \else
+ 1%
+ \fi
+ \fi
+ \fi
+ \space
+ \let\PLS@driver\PLS@temp
+ \PackageInfo{pdflscape}{%
+ Auto-detected driver: \PLS@temp\space(PostScript)%
+ }%
+ \fi
+\fi
+\ifx\PLS@driver\@empty
+ \PackageError{pdflscape}{%
+ Neither pdfTeX, PostScript, nor dvipdfm driver found%
+ }\@ehc
+\fi
+\ifx\pdfpageattr\@undefined
+ \ifx\pdfvariable\@undefined\else
+ \protected\edef\pdfpageattr{\pdfvariable pageattr}
+ \fi
+\fi
+\def\PLS@temp{pdftex}
+\ifx\PLS@temp\PLS@driver
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0 %
+ \else
+ \global\pdfpageattr\expandafter{%
+ \the\pdfpageattr
+ /Rotate #1%
+ }%
+ \fi
+ }%
+ \def\PLS@RemoveRotate{%
+ \begingroup
+ \global\pdfpageattr\expandafter{\expandafter}%
+ \expandafter\PLS@@RemoveRotate
+ \the\pdfpageattr /Rotate\@nil
+ \endgroup
+ }%
+ \def\PLS@@RemoveRotate#1/Rotate#2\@nil{%
+ \global\pdfpageattr\expandafter{\the\pdfpageattr#1}%
+ \ifx\\#2\\%
+ \else
+ \afterassignment\PLS@@RemoveRotate
+ \count0=#2\@nil
+ \fi
+ }%
+\fi
+\def\PLS@temp{dvips}
+\ifx\PLS@temp\PLS@driver
+ \AddToHook{shipout/before}{\PLS@AtBeginShipout}%
+ \let\PLS@AtBeginShipout\@empty
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0 %
+ \else
+ \def\PLS@AtBeginShipout{%
+ \global\setbox\ShipoutBox\vbox{%
+ \Gin@PS@raw{%
+ [{ThisPage}\string<\string</Rotate #1\string>\string>%
+ /PUT pdfmark%
+ }%
+ \box\ShipoutBox
+ }%
+ }%
+ \fi
+ }%
+ \def\PLS@RemoveRotate{\let\PLS@AtBeginShipout\@empty}%
+\fi
+\def\PLS@temp{dvipdfm}
+\ifx\PLS@temp\PLS@driver
+ \AddToHook{shipout/before}{\PLS@AtBeginShipout}%
+ \let\PLS@AtBeginShipout\@empty
+ \def\PLS@AddRotate#1{%
+ \ifnum#1=0 %
+ \else
+ \def\PLS@AtBeginShipout{%
+ \global\setbox\ShipoutBox\vbox{%
+ \special{pdf: put @thispage <</Rotate #1>>}%
+ \box\ShipoutBox
+ }%
+ }%
+ \fi
+ }%
+ \def\PLS@RemoveRotate{\let\PLS@AtBeginShipout\@empty}%
+\fi
+\g@addto@macro{\landscape}{\PLS@Rotate{90}}
+\g@addto@macro{\endlandscape}{\PLS@Rotate{0}}
+\def\PLS@Rotate#1{%
+ \begingroup
+ \PLS@CheckAngle{#1}%
+ \expandafter\endgroup
+ \expandafter\PLS@RemoveRotate
+ \expandafter\PLS@AddRotate\expandafter{\the\count@}%
+}
+\def\PLS@CheckAngle#1{%
+ \ifx\\#1\\%
+ \count@=0 %
+ \else
+ \count@=#1\relax
+ \fi
+ \@whilenum\count@>359\do{\advance\count@ -360 }%
+ \@whilenum\count@<-359\do{\advance\count@ 360 }%
+ \ifnum 1=0\ifnum\count@=0 \else
+ \ifnum\count@=90 \else
+ \ifnum\count@=-90 \else
+ \ifnum\count@=180 \else
+ \ifnum\count@=-180 \else
+ \ifnum\count@=270 \else
+ \ifnum\count@=-270 \else
+ 1\fi\fi\fi\fi\fi\fi\fi\relax
+ \PackageError{pdflscape}{%
+ Invalid value \the\count@\space for /Rotate%
+ }\@ehc
+ \count@=0 %
+ \fi
+}
+\endinput
+%%
+%% End of file `pdflscape-nometadata.sty'.
diff --git a/Master/texmf-dist/tex/latex/pdflscape/pdflscape.sty b/Master/texmf-dist/tex/latex/pdflscape/pdflscape.sty
index 45a9bad5bd8..e1dc90f96f9 100644
--- a/Master/texmf-dist/tex/latex/pdflscape/pdflscape.sty
+++ b/Master/texmf-dist/tex/latex/pdflscape/pdflscape.sty
@@ -4,16 +4,16 @@
%%
%% The original source files were:
%%
-%% pdflscape.dtx (with options: `package')
+%% pdflscape.dtx (with options: `package-new')
%%
%% 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
@@ -31,225 +31,38 @@
%% Heiko Oberdiek and the Oberdiek Package Support Group
%% 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,
%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pdflscape}%
- [2019/12/05 v0.12 Display of landscape pages in PDF (HO)]
-\let\PLS@option\@empty
-\let\PLS@driver\@empty
-\def\PLS@temp#1#2{%
- \DeclareOption{#1}{%
- \let\PLS@option\CurrentOption
- \def\PLS@driver{#2}%
- }%
-}
-\PLS@temp{pdftex}{pdftex}
-\PLS@temp{luatex}{pdftex}
-\PLS@temp{dvips}{dvips}
-\PLS@temp{dvipsone}{dvips}
-\PLS@temp{pctexps}{dvips}
-\PLS@temp{dvipdfm}{dvipdfm}
-\PLS@temp{dvipdfmx}{dvipdfm}
-\PLS@temp{xetex}{dvipdfm}
-\let\PLS@temp\@empty
-\DeclareOption*{%
- \ifx\PLS@temp\@empty
- \let\PLS@temp\CurrentOption
- \else
- \edef\PLS@temp{\PLS@temp,\CurrentOption}%
- \fi
-}
-\ProcessOptions*
-\ifx\PLS@option\@empty
-\else
- \expandafter\PassOptionsToPackage\expandafter{\PLS@option}{lscape}%
-\fi
-\ifx\PLS@temp\@empty
-\else
- \expandafter\PassOptionsToPackage\expandafter{\PLS@temp}{lscape}%
-\fi
-\RequirePackage{iftex}[2019/11/07]%
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{pdflscape}{2022-10-27}{0.13}
+ {Display of landscape pages in PDF}%
+\@ifl@t@r\fmtversion{2022-06-01}
+ {
+ \IfDocumentMetadataTF {}{\RequirePackageWithOptions{pdflscape-nometadata}}
+ \IfDocumentMetadataTF {}{\endinput}
+ }
+ {\RequirePackageWithOptions{pdflscape-nometadata}}
+\DeclareOption*{\PassOptionsToPackage\CurrentOption{graphics}}
+\ProcessOptions
\RequirePackage{lscape}
-\def\PLS@temp{pdftex}
-\ifpdf
- \ifx\PLS@driver\@empty
- \let\PLS@driver\PLS@temp
- \PackageInfo{pdflscape}{Auto-detected driver: \PLS@temp}%
- \fi
- \ifx\PLS@driver\PLS@temp
- \else
- \PackageError{pdflscape}{%
- The driver option `\PLS@option' is not compatible\MessageBreak
- with pdfTeX in PDF mode, using driver `pdftex' instead%
- }\@ehc
- \let\PLS@driver\PLS@temp
- \fi
-\fi
-\def\PLS@temp{dvipdfm}
-\ifxetex
- \ifx\PLS@driver\@empty
- \let\PLS@driver\PLS@temp
- \PackageInfo{pdflscape}{%
- Auto-detected driver: \PLS@temp\space(xetex)%
- }%
- \fi
- \ifx\PLS@driver\PLS@temp
- \else
- \PackageError{pdflscape}{%
- The driver option `\PLS@option' is not compatible\MessageBreak
- with XeTeX, using driver for XeTeX (dvipdfm) instead%
- }\@ehc
- \let\PLS@driver\PLS@temp
- \fi
-\fi
-\def\PLS@temp#1#2{%
- \ifx\PLS@driver\@empty
- \begingroup
- \def\PLS@temp{#1.def}%
- \expandafter\endgroup
- \ifx\PLS@temp\Gin@driver
- \def\PLS@driver{#2}%
- \PackageInfo{pdflscape}{%
- Auto-detected driver: \PLS@driver\space(#1)%
- }%
- \fi
- \fi
-}
-\PLS@temp{dvipdfm}{dvipdfm}
-\PLS@temp{dvipdfmx}{dvipdfm}
-\PLS@temp{dvips}{dvips}
-\PLS@temp{dvipsone}{dvips}
-\PLS@temp{pctexps}{dvips}
-\ifx\PLS@driver\@empty
- \def\PLS@temp{dvips}%
- \ifnum 1=0\ifx\Gin@PS@raw\@undefined
- \else
- \ifx\Gin@PS@raw\relax
- \else
- \ifx\Gin@PS@raw\@empty
- \else
- 1%
- \fi
- \fi
- \fi
- \space
- \let\PLS@driver\PLS@temp
- \PackageInfo{pdflscape}{%
- Auto-detected driver: \PLS@temp\space(PostScript)%
- }%
- \fi
-\fi
-\ifx\PLS@driver\@empty
- \PackageError{pdflscape}{%
- Neither pdfTeX, PostScript, nor dvipdfm driver found%
- }\@ehc
-\fi
-\ifx\pdfpageattr\@undefined
- \ifx\pdfvariable\@undefined\else
- \protected\edef\pdfpageattr{\pdfvariable pageattr}
- \fi
-\fi
-\def\PLS@temp{pdftex}
-\ifx\PLS@temp\PLS@driver
- \def\PLS@AddRotate#1{%
- \ifnum#1=0 %
- \else
- \global\pdfpageattr\expandafter{%
- \the\pdfpageattr
- /Rotate #1%
- }%
- \fi
- }%
- \def\PLS@RemoveRotate{%
- \begingroup
- \global\pdfpageattr\expandafter{\expandafter}%
- \expandafter\PLS@@RemoveRotate
- \the\pdfpageattr /Rotate\@nil
- \endgroup
- }%
- \def\PLS@@RemoveRotate#1/Rotate#2\@nil{%
- \global\pdfpageattr\expandafter{\the\pdfpageattr#1}%
- \ifx\\#2\\%
- \else
- \afterassignment\PLS@@RemoveRotate
- \count0=#2\@nil
- \fi
- }%
-\fi
-\def\PLS@temp{dvips}
-\ifx\PLS@temp\PLS@driver
- \RequirePackage{atbegshi}%
- \AtBeginShipout{\PLS@AtBeginShipout}%
- \let\PLS@AtBeginShipout\@empty
- \def\PLS@AddRotate#1{%
- \ifnum#1=0 %
- \else
- \def\PLS@AtBeginShipout{%
- \global\setbox\AtBeginShipoutBox\vbox{%
- \Gin@PS@raw{%
- [{ThisPage}\string<\string</Rotate #1\string>\string>%
- /PUT pdfmark%
- }%
- \box\AtBeginShipoutBox
- }%
- }%
- \fi
- }%
- \def\PLS@RemoveRotate{\let\PLS@AtBeginShipout\@empty}%
-\fi
-\def\PLS@temp{dvipdfm}
-\ifx\PLS@temp\PLS@driver
- \RequirePackage{atbegshi}%
- \AtBeginShipout{\PLS@AtBeginShipout}%
- \let\PLS@AtBeginShipout\@empty
- \def\PLS@AddRotate#1{%
- \ifnum#1=0 %
- \else
- \def\PLS@AtBeginShipout{%
- \global\setbox\AtBeginShipoutBox\vbox{%
- \special{pdf: put @thispage <</Rotate #1>>}%
- \box\AtBeginShipoutBox
- }%
- }%
- \fi
- }%
- \def\PLS@RemoveRotate{\let\PLS@AtBeginShipout\@empty}%
-\fi
-\g@addto@macro{\landscape}{\PLS@Rotate{90}}
-\g@addto@macro{\endlandscape}{\PLS@Rotate{0}}
-\def\PLS@Rotate#1{%
- \begingroup
- \PLS@CheckAngle{#1}%
- \expandafter\endgroup
- \expandafter\PLS@RemoveRotate
- \expandafter\PLS@AddRotate\expandafter{\the\count@}%
-}
-\def\PLS@CheckAngle#1{%
- \ifx\\#1\\%
- \count@=0 %
- \else
- \count@=#1\relax
- \fi
- \@whilenum\count@>359\do{\advance\count@ -360 }%
- \@whilenum\count@<-359\do{\advance\count@ 360 }%
- \ifnum 1=0\ifnum\count@=0 \else
- \ifnum\count@=90 \else
- \ifnum\count@=-90 \else
- \ifnum\count@=180 \else
- \ifnum\count@=-180 \else
- \ifnum\count@=270 \else
- \ifnum\count@=-270 \else
- 1\fi\fi\fi\fi\fi\fi\fi\relax
- \PackageError{pdflscape}{%
- Invalid value \the\count@\space for /Rotate%
- }\@ehc
- \count@=0 %
- \fi
-}
+
+\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}}
+ }
\endinput
%%
%% End of file `pdflscape.sty'.
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index b8b2ac35ec4..9df91babb9b 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -3168,6 +3168,7 @@ my $core_latex = "$Master/texmf-dist/tex/latex";
'nwejm' => 'tex',
'nomentbl' => 'latex -translate-file=empty.tcx', # no 8-bit
'pbsheet' => 'latex', # requires interaction
+ 'pdflscape' => 'etex',
'penrose' => 'etex',
'powerdot' => 'latex',
'thumb' => 'latex -translate-file=empty.tcx', # no 8-bit