Print

Print


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