texlive[62927] Master/texmf-dist: ocgx2 (1apr22)

commits+karl at tug.org commits+karl at tug.org
Tue Apr 5 23:58:00 CEST 2022


Revision: 62927
          http://tug.org/svn/texlive?view=revision&revision=62927
Author:   karl
Date:     2022-04-05 23:58:00 +0200 (Tue, 05 Apr 2022)
Log Message:
-----------
ocgx2 (1apr22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/ocgx2/ChangeLog
    trunk/Master/texmf-dist/tex/latex/ocgx2/ocgbase.sty
    trunk/Master/texmf-dist/tex/latex/ocgx2/ocgx2.sty

Modified: trunk/Master/texmf-dist/doc/latex/ocgx2/ChangeLog
===================================================================
--- trunk/Master/texmf-dist/doc/latex/ocgx2/ChangeLog	2022-04-05 21:57:49 UTC (rev 62926)
+++ trunk/Master/texmf-dist/doc/latex/ocgx2/ChangeLog	2022-04-05 21:58:00 UTC (rev 62927)
@@ -1,3 +1,9 @@
+2022-04-01
+	* v0.54: ocgx2.sty
+	* v0.21: ocgbase.sty
+	* new: expanding ocmd env arguments
+	* fix: a few internal macros \protected
+
 2021-06-16
 	* v0.53: ocgx2.sty
 	* fix: tikz option breaks package loading
@@ -20,7 +26,7 @@
 	* v0.49: ocgx2.sty
 	* fix: `ocgcolorlinks': fixing misplaced page content resulting from
 	\pdfliteral{} inserted by others (such as TikZ)
-	
+
 2019-11-07
 	* v0.48: ocgx2.sty
 	* fix: link-making commands failed with empty option arg
@@ -37,7 +43,7 @@
 2019-09-19
 	* v0.45: ocgx2.sty
 	* new: using comma for separating OCG ids in \showocg, \hideocg etc.; <space>
-	still accepted for compatibility with ocgx/ocg-p 
+	still accepted for compatibility with ocgx/ocg-p
 
 2019-09-17
 	* v0.44: ocgx2.sty
@@ -129,7 +135,7 @@
 2017-05-12
 	* v0.26: ocgx2.sty
 	* fix: OCView, OCPrint (ocgcolorlinks related OCGs) settings saved for
-	possible re-opening by the user 
+	possible re-opening by the user
 
 2017-04-25
 	* v0.25: ocgx2.sty

Modified: trunk/Master/texmf-dist/tex/latex/ocgx2/ocgbase.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ocgx2/ocgbase.sty	2022-04-05 21:57:49 UTC (rev 62926)
+++ trunk/Master/texmf-dist/tex/latex/ocgx2/ocgbase.sty	2022-04-05 21:58:00 UTC (rev 62927)
@@ -102,8 +102,8 @@
 
 \RequirePackage{l3keys2e}
 
-\def\g at ocgbase@date at tl{2021/06/11}
-\def\g at ocgbase@version at tl{0.20}
+\def\g at ocgbase@date at tl{2022/04/01}
+\def\g at ocgbase@version at tl{0.21}
 
 \ProvidesExplPackage{ocgbase}{\g at ocgbase@date at tl}{\g at ocgbase@version at tl}
 {support package for ocgx2.sty}
@@ -229,7 +229,7 @@
 
 %macro for starting OCG object (and nested children) insertion into Order
 %hierarchy (shown as tree structure in the viewers `Layers' tab
-\cs_new_protected:Nn\ocgbase_tree_node_begin:n{ % #1: OCG obj
+\cs_new_protected_nopar:Nn\ocgbase_tree_node_begin:n{ % #1: OCG obj
   %get the parent node from stack
   \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_prnt_tl
   \tl_if_exist:cTF{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}{
@@ -281,7 +281,7 @@
 % the node which refers to the same OCG (arg #2 remains un-modified), or
 % the last sibling inserted (arg #2 is cleared);
 % the node id of the sibling found is returned in arg #1
-\cs_new:Nn\ocgbase_traverse_siblings:NN{
+\cs_new_protected:Nn\ocgbase_traverse_siblings:NN{
   % #1: current node (in/out),  #2: OCG obj (in/out)
   \str_if_eq:eeF{#2}{\tl_use:c{g_ocgbase_nd_#1_ocg_tl}}{
     \tl_if_exist:cTF{g_ocgbase_nd_#1_sbl_tl}{
@@ -293,7 +293,7 @@
   }
 }
 
-\cs_new:Nn\ocgbase_build_order:Nn{
+\cs_new_protected_nopar:Nn\ocgbase_build_order:Nn{
   % (recursive macro)
   % #1: tl var to which the OCG order is written (output)
   % #2: starting node id (input; usually `1')
@@ -474,8 +474,8 @@
 
 \RequirePackage{l3keys2e}
 
-\def\g at ocgbase@date at tl{2021/06/11}
-\def\g at ocgbase@version at tl{0.20}
+\def\g at ocgbase@date at tl{2022/04/01}
+\def\g at ocgbase@version at tl{0.21}
 
 \ProvidesExplPackage{ocgbase}{\g at ocgbase@date at tl}{\g at ocgbase@version at tl}
 {support package for ocgx2.sty}
@@ -592,7 +592,7 @@
   \tl_gset:Nx\g_ocgbase_last_ocg_tl{\pdf_object_ref_last:}
   \tl_gset:cx{g_pbs_objname_\pdf_object_ref_last: _tl}{
     g_object_\int_use:N\g_ocgbase_int _pdf
-  } 
+  }
   \int_gincr:N\g_ocgbase_int
 }
 
@@ -606,7 +606,7 @@
 
 %macro for starting OCG object (and nested children) insertion into Order
 %hierarchy (shown as tree structure in the viewers `Layers' tab
-\cs_new_protected:Nn\ocgbase_tree_node_begin:n{ % #1: OCG obj
+\cs_new_protected_nopar:Nn\ocgbase_tree_node_begin:n{ % #1: OCG obj
   %get the parent node from stack
   \seq_get:NN\g_ocgbase_tree_nd_stack_seq\l__ocgbase_prnt_tl
   \tl_if_exist:cTF{g_ocgbase_nd_\l__ocgbase_prnt_tl _chld_tl}{
@@ -658,7 +658,7 @@
 % the node which refers to the same OCG (arg #2 remains un-modified), or
 % the last sibling inserted (arg #2 is cleared);
 % the node id of the sibling found is returned in arg #1
-\cs_new:Nn\ocgbase_traverse_siblings:NN{
+\cs_new_protected:Nn\ocgbase_traverse_siblings:NN{
   % #1: current node (in/out),  #2: OCG obj (in/out)
   \str_if_eq:eeF{#2}{\tl_use:c{g_ocgbase_nd_#1_ocg_tl}}{
     \tl_if_exist:cTF{g_ocgbase_nd_#1_sbl_tl}{
@@ -670,7 +670,7 @@
   }
 }
 
-\cs_new:Nn\ocgbase_build_order:Nn{
+\cs_new_protected_nopar:Nn\ocgbase_build_order:Nn{
   % (recursive macro)
   % #1: tl var to which the OCG order is written (output)
   % #2: starting node id (input; usually `1')

Modified: trunk/Master/texmf-dist/tex/latex/ocgx2/ocgx2.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/ocgx2/ocgx2.sty	2022-04-05 21:57:49 UTC (rev 62926)
+++ trunk/Master/texmf-dist/tex/latex/ocgx2/ocgx2.sty	2022-04-05 21:58:00 UTC (rev 62927)
@@ -45,8 +45,8 @@
 
   \RequirePackage{l3keys2e}
 
-  \def\g at ocgxii@date at tl{2021/06/16}
-  \def\g at ocgxii@version at tl{0.53}
+  \def\g at ocgxii@date at tl{2022/04/01}
+  \def\g at ocgxii@version at tl{0.54}
 
   \ProvidesExplPackage{ocgx2}{\g at ocgxii@date at tl}{\g at ocgxii@version at tl}
   {ports `ocgx' functionality to dvips+ps2pdf, xelatex and dvipdfmx}
@@ -250,6 +250,8 @@
     \ocgxii_end_ocmd:
   }
 
+  \cs_new_protected_nopar:Nn\ocgxii_protected_dummy_cs:n{}
+
   \cs_new_protected_nopar:Nn\ocgxii_begin_ocmd:nn{ % #1: id,
     \bool_if:nTF{                                  % #2: visib. expr. or policy
       \tl_if_blank:oTF{#1}{
@@ -263,17 +265,33 @@
     }{
       % new ocmd
       \group_begin:
-        \ocgxii_ocmd_read_visbility:nN{#2}\l_ocgxii_ocmd_visibility_tl
+        \cs_set_eq:NN\AllOn \ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\AnyOn \ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\AnyOff\ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\AllOff\ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\Not   \ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\And   \ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\Or    \ocgxii_protected_dummy_cs:n
+        \ocgxii_ocmd_read_visbility:xN{#2}\l_ocgxii_ocmd_visibility_tl
         \pbs_pdfobj:nnn{}{dict}{/Type/OCMD\l_ocgxii_ocmd_visibility_tl}
         %if only visb. policy is given, generate equivalent visib. expression,
         %needed for stack of open layers and \ocgxii_make_oc_entry: command
-        \ocgxii_ocmd_make_equiv_ve:nN{#2}\l_ocgxii_ocmd_equiv_ve_tl
+        \ocgxii_ocmd_make_equiv_ve:xN{#2}\l_ocgxii_ocmd_equiv_ve_tl
         \tl_gset:co{ocgx2.ocmd.\pbs_pdflastobj:}{\l_ocgxii_ocmd_equiv_ve_tl}
       \group_end:
       \tl_set:Nx\l_ocgxii_cur_ocmd_tl{\pbs_pdflastobj:}
       \tl_if_blank:oF{#1}{
         \tl_gset:cx{ocgxii_ocmd_#1}{\pbs_pdflastobj:}
-        \iow_now:Nn\@mainaux{\ocgxii at newkeynoexp{ocgx2.ocmd.#1}{#2}}
+        \group_begin:
+          \cs_set_eq:NN\AllOn \ocgxii_protected_dummy_cs:n
+          \cs_set_eq:NN\AnyOn \ocgxii_protected_dummy_cs:n
+          \cs_set_eq:NN\AnyOff\ocgxii_protected_dummy_cs:n
+          \cs_set_eq:NN\AllOff\ocgxii_protected_dummy_cs:n
+          \cs_set_eq:NN\Not   \ocgxii_protected_dummy_cs:n
+          \cs_set_eq:NN\And   \ocgxii_protected_dummy_cs:n
+          \cs_set_eq:NN\Or    \ocgxii_protected_dummy_cs:n
+          \iow_now:Nx\@mainaux{\exp_not:N\ocgxii at newkeynoexp{ocgx2.ocmd.#1}{#2}}
+        \group_end:
       }
     }
     \ocgbase_open_stack_push:n{\l_ocgxii_cur_ocmd_tl}
@@ -282,6 +300,7 @@
     \ocgbase_oc_bdc:n{\l_ocgxii_cur_ocmd_tl}
   }
   \cs_generate_variant:Nn\ocgxii_begin_ocmd:nn{on}
+
   \cs_new_protected_nopar:Nn\ocgxii_end_ocmd:{
     \ocgbase_oc_emc:
     \ocgbase_open_stack_pop:N\l_trash_tl
@@ -296,6 +315,8 @@
     \tl_clear_new:N#2
     \clist_map_inline:nn{#1}{\ocgxii_omcd_parse_argument:nN{##1}#2}
   }
+  \cs_generate_variant:Nn\ocgxii_ocmd_read_visbility:nN{xN}
+
   \cs_new_protected_nopar:Nn\ocgxii_omcd_parse_argument:nN{
     \cs_set_eq:NN\AllOn \ocgxii_vp_check:n
     \cs_set_eq:NN\AnyOn \ocgxii_vp_check:n
@@ -450,6 +471,8 @@
     \tl_clear_new:N#2
     \clist_map_inline:nn{#1}{\ocgxii_omcd_convert_vp:nN{##1}#2}
   }
+  \cs_generate_variant:Nn\ocgxii_ocmd_make_equiv_ve:nN{xN}
+
   \cs_new_protected_nopar:Nn\ocgxii_omcd_convert_vp:nN{
     \cs_set_eq:NN\AllOn \ocgxii_vp_check:n
     \cs_set_eq:NN\AnyOn \ocgxii_vp_check:n
@@ -533,7 +556,7 @@
     latter~may~be~used~as~fallback~by~non-conforming~PDF~viewers.
   }
   %command that builds /OC entry from open layer stack
-  \cs_new_nopar:Nn\ocgxii_make_oc_entry:{
+  \cs_new_protected_nopar:Nn\ocgxii_make_oc_entry:{
     \group_begin:
     \tl_gclear:N\g_ocgxii_oc_entry_tl
     \tl_clear:N\l_tempa_tl
@@ -712,7 +735,7 @@
     }
   }
 
-  \cs_new_protected:Nn\ocgxii_commalist_process:n{
+  \cs_new_protected_nopar:Nn\ocgxii_commalist_process:n{
     \seq_set_split:Nnn\l_tmpa_seq{,}{#1}
     \ocgxii_ocglist_build:Nn\l_ocgxii_e_list_tl{\seq_item:Nn\l_tmpa_seq{1}}
     \ocgxii_ocglist_build:Nn\l_ocgxii_x_list_tl{\seq_item:Nn\l_tmpa_seq{2}}
@@ -1124,7 +1147,7 @@
   %we'll be using the downscaled space character (32) from the pzdr
   % (dingbats) font at the end of every ocgcolorlink in order to prevent
   % empty links from flooding the page with link colour
-  \cs_new_nopar:Npn\ocgxii_tiny_space_char:{
+  \cs_new_protected_nopar:Npn\ocgxii_tiny_space_char:{
     \group_begin: \font\l_tmpa_tl=pzdr~scaled~1\l_tmpa_tl\char32 \group_end:
   }
 
@@ -1183,13 +1206,13 @@
       }
     }
     \bool_if:NT\l_ocgxii_ocgcolorlinks_bool{
-      \cs_gset_nopar:Nn\ocgxii_colourlink_begin:{
+      \cs_gset_protected_nopar:Nn\ocgxii_colourlink_begin:{
         %tiny space char put here in order to neutralise possible transformation
         %matrix modifications from previous \pdfliteral{} (TikZ makes a lot use of it)
         \hbox_overlap_left:n{\ocgxii_tiny_space_char:}
         \pbs_literal:nn{page}{q~7~Tr}
       }
-      \cs_gset_nopar:Nn\ocgxii_colourlink_end:{
+      \cs_gset_protected_nopar:Nn\ocgxii_colourlink_end:{
         %a tiny space char should keep empty link annots from flooding the page
         % with link colour
         \hbox_overlap_left:n{\ocgxii_tiny_space_char:}
@@ -1557,8 +1580,8 @@
 
 \RequirePackage{l3keys2e}
 
-\def\g at ocgxii@date at tl{2021/06/16}
-\def\g at ocgxii@version at tl{0.53}
+\def\g at ocgxii@date at tl{2022/04/01}
+\def\g at ocgxii@version at tl{0.54}
 
 \ProvidesExplPackage{ocgx2}{\g at ocgxii@date at tl}{\g at ocgxii@version at tl}
 {ports `ocgx' functionality to dvips+ps2pdf, xelatex and dvipdfmx}
@@ -1762,6 +1785,8 @@
   \ocgxii_end_ocmd:
 }
 
+\cs_new_protected_nopar:Nn\ocgxii_protected_dummy_cs:n{}
+
 \cs_new_protected_nopar:Nn\ocgxii_begin_ocmd:nn{ % #1: id,
   \bool_if:nTF{                                  % #2: visib. expr. or policy
     \tl_if_blank:oTF{#1}{
@@ -1775,7 +1800,14 @@
   }{
     % new ocmd
     \group_begin:
-      \ocgxii_ocmd_read_visbility:nN{#2}\l_ocgxii_ocmd_visibility_tl
+      \cs_set_eq:NN\AllOn \ocgxii_protected_dummy_cs:n
+      \cs_set_eq:NN\AnyOn \ocgxii_protected_dummy_cs:n
+      \cs_set_eq:NN\AnyOff\ocgxii_protected_dummy_cs:n
+      \cs_set_eq:NN\AllOff\ocgxii_protected_dummy_cs:n
+      \cs_set_eq:NN\Not   \ocgxii_protected_dummy_cs:n
+      \cs_set_eq:NN\And   \ocgxii_protected_dummy_cs:n
+      \cs_set_eq:NN\Or    \ocgxii_protected_dummy_cs:n
+      \ocgxii_ocmd_read_visbility:xN{#2}\l_ocgxii_ocmd_visibility_tl
       \pdf_object_new:xn{g_object_\int_use:N\g_ocgbase_int _pdf}{dict}
       \pdf_object_write:xx{g_object_\int_use:N\g_ocgbase_int _pdf}{
         /Type/OCMD\l_ocgxii_ocmd_visibility_tl
@@ -1786,13 +1818,22 @@
       \int_gincr:N\g_ocgbase_int
       %if only visb. policy is given, generate equivalent visib. expression,
       %needed for stack of open layers and \ocgxii_make_oc_entry: command
-      \ocgxii_ocmd_make_equiv_ve:nN{#2}\l_ocgxii_ocmd_equiv_ve_tl
+      \ocgxii_ocmd_make_equiv_ve:xN{#2}\l_ocgxii_ocmd_equiv_ve_tl
       \tl_gset:co{ocgx2.ocmd.\pdf_object_ref_last:}{\l_ocgxii_ocmd_equiv_ve_tl}
     \group_end:
     \tl_set:Nx\l_ocgxii_cur_ocmd_tl{\pdf_object_ref_last:}
     \tl_if_blank:oF{#1}{
       \tl_gset:cx{ocgxii_ocmd_#1}{\pdf_object_ref_last:}
-      \iow_now:Nn\@mainaux{\ocgxii at newkeynoexp{ocgx2.ocmd.#1}{#2}}
+      \group_begin:
+        \cs_set_eq:NN\AllOn \ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\AnyOn \ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\AnyOff\ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\AllOff\ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\Not   \ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\And   \ocgxii_protected_dummy_cs:n
+        \cs_set_eq:NN\Or    \ocgxii_protected_dummy_cs:n
+        \iow_now:Nx\@mainaux{\exp_not:N\ocgxii at newkeynoexp{ocgx2.ocmd.#1}{#2}}
+      \group_end:
     }
   }
   \ocgbase_open_stack_push:n{\l_ocgxii_cur_ocmd_tl}
@@ -1801,6 +1842,7 @@
   \ocgbase_oc_bdc:n{\l_ocgxii_cur_ocmd_tl}
 }
 \cs_generate_variant:Nn\ocgxii_begin_ocmd:nn{on}
+
 \cs_new_protected_nopar:Nn\ocgxii_end_ocmd:{
   \ocgbase_oc_emc:
   \ocgbase_open_stack_pop:N\l_trash_tl
@@ -1815,6 +1857,8 @@
   \tl_clear_new:N#2
   \clist_map_inline:nn{#1}{\ocgxii_omcd_parse_argument:nN{##1}#2}
 }
+\cs_generate_variant:Nn\ocgxii_ocmd_read_visbility:nN{xN}
+
 \cs_new_protected_nopar:Nn\ocgxii_omcd_parse_argument:nN{
   \cs_set_eq:NN\AllOn \ocgxii_vp_check:n
   \cs_set_eq:NN\AnyOn \ocgxii_vp_check:n
@@ -1969,6 +2013,8 @@
   \tl_clear_new:N#2
   \clist_map_inline:nn{#1}{\ocgxii_omcd_convert_vp:nN{##1}#2}
 }
+\cs_generate_variant:Nn\ocgxii_ocmd_make_equiv_ve:nN{xN}
+
 \cs_new_protected_nopar:Nn\ocgxii_omcd_convert_vp:nN{
   \cs_set_eq:NN\AllOn \ocgxii_vp_check:n
   \cs_set_eq:NN\AnyOn \ocgxii_vp_check:n
@@ -2052,7 +2098,7 @@
   latter~may~be~used~as~fallback~by~non-conforming~PDF~viewers.
 }
 %command that builds /OC entry from open layer stack
-\cs_new_nopar:Nn\ocgxii_make_oc_entry:{
+\cs_new_protected_nopar:Nn\ocgxii_make_oc_entry:{
   \group_begin:
   \tl_gclear:N\g_ocgxii_oc_entry_tl
   \tl_clear:N\l_tempa_tl
@@ -2226,7 +2272,7 @@
   }
 }
 
-\cs_new_protected:Nn\ocgxii_commalist_process:n{
+\cs_new_protected_nopar:Nn\ocgxii_commalist_process:n{
   \seq_set_split:Nnn\l_tmpa_seq{,}{#1}
   \ocgxii_ocglist_build:Nn\l_ocgxii_e_list_tl{\seq_item:Nn\l_tmpa_seq{1}}
   \ocgxii_ocglist_build:Nn\l_ocgxii_x_list_tl{\seq_item:Nn\l_tmpa_seq{2}}
@@ -2617,7 +2663,7 @@
 
 % we'll be using the downscaled space character (32) from the pzdr
 % (dingbats) font at the start and at the end of every ocgcolorlink
-\cs_new_nopar:Npn\ocgxii_tiny_space_char:{
+\cs_new_protected_nopar:Npn\ocgxii_tiny_space_char:{
   \group_begin: \font\l_tmpa_tl=pzdr~scaled~1\l_tmpa_tl\char32 \group_end:
 }
 



More information about the tex-live-commits mailing list.