LATEX-L Archives

Mailing list for the LaTeX3 project

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 >>]

Print Reply
Subject:
From:
Will Robertson <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Sun, 24 Aug 2014 11:23:25 +0930
Content-Type:
text/plain
Parts/Attachments:
text/plain (43 lines)
On 23 Aug 2014, at 4:49 am, Sean Allred <[log in to unmask]> wrote:

> And I don't mean to advocate that these objects should be able to have
> many (9+) mandatory arguments; I'm far more concerned with the
> homelessness for optional ones.

I think after Frank’s experiments with sectioning, it became apparent that this was a major stumbling block. When a chapter heading can have

1. title
2. toc title
3. header title
4. label
5. unnumbered flag
6. author
7. epigraph


it no longer makes sense to require mandatory arguments. On the other hand I do see Joseph’s point that when you have just one or two actually mandatory arguments that writing the following is a bit ugly:

   \UseInstance{crossref}{latex2e}{ label = #1 }% only one mandatory argument

* * *

A model that I think has worked quite well in the LaTeX world is how BibTeX has a notion of “mandatory” and “optional” fields for bibliography references.

Perhaps we could supplement the current xtemplate interface with a keyval-type-argument (one only per interface, of course), in which the optional/mandatory nature of each keyval item within is specified by the document design (and some may well be always mandatory).

So according to the situation you could have either

    \UseInstance{…}{…}{arg one}{arg two}{arg three}

or

    \UseInstance{…}{…}{ arg-one=… , arg-two=…, arg-three=… }

or even a combination of the two:

    \UseInstance{…}{…}{arg one}{ arg-two=…, arg-three=… }

Any thoughts?

Will

ATOM RSS1 RSS2