[latex3-commits] [git/LaTeX3-latex3-pdfresources] master: more notes about outlines (7d3600d)

Ulrike Fischer fischer at troubleshooting-tex.de
Fri Mar 27 00:20:29 CET 2020


Repository : https://github.com/latex3/pdfresources
On branch  : master
Link       : https://github.com/latex3/pdfresources/commit/7d3600d153994838f6969603a7bb045c955ef483

>---------------------------------------------------------------

commit 7d3600d153994838f6969603a7bb045c955ef483
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date:   Fri Mar 27 00:20:29 2020 +0100

    more notes about outlines


>---------------------------------------------------------------

7d3600d153994838f6969603a7bb045c955ef483
 newpackages/outline-syntax.tex | 99 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 86 insertions(+), 13 deletions(-)

diff --git a/newpackages/outline-syntax.tex b/newpackages/outline-syntax.tex
index bcfce6d..f8f19e4 100644
--- a/newpackages/outline-syntax.tex
+++ b/newpackages/outline-syntax.tex
@@ -1,10 +1,40 @@
-dvipdfmx /Count is created automatically, so mainly the actions and options must be handled.
-\bookmarks writes out the needed \special directly. 
-
- \special{pdf:%
+ p: \pdfoutline\BKM at attr\BKM at action
+                count\ifBKM at DO@open\else-\fi\BKM at x@childs
+                {\BKM at DO@title}%
+                
+   \BKM at attr: attr{/F \BKM at DO@flags /C[\BKM at DO@color]}              
+
+d:  \BKM at write{[}%
+    \BKM at write{/Title(\BKM at DO@title)}%
+    \ifnum\BKM at x@childs>\z@
+      \BKM at write{/Count \ifBKM at DO@open\else-\fi\BKM at x@childs}%
+    \fi
+    \ifx\BKM at attr\@empty
+    \else
+      \BKM at write{\BKM at attr}%
+    \fi
+    \BKM at write{\BKM at action}%
+    \BKM at write{/OUT pdfmark}%
+    
+  \BKM at attr: /F \BKM at DO@flags /C[\BKM at DO@color]
+    
+e.g. 
+[ /Title(\376\377\000f\000i\000r\000s\000t\000p\000a\000g\000e)
+/C[1 0 0]
+/Action<</Subtype/Named/N/FirstPage>>
+/OUT pdfmark 
+
+[
+/Title(\376\377\000a\000b\000c)
+/Count -3
+/Action/GoTo/Dest(section.1)cvn
+/OUT pdfmark
+
+   
+ x: \special{pdf:%
         out
         [] OR [-] %depending is open or not
-        \BKM at abslevel %current level. Must be equal or one off to previous level
+        \BKM at abslevel %current level. Must be equal or if larger one off to previous level
         <<
          /Title(\BKM at title)%
 
@@ -13,17 +43,59 @@ dvipdfmx /Count is created automatically, so mainly the actions and options must
          /F \BKM at FLAGS  % flags, optional
 
          \BKM at action    % action.
-            -> {/Dest[@page\BKM at page/\BKM at view]}
-            -> /D[\BKM at page/\BKM at view]
-            -> /D(\BKM at dest)
-            -> /A<</S/URI /URI(\BKM at uri) >>
-            -> /A<<\BKM at rawaction>>
-            -> /A<</S/Named/N/\BKM at named>>%
-            -> /A<</S/GoTo /D(\BKM at dest)>>%
-            -> /A<</S/GoToR/F(\BKM at gotor)\BKM at action >>%            
         >>%
       }%
 
+[
+/Title(\376\377\000a\000b\000c)
+/Action/GoTo/Dest(subsection.1.1)cvn
+/OUT pdfmark
+
+
+p: goto page1{/Fit}
+d: /Action/GoTo/Page 1 /View[/Fit]%
+x: /Dest[@page1/Fit]
+
+p: goto page\BKM at DO@page{/\BKM at DO@view} 
+d: /Action/GoTo/Page \BKM at DO@page/View[/\BKM at DO@view]
+x: /Dest[@page\BKM at page/\BKM at view]
+
+uri:
+p: user{<</S/URI/URI(\BKM at DO@uri)>>}
+d: /Action<</Subtype/URI/URI(\BKM at DO@uri)>>%
+x:  /A<</S/URI/URI(\BKM at uri)>>%
+
+rawaction (should not be used, as clearly driver dependant
+p:  user{<<\BKM at DO@rawaction>>}%
+d:  /Action<<\BKM at DO@rawaction>>
+x: /A<<\BKM at rawaction>>
+
+Named
+p: user{<</S/Named/N/\BKM at DO@named>>}
+d: /Action<</Subtype/Named/N/\BKM at DO@named>>%
+x: /A<</S/Named/N/\BKM at named>>%
+
+p: \BKM at DefGotoNameAction\BKM at action\BKM at DO@dest ?
+d: /Action/GoTo /Dest(\BKM at DO@dest)cvn%
+x: /A<< /S/GoTo/D(\BKM at dest) >>%
+
+for gotor:
+p: /D[\BKM at DO@page/\BKM at DO@view]
+d: /Page \BKM at DO@page /View[/\BKM at DO@view]%
+x: {/D[\BKM at page/\BKM at view]}
+
+p: /D(\BKM at DO@dest)
+d: /Dest(\BKM at DO@dest)cvn%
+x: /D(\BKM at dest)
+
+gotor
+p: user{ <</S/GoToR/F(\BKM at DO@gotor)\BKM at action>>%
+d: /Action/GoToR/File(\BKM at DO@gotor)\BKM at action
+x: /A<</S/GoToR/F(\BKM at gotor)\BKM at action>>%
+ 
+dvipdfmx /Count is created automatically, so mainly the actions and options must be handled.
+\bookmarks writes out the needed \special directly.
+
 dvips writes out at the end a header file, jobname.out.ps, which is referenced with \special{header=#1}%
   count must done by the document, so every \bookmark creates a BKM@<id> command which stores {parent,level,count}.
   Childs update the count of their parent. Beside this every \bookmark writes the info with the destination (and more) to the aux-file as
@@ -32,6 +104,7 @@ dvips writes out at the end a header file, jobname.out.ps, which is referenced w
 pdflatex,luatex: similar to dvips, only that \BKM at entry uses \pdfoutline directly.
  
     
+    
 Catalog
    /Outlines 56 0 R
              56 0 obj





More information about the latex3-commits mailing list.