Changes

Jump to navigation Jump to search
5,514 bytes added ,  13:17, 9 August 2020
m
Text replacement - "</cmd>" to "}}"
< [[Structurals]]
 
= Overview of commands =
</texcode>
The <{{cmd>|startitemize</cmd> }} command takes optional parameters (see the documentation of <{{cmd>|startitemgroup</cmd> }} for a complete list), for example a number conversion may be given, with the following predefined types:
<table>
</table>
It is also possible to define your own number conversions; see [[User-Defined Enumerations]]. If you have loaded the [[Chinese Japanese and Korean|Chinese]] module, you can also use <tt>c</tt> (and some more) for Chinese numbers. When the selected language is Slovenian or Spanish, items are numbered using their proper alphabets (the Slovenian enumeration includes č, š and ž; the Spanish enumeration includes ñ). You can change to the international enumeration with <code>alphabetic</code>, <code>Alphabetic</code>.
Additional parameters include
* <tt>continue</tt> (start where the previous itemization was finished, to allow text injections),
* <tt>reverse</tt> (numbers the items in reverse, i.e. descending, order),
* <tt>packed</tt> (less vertical space between items),
* <tt>inmargin</tt> (place enumeration symbols into the margin), and
== \setupitemize ==
To change the general layout of enumerations, there is <{{cmd>|setupitemize</cmd>}}. It accepts an integer as its first parameter to denote for which level of itemization the subsequent settings should apply.
You will find more about <{{cmd>|setupitemize</}} at {{cmd> at <|setupitemgroup}} and {{cmd>|defineitemgroup</cmd>}}.
== \defineitemgroup ==
For finer control, it is advisable to create new types of itemization, using the command <{{cmd>|defineitemgroup</cmd> (which unfortunately seems undocumented)}}. For example:
{|
= Customization details and examples =
==LabelsManual labels==
{|
* <tt>margin</tt> is from left margin to start of item text
* <tt>stopper</tt> is the dot (or whatever) after the "number"
|-
|<context>
\starttext
\startitemize[R,fit][itemalign=flushright,stopper={ --- }]
\dorecurse{5}{\item blablabla}
\stopitemize
\stoptext
</context>
|<texcode>
\startitemize[R,fit][itemalign=flushright,stopper={ --- }]
\dorecurse{5}{\item blablabla}
\stopitemize
</texcode>
|-
|<context>
\starttext
\startitemize[n,packed][start=42,stopper={\space}]
\dorecurse{3}{\item Lorem ipsum}
\stopitemize
\stoptext
</context>
|
You can tell ConTeXt to begin item numbering at given offset [http://thread.gmane.org/gmane.comp.tex.context/61728/focus=61729]:
<texcode>
\startitemize[n,fit][start=42,stopper={\space}]
\dorecurse{3}{\item Lorem ipsum}
\stopitemize
</texcode>
|-
|<context>
\starttext
\startitemize[a,packed]
\item bar
\sym{1.} foo
\sym{2.} bar
\sym{3.} foo
\sym{5.} bar
\sym{8.} foo
\sym{13.} bar
\item foo
\stopitemize
\stoptext
</context>
|Irregular item types can be inserted via {{cmd|sym}}: <tt>\sym{#1}</tt> [http://article.gmane.org/gmane.comp.tex.context/61731]:
<texcode>
\startitemize[a]
\item bar
\sym{1.} foo
\sym{2.} bar
\sym{3.} foo
\sym{5.} bar
\sym{8.} foo
\sym{13.} bar
\item foo
\stopitemize
</texcode>
Note that the original (alphabetically enumerated) order is not affected by
these insertions: it continues after the last one as if they didn't exist.
|}
== Expanded subnumbers ==
 
To specify that item numbers should also be leading numbers in any subitemizations, use the {{code|repeat}} keyword.
 
<context source=yes>
% Indentation is a bit odd; cannot reproduce off-wiki.
\setupitemgroup[itemize][1][n,repeat]
\setupitemgroup[itemize][2][a,repeat]
\setupitemgroup[itemize][3][n]
 
This is our item list:
 
\startitemize
\item ... % 1
\startitemize
\item ... % 1.a
\startitemize
\item ... % 1.a.1
\stopitemize
\item ... % 1.b
\startitemize
\item ... % 1.b.1
\item ... % 1.b.2
\stopitemize
\stopitemize
\item ... % 1
\stopitemize
</context>
 
To add change the separator mark, you have to setup the {{code|numberseparatorset}} key of the {{code|itemgroup:itemize}} counter. This example removes the separator mark entirely.
 
<context source=yes mode=mkiv>
\setupitemgroup[itemize][1][n,repeat][width=1em]
\setupitemgroup[itemize][2][a,repeat][width=2em]
\setupitemgroup[itemize][3][n] [width=3em]
 
\defineseparatorset[none][][]
 
\setupcounter[itemgroup:itemize][numberseparatorset=none]
\startitemize
\item ... % 1
\startitemize
\item ... % 1a
\startitemize
\item ... % 1a1
\stopitemize
\stopitemize
\stopitemize
</context>
== Spacing Vertical spacing ==
This is the way how you can set spacing before and after itemize when working with
\definesymbol[1][$\triangleright$]
\startcolumns
{\bf joinedup:} \par before \startitemize[joinedup] \item test \item test \stopitemize after \par{\bf nowhite:} \par before \startitemize[nowhite] \item test \item test \stopitemize after \par{\bf joinedup,nowhite:} \par before \startitemize[joinedup,nowhite] \item test \item test \stopitemize after \column{\bf joinedup,nowhite,before:} \par before \startitemize[joinedup,nowhite,before] \item test \item test \stopitemize after \par{\bf joinedup,nowhite,after:} \par before \startitemize[joinedup,nowhite,after] \item test \item test \stopitemize after
\stopcolumns
</context>
 
 
 
It is also (at least in mkiv) possible to do
<texcode>
Text before
\startitemize[before={\blank[small]},after={\blank[small]},inbetween={\blank[medium]}]
\item test
\item test
\stopitemize
Text after
</texcode>
to control the vertical space.
 
 
 
To prevent an unwanted pagebreak before the list, there is an <tt>intro</tt> parameter :
<texcode>
The following list is on the same page as this paragraph :
\startitemize[intro]
\startitem foo \stopitem
\startitem bar \stopitem
\stopitemize
</texcode>
 
==Horizontal spacing==
{|
! width="45%"|
! width="10%"|
! width="45%"|
|-
|To control the space between the item symbol (bullet) and the item text
 
you can use eather the broad option
<texcode>
\startitemize[n*broad] %replace n with a number (e.g "3").
\item Test
\stopitemize
</texcode>
or you can use absolute values (for fine tuning):
<texcode>
\startitemize[width=1em,distance=0pt]
\item Test
\stopitemize
</texcode>
|
|<context>
\startitemize[width=1em,distance=0pt]
\item Using width=1em,distance=0pt
\stopitemize\setuplayout[scale=0.8,width=9cm]
\startitemize
\item {\bf Default} (no arguments)
\stopitemize
 
\startitemize[1*broad]
\item Using 1*broad
\stopitemize
\startitemize[3*broad]
\item Using 2*broad
\stopitemize
</context>
|}
==Multicolumn==
\item one
\item two
\stopitemize
 
And the text continues after the list
 
\stoptext
 
</context>
|}
 
From a discussion on the mailing list, the following was suggested (note that you have to enclose your items in {{cmd|startitem}} and {{cmd|stopitem}}, using {{cmd|item}} only does not work):
 
{|
! width="35%"|
! width="5%"|
! width="60%"|
|-
| <texcode>
\starttext
 
Some previous sentence before the list
 
\startitemize[a,horizontal,three]
\startitem first \stopitem
\startitem second \stopitem
\startitem third \stopitem
\startitem fourth \stopitem
\startitem fifth \stopitem
\startitem sixth \stopitem
\stopitemize
 
And the text continues after the list
 
\stoptext
</texcode>
|
|<context>
\starttext
 
Some previous sentence before the list
 
\startitemize[a,horizontal,two]
\startitem first \stopitem
\startitem second \stopitem
\startitem third \stopitem
\startitem fourth \stopitem
\stopitemize
== Randomizing items ==
It is possible to make ConTeXt randomize the items in enumerations; this can come handy when, e.g., typesetting tests. You have to add a <tt>random</tt> option to <{{cmd>|startitemize</cmd>}}. There are two caveats:# You have to say <{{cmd>|startitem</cmd> }} ... <{{cmd>|stopitem</cmd> }} instead of <{{cmd>|item</cmd> }} ... .# Somehow the first item does not get randomized. (I learned from the mailing list - thanks, Aditya! - that adding a <{{cmd>|nextrandom</cmd> }} somewhere earlier helps.)
Example:
</context>
|}
 
=Further Reading=
 
* [[User-Defined Enumerations]]: Defining a new numbering scheme.
* [[Command/startitemize]]
* The source: {{src|strc-itm.mkvi}}
* [[Description]] (definition lists)
 
[[Category:Basics]]

Navigation menu