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

 Subject: Re: an object type for heading commands From: Frank Mittelbach <[log in to unmask]> Reply To: Mailing list for the LaTeX3 project <[log in to unmask]> Date: Sat, 7 Nov 2009 19:54:07 +0100 Content-Type: text/plain Parts/Attachments: text/plain (118 lines)
Lars

> > Here is my current list of candiates:
> >
> >   - title of the heading
> >   - title version to go in the TOC
> >   - title version to go in the running header
> >   - subtitle of the heading (e.g., an author name, copyright notice ...)
>
> That one feels a bit wobbly. But is your thinking that this kind of
> information is frequently appearing in page heads, and page head
> contents are being set by this kind of command, so there needs to be a
> way to pass the information?

you mean the subtitle? I think this is only of interest to some kind of
headings and then only to A-heads probably, so i'm not sure about that one
really, I just tossed it out for discussion. On the other hand, it seems to me
that for A-heads that is in theory common enough (for example in proceedings)
that I think it should be included even if for most documents it is not
necessarily made available on document.

> >   - motto/quote text to display alongside the heading title

having said the above, one probably doesn't need both "sub-title" and "motto"
as the latter is just another type of sub-title application really.

> >   - flag to number heading
>
> Or should numbered and unnumbered headings be generated by separate
> instances? Needs to be thought about.

both is possible of course, but in my opinion a certain design for a heading
with and without numbers shares so much on the design-level that it seems
reasonable to provide a single template with a flag to say whether or not to
generate a number for the heading.

> One additional item could be an external identifier to use for this
> heading of this document, i.e., the thing that would come after # in an
> URL.

or in general an argument for a "label name" to be used for
cross-referencing. I should have included that, yes.

>
> > do we need a way to specify that something is send to the TOC or to the
> > running header and if so how do we do that?
>
> Isn't that explicit in the above? Or did you rather think about the
> document-level commands here?

I don't think it is explicit unless you overload things. From a document level
perspective a writer might want to say

- do not put a title line into the toc
- do not put a title line into the running header
- not not number this heading

in 2e that was alway bundled together with the * so it was all or nothing but
typically the last one was independent of the other two resulting in the
gymnastics with \addcontentsline near things like a bibliography etc

on the other hand I must confess that I don't see much application for not
putting somehting into the toc (on an individual basis but in the running
header or vice versa). Perhaps others have some experience / examples that
indiciate otherwise?

anyway, starting from a need to be able to specify that on document-level,
that then needs to be conveyed to the template and without some explicit flags
that isn't there. Unless you start overloading the arguments in a way that
\NoValue for a TOC title means use the main title for TOC while an empty TOC
title mean do not use one, or something like that.

> > what else is missing or which of the above aren't sensible in the first place?
>
> One might consider making one argument a keyval dictionary and collect
> many of the above in that instead.

that would be a document level syntax decision, ie how to write a heading
command in your document. That is and should be transparent to the templates
which deal with presentation. Templates are deliberately simple: they only
have madatory arguments (of which some could receive \NoValue and such
things).

> This would provide for instances
> behaving as follows:
>
>    When needing a title for the TOC:
>
>    1. If there is a key "toctitle", then use that value.
>    2. Otherwise, if there is a key "shorttitle", then use that value.
>    3. Otherwise, use the full title.
>
>    When needing a title for the running head:
>
>    1. If there is a key "headtitle", then use that value.
>    2. Otherwise, if there is a key "shorttitle", then use that value.
>    3. Otherwise, use the full title.

that is the kind of semantics that is defined by an object type (aka template
type) only that it operates on a bunch of mandatory arguments and \NoValue
indicating that something is not there.

but it doesn't tell the template when to go for a TOC or generate a running
header. For that I think there are only two possibilities:

- either only do this implicitly, ie TOC entries are always produced by some
logic in the background based on heading level and the like, but without
user intervention from the document

- some support for user intervention through some flag that can be set (of
course a document level command may choose not to offer that flag to in the
document command, so that the ability to tweak would be unavailable

frank