## LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

 Options: Use Forum View Use Monospaced Font Show Text Part by Default Show All Mail Headers Message: [<< First] [< Prev] [Next >] [Last >>] Topic: [<< First] [< Prev] [Next >] [Last >>] Author: [<< First] [< Prev] [Next >] [Last >>]

```On 19/09/2011 08:14, Kevin Godby wrote:
> I'm inclined to agree with Philipp.  Skimming through the existing
> LaTeX 2e packages, it looks like a lot of \newlength lines are
> followed immediately by setting a default value.  In some cases,
> commands are provided to modify the length and in other cases, the
> document author is expected to \setlength them in their preamble.
> Most of the cases that I spot-checked were non-constant values.

As Frank has commented, this is very much how LaTeX2e works but not
necessarily what we'd expect to be dominant for LaTeX3.

> I'm not sure what the LaTeX 3 plans are for the keyval stuff is,
> though.  How would you handle this situation using the LaTeX 3 coding
> style?

For design-level stuff, the template system should be taking a lot of
the work on, while for more flexible stuff there is l3keys. Both are
keyval-based, and separate out 'define' and 'set' stages.

> On the topic of constants:  Aside from the c_ prefix indicating to the
> reader/author that the value is to be constant, is there anything that
> prevents one from changing the value?  How much overhead would it be
> to have the LaTeX 3 macros check for the c_ prefix and throw an error
> if you try to modify the value?

Currently, we don't check this, and the overhead would be I think too
big for production code. I'm hoping we can go down the route of a set of
'debug' DocStrip guards to generate a slow-but-checking version of
LaTeX3 for testing purposes. Something of this idea is seen in the