]> git.lyx.org Git - lyx.git/blob - lib/layouts/enumitem.module
new module and example file for chemical risk and safety statements; requires the...
[lyx.git] / lib / layouts / enumitem.module
1 #\DeclareLyXModule[enumitem.sty]{Customisable Lists (enumitem)}
2 #DescriptionBegin
3 # Controls the layout of enumerate, itemize, description, and list/labeling.
4 # See section "Customized Lists" of the User's Guide for a detailed description.
5 #DescriptionEnd
6 # Author: Günter Milde <milde@users.berlios.de>
7
8 # 2008-12-04 first published version.
9 # 2009-02-02 use name Labeling for "LyX-List/Labeling" list type,
10 #            copy standard layout verbatim for failsave working with 
11 #            both KOMA and non-KOMA document classes.
12 # 2011-01-12 bugfix: set elabeling label font to \normalfont.
13
14 Format 35
15
16 # The package enumitem provides user control over the layout of the three
17 # basic list environments: enumerate, itemize and description. It supersedes
18 # both enumerate and mdwlist (providing well-structured replacements for all
19 # their funtionality), and in addition provides functions to compute the
20 # layout of labels, and to ‘clone’ the standard environments, to create new
21 # environments with counters of their own.
22 #
23 # - fancy labels and fancy refs,
24 # - leftmargin, labelsep and labelwidth automatically set,
25 # - changes applied globally or only in one of the three
26 #   types or even in a single list (including topsep),
27 # - several description styles (which fix some bad spacing, too),
28 # - starting value and counter resuming,
29 # - trivlists properly formatted,
30 # - control on page breaking
31 #
32 # Styling the basic lists is possible 
33 #
34 # a) generally in the LaTeX preamble and 
35 # b) per environment with optional arguments
36 #
37 # See enumitem.pdf_ for details and examples.
38 #
39 # TODO: since version 2.0, enumitem supports "cloning" of lists.
40 #       Producing a labeling as clone of a description allows
41 #       Preamble-Styling specific to this list type.
42
43 AddToPreamble
44         \usepackage{enumitem}           % customizable list environments
45         \newlength{\lyxlabelwidth}      % auxiliary length 
46 EndPreamble
47
48
49 # Customisable Basic Lists
50 # ------------------------
51
52 # With enumitem, the three standard list environments take an optional
53 # argument. See enumitem.pdf_ for possible values.
54
55 IfStyle Itemize
56         OptionalArgs          1
57 End
58
59 IfStyle Enumerate
60         OptionalArgs          1
61 End
62
63 IfStyle Description
64         OptionalArgs          1
65 End
66
67
68 # Customisable LyX List
69 # ---------------------
70
71 Input stdlyxlist.inc
72
73 Style Labeling
74         LatexName             elabeling
75         # FIXME This should probably be defined using \newlist instead
76         Preamble
77         % labeling-like list based on enumitem's description list with
78         % mandatory second argument (label-pattern):
79                 \newenvironment{elabeling}[2][]%
80                 {\settowidth{\lyxlabelwidth}{#2}
81                         \begin{description}[font=\normalfont,style=sameline,
82                                 leftmargin=\lyxlabelwidth,#1]}
83                 {\end{description}}
84         EndPreamble
85 End
86
87
88 # List Variants
89 # -------------
90 #
91 # Styles with pre-defined optional arguments for ease of use
92
93 Style Enumerate-Resume
94         CopyStyle             Enumerate
95         LatexParam            [resume]
96         OptionalArgs          0
97         # a blue label to indicate that this is not a WYSIWYG label
98         # because the numbering differs in the output
99         LabelFont
100           Color blue
101         EndFont
102 End
103
104 # References
105 # ----------
106 #
107 # .. _enumitem.pdf:
108 #    http://dante.ctan.org/CTAN/macros/latex/contrib/enumitem/enumitem.pdf
109