summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-08-22 03:01:06 +0000
committerNorbert Preining <norbert@preining.info>2023-08-22 03:01:06 +0000
commitcf3e954514eb50bea0335bdc97d6b76f80f5d03e (patch)
tree84960c9724915fd64626f3b8c532a671ea7e87f2 /macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
parentf4e4c48e897bec27fd8d07ba278c03c6f0c64336 (diff)
CTAN sync 202308220301
Diffstat (limited to 'macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx')
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx52
1 files changed, 46 insertions, 6 deletions
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
index 8996d74131..9f1ddc8e78 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95x, released 2023-03-09}
+% \date{Version 0.95y, released 2023-08-20}
%
% \maketitle
% \begin{documentation}
@@ -126,7 +126,7 @@
% if the management is active.
% \begin{function}[updated = 2020-07-03]
% {
-% \pdf_bdc:nn
+% \pdf_bdc:nn, \pdf_bdc:ee
% }
% \begin{syntax}
% \cs{pdf_bdc:nn} \Arg{tag} \Arg{dictionary content}
@@ -139,8 +139,28 @@
% Without the resource management the content is used directly. It then
% depends on the backend how it is handled: with dvips a name is used
% while the pdfmode engines and dvipdfmx write the content into the stream.
-%
% \end{function}
+% \begin{function}[added = 2023-08-18]
+% {
+% \pdf_bdc_shipout:ee
+% }
+% \begin{syntax}
+% \cs{pdf_bdc_shipout:ee} \Arg{tag} \Arg{dictionary content}
+% \end{syntax}
+% This command adds a BDC marked content operator to the current page stream.
+% \meta{tag} is the tag of this operator (without the leading slash),
+% \meta{dictionary content} is the content of the second argument.
+%
+% Differently to \cs{pdf_bdc:ee} the arguments are not expanded when the
+% command is \emph{used}, but only at \emph{shipout}.
+% This requires new engines which
+% allow to use the keyword \texttt{shipout} with the primitive
+% \cs{special} and \cs{pdfliteral}. The content of \meta{dictionary content}
+% is added in the stream.
+%
+% The command requires current engines and is not defined if an to old engine is detected!
+% \end{function}
+%
% \begin{function}[added = 2020-07-03]
% {
% \pdf_bdcobject:nn
@@ -211,7 +231,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdftools}{2023-03-09}{0.95x}
+\ProvidesExplPackage{l3pdftools}{2023-08-20}{0.95y}
{candidate commands for l3pdf---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
@@ -252,11 +272,15 @@
% \end{macrocode}
% \begin{macro}{\pdf_string_from_unicode:nnN}
% \begin{macrocode}
+\msg_new:nnn {pdfmanagement}{ unknown-convert}
+ {
+ Unknown~string~conversion~method~'#1'!
+ }
\cs_new:Npn \pdf_string_from_unicode:nnN #1 #2 #3
{
\cs_if_exist_use:cF { @@_string_from_unicode_#1:nN }
{
- \__kernel_msg_error:nnn { pdf } { unknown-convert } {#1}
+ \msg_error:nnn { pdf } { unknown-convert } {#1}
\use_none:nn
}
{ #2 } #3
@@ -405,13 +429,28 @@
% \end{macro}
%
% \subsubsection{BDC operator commands}
-% \begin{macro}{\pdf_bdc:nn}
+% \begin{macro}{\pdf_bdc:nn,\pdf_bdc:ee}
+% \begin{macro}{\pdf_bdc_shipout:ee}
% \begin{macro}{\pdf_bdcobject:nn}
% \begin{macro}{\pdf_bdcobject:n}
% \begin{macro}{\pdf_bmc:n}
% \begin{macro}{\pdf_emc:}
% \begin{macrocode}
\cs_new_protected:Npn \pdf_bdc:nn #1 #2 { \@@_backend_bdc:nn { #1 }{ #2 } }
+\cs_generate_variant:Nn \pdf_bdc:nn {ee}
+
+\cs_new_protected:Npn \pdf_bdc_shipout:ee #1 #2
+ {
+ \bool_if:NTF\l__pdfmanagement_delayed_shipout_bool
+ {
+ \@@_backend_bdc_shipout:ee { #1 }{ #2 }
+ \cs_gset_eq:NN \pdf_bdc_shipout:ee \@@_backend_bdc_shipout:ee
+ }
+ {
+ \msg_error:nn {pdfmanagement}{delayed-shipout}
+ \cs_gset_eq:NN \pdf_bdc_shipout:ee \use_none:nn
+ }
+ }
\cs_new_protected:Npn \pdf_bdcobject:nn #1 #2 { \@@_backend_bdcobject:nn { #1 }{ #2 } }
\cs_new_protected:Npn \pdf_bdcobject:n #1 { \@@_backend_bdcobject:n { #1 } }
\cs_new_protected:Npn \pdf_bmc:n #1 { \@@_backend_bmc:n { #1 } }
@@ -422,6 +461,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
% \begin{macrocode}
%</package>
% \end{macrocode}