LATEX-L Archives

Mailing list for the LaTeX3 project


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
Morten Høgholm <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Fri, 12 Sep 2008 13:49:41 +0200
text/plain (33 lines)
On Tue, 09 Sep 2008 18:04:48 +0200, Mittelbach, Frank wrote:

> my take is that the recent addition of \def:NNn and firends was already  
> a mistake and should be reverted. These functions provide something  
> which at the expl3 level isn't really needed. What is gained from having  
> the alternative between
> \def:Npn #1#2#3 {...}
> and
> \def:NNn 3 {...}
> the former is much more general (and on expl3 level that generality is  
> sometimes needed), I would claim it is easier to read as the # signs  
> stand out better than a simple "3".

The primary reason these were added was for template, xparse, l3messages  
(I think) and others definining functions with a #1#2#3... preamble but  
where the number of arguments is either specified directly as a number  
(template) or calculated (xparse). template used \newcommand internally  
while xparse built its parameter specification manually.

I always saw the p specifier somehow connected to w. The mapping certainly  
goes one way: If you need a function with w specifier, then a primitive  
TeX parameter specification is called for. The other way can be argued. In  
most cases however, what you want is a specific number of arguments and I  
was trying to work in that direction. Also, this was a way to provide for  
a better (well, at least different) error message than what TeX states.