Open main menu

Changes

4,877 bytes added ,  20:26, 25 September 2020
Created page with "Documentation for \writebetweenlist"
<cd:commandgroup name="writebetweenlist" xmlns:cd="http://wiki.contextgarden.net/commanddoc/20200807">
<cd:shortdesc>The command <tt>\writebetweenlist</tt> is used for putting some non-item in a list.
</cd:shortdesc>
<cd:variants>
<cd:command category="structure" file="strc-lst.mkvi" interfacedate="2020-07-14T09:24" interfacefile="i-list.xml" level="document" name="writebetweenlist" variantnumber="1">
<cd:arguments>
<cd:keywords ordinal="1">
<cd:keywordsdoc></cd:keywordsdoc>
<cd:constant type="cd:list"></cd:constant>
</cd:keywords>
<cd:assignments list="yes" optional="yes" ordinal="2">
<cd:assignmentsdoc></cd:assignmentsdoc>
<cd:inherit name="setuplist"></cd:inherit>
</cd:assignments>
<cd:keywords delimiters="braces" ordinal="3">
<cd:keywordsdoc></cd:keywordsdoc>
<cd:constant type="cd:command"></cd:constant>
</cd:keywords>
</cd:arguments>
</cd:command>
</cd:variants>
<cd:description>Insert something in that is not a list element in the middle of a list. Most often a command such as {{cmd|hrule}}, or a header.
</cd:description>
<cd:examples><cd:example title=""><context source="yes">
\setuppapersize[A7,landscape]
\definelist[Reprints][criterium=all]

\starttext
\completelist[Reprints]
\writetolist[Reprints]{1.}{List entry A}
\writebetweenlist[Reprints][location=here]{\hrule}
\writetolist[Reprints]{2.}{List entry B}
%\writetolist[Reprints]{3.}{List entry C}
\stoptext
</context></cd:example><cd:example title="">According to http://archive.contextgarden.net/message/20101213.221208.577b0e51.en.html <code>\writebetweenlist</code> has multiple usage and these are conflicting:

* in order to get the right page info associated it needs to be anchored in the text stream
* in that case a node can interfere with spacing and can come unexpected
* sometimes direct flushing is needed, sometimes delayed

An option has been added to (1) the flushers and (2) the list placers. (as december 14, 2010).

Regular list entries are bound to a specific location in order to
get the right pagenumber etc. associated. When pushing something
inbetween (in mkiv) it ends up directly in the list. This is the
default because otherwise users will wonder why spacing might get
messed up (due to an unseen but present node). It is possible to
force a location by explicitly setting <code>location</code> to <code>here</code>.

Another way to force a certain order is to set the <code>order</code>
variable when placing a list. The <code>command</code> option only
pushes commands into the right order, and <code>all</code> orders all
entries (which might be too much). In this case no specific
location is needed with the inbetween method.

The following example shows this:

<context source="yes">
\definepapersize[scroll][width=12cm, height=20cm]
\setuppapersize[scroll]

\definelist[testlist][criterium=all]

\starttext

\subject{normal}
(Ordering all entries, whether created with \tex{writetolist} or \tex{writebetweenlist})
\placelist[testlist]

\subject{command}
(Ordering the \tex{writebetweenlist} items, retaining the order of the entries)
\placelist[testlist][order=command]

\subject{all}
(Placing all entries in order of appearance)
\placelist[testlist][order=all]

% --- and now we put write the entries to the list ---

\writetolist [testlist] {1}
{1/3 -- 1/6 -- (location=here)}

\writebetweenlist[testlist]{
\framed[width=\hsize, frame=off,
background=color, backgroundcolor=red,
align=flushleft]
{\blackrule[width=2.5em, height=0em]
1/3 -- 2/6 -- (location=...)}}

\writebetweenlist[testlist][location=here]{
\framed[width=\hsize, frame=off,
background=color, backgroundcolor=cyan,
align=flushleft]
{\blackrule[width=2.5em, height=0em]
2/3 -- 3/6 -- location=here}}

\writetolist [testlist] {2}
{2/3 -- 4/6 -- (location=here)}

\writetolist [testlist][location=none]{W}
{3/3 -- 5/6 -- location=none}

\writebetweenlist[testlist]{
\framed[width=\hsize, frame=off,
background=color, backgroundcolor=yellow,
align=flushleft]
{\blackrule[width=2.5em, height=0em]
3/3 -- 6/6 -- (location=...)}}

\stoptext
</context>
</cd:example></cd:examples>
<cd:notes></cd:notes>
<cd:seealso>
<cd:commandref name="definelist" originator="system"></cd:commandref>
<cd:commandref name="setuplist" originator="system"></cd:commandref>
<cd:source file="strc-lst.mkvi" originator="system"></cd:source>
<cd:wikipage originator="system" page="Category:Structure"></cd:wikipage>
<cd:commandref name="writetolist">to write a regular item to a list</cd:commandref></cd:seealso>
</cd:commandgroup>