Difference between revisions of "Command/setregisterentry"

From Wiki
Jump to navigation Jump to search
m (Example 1)
m (Processing on Lua end)
Line 1: Line 1:
 
<cd:commandgroup name="setregisterentry" xmlns:cd="http://wiki.contextgarden.net/commanddoc/20200807">
 
<cd:commandgroup name="setregisterentry" xmlns:cd="http://wiki.contextgarden.net/commanddoc/20200807">
 
<cd:shortdesc><!-- a short command summary goes here -->
 
<cd:shortdesc><!-- a short command summary goes here -->
The command <tt>\setregisterentry</tt> is used for putting the entry to the register. Contrary to <tt>\index</tt> command it allows user to specify sorting keys of up to three levels.
+
The command <tt>\setregisterentry</tt> is used for putting the entry to the register.
 
</cd:shortdesc>
 
</cd:shortdesc>
 
<cd:variants>
 
<cd:variants>
Line 66: Line 66:
 
</cd:variants>
 
</cd:variants>
 
<cd:description><!-- the long description of the command goes here -->
 
<cd:description><!-- the long description of the command goes here -->
 +
<tt>\setregisterentry</tt> is more structured form of the regular <tt>\index</tt> command. With it's more complex and robust structure it is suitable automatic workflows.
 +
 +
When processing the command on Lua end, one has to take care of colons in the <tt>key:1</tt> and <tt>entry:1</tt> paramaters by enclosing them in inside <tt>["..."]</tt>, see example bellow.
 
</cd:description>
 
</cd:description>
<cd:examples><cd:example title="Basic example (3 levels)">\setupregister[index][balance=no]
+
<cd:examples><cd:example title="Three levels, different sorting, comma in the entry"><texcode>
 +
\setupregister[index][balance=no]
  
 
\starttext
 
\starttext
  
 
\chapter{Alfred Hitchcock}
 
\chapter{Alfred Hitchcock}
 
  
 
The Skin Game (1931)    \setregisterentry[index]
 
The Skin Game (1931)    \setregisterentry[index]
Line 97: Line 100:
 
                         keys:3=Rich and Strange,
 
                         keys:3=Rich and Strange,
 
                         entries:3=Rich and Strange]
 
                         entries:3=Rich and Strange]
 
  
 
Number Seventeen (1932) \setregisterentry[index]
 
Number Seventeen (1932) \setregisterentry[index]
Line 110: Line 112:
 
\blank
 
\blank
  
\placeregister[index]   % without title
+
\placeregister[index]   % without title
  
 
\stoptext
 
\stoptext
</cd:example></cd:examples>
+
</texcode>
 +
</cd:example><cd:example title="Processing on Lua end"><texcode>
 +
\startluacode
 +
context.setregisterentry({ "MyIndex" },
 +
    { ["keys:1"]="sorting key", ["entries:1"]="displayed entry"})
 +
\stopluacode
 +
</texcode></cd:example></cd:examples>
 
<cd:notes></cd:notes>
 
<cd:notes></cd:notes>
 
<cd:seealso>
 
<cd:seealso>

Revision as of 14:35, 12 October 2020


\setregisterentry

Summary

The command \setregisterentry is used for putting the entry to the register.

Settings

\setregisterentry[...][...=...,...][...=...,...]
[...]name
labelname
keystext processor->text
entriestext processor->text
keys:1text
keys:2text
keys:3text
entries:1text
entries:2text
entries:3text
alternativetext
keyvalue

Description

\setregisterentry is more structured form of the regular \index command. With it's more complex and robust structure it is suitable automatic workflows.

When processing the command on Lua end, one has to take care of colons in the key:1 and entry:1 paramaters by enclosing them in inside ["..."], see example bellow.

Examples

Three levels, different sorting, comma in the entry

\setupregister[index][balance=no]

\starttext

\chapter{Alfred Hitchcock}

The Skin Game (1931)    \setregisterentry[index]
                        [keys:1=Hitchcock Alfred,
                        entries:1={Hitchcock, Alfred},
                        keys:2=1931,
                        entries:2=1931,
                        keys:3=Skin Game,
                        entries:3={Skin Game, The}]

Mary (1931)             \setregisterentry[index]
                        [keys:1=Hitchcock Alfred,
                        entries:1={Hitchcock, Alfred},
                        keys:2=1931,
                        entries:2=1931,
                        keys:3=Mary,
                        entries:3=Mary]

Rich and Strange (1931)	\setregisterentry[index]
                        [keys:1=Hitchcock Alfred,
                        entries:1={Hitchcock, Alfred},
                        keys:2=1931,
                        entries:2=1931,
                        keys:3=Rich and Strange,
                        entries:3=Rich and Strange]

Number Seventeen (1932) \setregisterentry[index]
                        [keys:1=Hitchcock Alfred,
                        entries:1={Hitchcock, Alfred},
                        keys:2=1932,
                        entries:2=1932,
                        keys:3=Number Seventeen,
                        entries:3=Number Seventeen]


\blank

\placeregister[index]   % without title

\stoptext

Processing on Lua end

\startluacode
context.setregisterentry({ "MyIndex" },
    { ["keys:1"]="sorting key", ["entries:1"]="displayed entry"})
\stopluacode

Notes

See also

Help from ConTeXt-Mailinglist/Forum

All issues with: