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:
Hans Aberg <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Wed, 21 Oct 1998 23:58:24 +0200
Content-Type:
text/plain
Parts/Attachments:
text/plain (64 lines)
In <[log in to unmask]> "William F. Hammond"
<[log in to unmask]> writes:
>%%%%% clip
>\newenvironment{citations}{%
>   \list{}{%
>      \renewcommand{\makelabel}[1]{\normalfont\itshape ##1}%
>   }%
>}{%
>   \endlist
>}
>%%%%% clip
>\newcommand{\AmSLaTeX}{$\mathcal A$\lower.4ex\hbox{$\!\mathcal
>                                              M\!$}$\mathcal S$-\LaTeX}
>%%%%% endclips
>
>(I do not see why "citations" could not have been done entirely in
>Lamport LaTeX.  (I am unclear what "list" and "endlist" are.))

At 21:09 +0200 98/10/21, Martin Schroeder wrote:
>
>\newenvironment{foo}{start}{end} defines \foo{start} and \endfoo{end}.
>
>But this is an undocumented feature -- which you can use at your own
>risk. So citations really should be
>
>\newenvironment{citations}{%
>   \begin{list}{}{%
>      \renewcommand{\makelabel}[1]{\normalfont\itshape ##1}%
>      }%
>   }{%
>      \end{list}%
>   }
>
>I think the official policy on compatibilty is something like: if it's
>mentionend in the manual or in /doc, it will be provided. Otherwise it
>might be unavailable or hidden somewhere.

  This is in fact related to the idea of "modules":

  In computer lingo, the implementer of a library (or something) to be used
by others defines an "interface", with specifications of its usage, called
a contract. The user of that feature can only use it according to the
contract, but that is expected to be unchanged between versions.

  So LaTeX defines \begin{list} and \end{list} as a part of the
list-environment interface, but \list and \endlist are part of the
implementation of the list environment. Some languages have special
features in order to prevent users to use the things merely part of the
implementation and not the interface, but TeX does not have any such
features; so LaTeX instead uses "@" defined as a letter in some contexts
and a non-letter to the user.

  So, in order to emphasize that \list and \endlist do not belong to the
interface, these should really have been named \@list or \@endlist: Then
people will know this.

  If developing the concept of "modules", it would be prudent to formalize
the use of such features.

  Hans Aberg
                  * Email: Hans Aberg <mailto:[log in to unmask]>
                  * Home Page: <http://www.matematik.su.se/~haberg/>
                  * AMS member listing: <http://www.ams.org/cml/>

ATOM RSS1 RSS2