summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3experimental/README.md
blob: fd1dc7c09e74457223f14611c124d8b8382e000c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
Experimental LaTeX3 Concepts
============================

Release 2020-05-18

Overview
--------

The `l3experimental` packages are a collection of experimental implementations
for aspects of the LaTeX3 kernel, dealing with higher-level ideas such as the
Designer Interface. Some of them work as stand alone packages, providing new
functionality, and can be used on top of LaTeX2e with no changes to the
existing kernel. Others go further, and redefine LaTeX2e internals to provide
better methods for managing certain constructs. The packages in the collection
are under active development and the interfaces may change.

All of the material in the collection requires the LaTeX3 base layer package
[`l3kernel`](http://ctan.org/pkg/l3kernel). The two packages must be installed
in matching versions: if you update `l3experimental`, make sure that `l3kernel` is
updated at the same time.

Currently included in the CTAN release of l3experimental are the following
bundles:
* `l3benchmark`
* `l3cctab`
* `l3color`
* `l3draw`
* `l3graphics`
* `l3pdf`
* `l3str`
* `l3sys-shell`
* `xcoffins`
* `xgalley`

`l3benchmark`
-------------

This module provides support for benchmarking the performance of code.

`l3cctab`
---------

This module provides support for saving and restoring category codes
_en masse_ in a table. This is supported for the 8-bit range for all engines,
and for the entire Unicode range with LuaTeX.

`l3color`
---------

This module provides support for setting colors using a range of color models.
It also allows the construction of 'color expressions', in which multiple colors
are mixed together at the macro level. There is also support for spot colors:
the latter is highly experimental.

`l3draw`
--------

This module provides a code-level interface for constructing drawings. The
interfaces are heavily inspired by the `pgf` layer of the widely-used
TikZ system.

`l3graphics`
-------------

This module provides interfaces for the inclusion of graphics files
in documents, similar to the `graphics` package.

`l3pdf`
-------

This module provides support for core PDF concepts such compression, objects,
PDF version and so on.

`l3str`
-------

A 'string' in TeX terms is a token list in which all of the tokens have
category code 12 ('other'), with the exception of spaces which have the
category code 10 ('space'). The `l3strf-format` module provides methods
for formatting such strings.

`l3sys-shell`
-------------

This module provides abstractions for common shell functions, e.g. file
deletion and copying.

`xcoffins`
----------

A _coffin_ is a 'box with handles': a data structure which comprises
both a TeX box and associated information to allow controlled typesetting.
The `xcoffins` package provides a high-level interface for manipulating
coffins. This is supported by the lower-level `l3coffins` package, which
provides the data structure.

`xgalley`
---------

In LaTeX3 terminology a galley is a rectangular area which receives
text and other material filling it from top. The vertically extend of
a galley is normally not restricted: instead certain chunks are taken
off the top of an already partially filled galley to form columns or
similar areas on a page. This process is typically asynchronous but
there are ways to control or change its behaviour. The xgalley module
provides a mechanism for filling galleys and controlling the spacing,
hyphenation and justification within them.

Discussion
----------

Discussion concerning the approach, suggestions for improvements,
changes, additions, _etc._ should be addressed to the list
[LaTeX-L](https://listserv.uni-heidelberg.de/cgi-bin/wa?A0=LATEX-L).

You can subscribe to this list by sending mail to

    listserv@urz.uni-heidelberg.de

with the body containing

    subscribe LATEX-L  <Your-First-Name> <Your-Second-Name>

Issues
------

The issue tracker for LaTeX3 is currently located
[on GitHub](https://github.com/latex3/latex3/issues).

Please report specific issues with LaTeX3 code there; more general
discussion should be directed to the [LaTeX-L list](#Discussion).

The LaTeX3 Project
------------------

Development of LaTeX3 is carried out by
[The LaTeX3 Project](https://www.latex-project.org/latex3/). 

The development team can be contacted
by e-mail: <latex-team@latex-project.org>; for general LaTeX3 discussion
the [LaTeX-L list](#Discussion) should be used.

-----

<p>Copyright (C) 1998-2004,2008-2012,2014-2020 The LaTeX3 Project <br />
<a href="http://latex-project.org/">http://latex-project.org/</a> <br />
All rights reserved.</p>