diff options
Diffstat (limited to 'macros/luatex/optex/base/outlines.opm')
-rw-r--r-- | macros/luatex/optex/base/outlines.opm | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/macros/luatex/optex/base/outlines.opm b/macros/luatex/optex/base/outlines.opm index 2f9a040881..d1082f9580 100644 --- a/macros/luatex/optex/base/outlines.opm +++ b/macros/luatex/optex/base/outlines.opm @@ -1,4 +1,4 @@ -%% This is part of OpTeX project, see http://petr.olsak.net/optex +%% This is part of the OpTeX project, see http://petr.olsak.net/optex \_codedecl \outlines {PDF outlines <2020-03-12>} % preloaded in format @@ -12,7 +12,7 @@ {\_let\_tocline=\_outlinesA \_count0=0 \_count1=0 \_count2=0 \_count3=0 \_toclist % calculate numbers o childs \_def\_outlinelevel{#1}\_let\_tocline=\_outlinesB - \_tocrefnum=0 \_count0=0 \_count1=0 \_count2=0 \_count3=0 + \_tocrefnum=0 \_count0=0 \_count1=0 \_count2=0 \_count3=0 \_toclist}% create outlines \_fi } @@ -61,38 +61,38 @@ outlines. But we know only the level of each outline. The required data should be calculated from TOC data. We use two steps over TOC data saved in the `\_toclist` where each record is represented by one `\_tocline`. -First step, the \`\outlines` macro sets `\_tocline` to \`\_outlinesA` and -calculates the number of direct descendants of each record. Second step, -the `\outlines` macro sets `\_tocline` to \`\_outlinesB` and it uses prepared -data and create outlines. +The first step, the \`\outlines` macro sets `\_tocline` to \`\_outlinesA` and +calculates the number of direct descendants of each record. The second step, +the `\outlines` macro sets `\_tocline` to \`\_outlinesB` and it uses prepared +data and creates outlines. -Each ouline is mapped to the control sequence of the type +Each outline is mapped to the control sequence of the type `\_ol:<num>` or `\_ol:<num>:<num>` or `\_ol:<num>:<num>:<num>` or etc. -The first one is reserved for level 0, the second one for level 1 (chapters), third -one for level 2 (sections) etc. The number of direct descentants will be stored -in these macros after first step is finished. Each new outline of given level -increases the `<num>` at given level. When the first step is processed then -(above that) the `\_ol:..` sequence of the parent inceases its value too. The +The first one is reserved for level 0, the second one for level 1 (chapters), the third +one for level 2 (sections) etc. The number of direct descendants will be stored +in these macros after the first step is finished. Each new outline of a given level +increases the `<num>` at the given level. When the first step is processed then +(above that) the `\_ol:..` sequence of the parent increases its value too. The `_ol:...` sequences are implemented by `\_ol:\_count0:\_count1:\count2` etc. For example, when section (level 2) is processed in the first step then we do: \begtt - \advance \count2 by 1 - % increases the mapping pointer of the type - % \_ol:<\_count0:\_count1:\_count2> of this section - \advance \<_ol:\_count0:\_count1> by 1 - % increases the number of descendants connected + \advance \count2 by 1 + % increases the mapping pointer of the type + % \_ol:\_count0:\_count1:\_count2 of this section + \advance \_ol:\_count0:\_count1 by 1 + % increases the number of descendants connected % to the parent of this section. \endtt -When second step is processed, then we only read the stored data about the -number of descentants. Ad we use it in `count` parameter of `\_pdfoutline` +When the second step is processed, then we only read the stored data about the +number of descendants. And we use it in `count` parameter of `\_pdfoutline` primitive. -For linking, we use the same links as in TOC, i.e. the `toc:\_the\_tocrefnum` +For linking, we use the same links as in TOC, i.e. the `toc:\_the\_tocrefnum` labels are used. \`\insertoutline` `{<text>}` inserts one outline with zero direct descendants. -It creates link destination of the type `oul:<num>` into the document +It creates a link destination of the type `oul:<num>` into the document (where \^`\insertoutline` is used) and the link itself is created too in the outline. |