Hello, Achim Gratz <strom...@nexgo.de> writes:
> Am 27.03.2013 17:26, schrieb Nicolas Goaziou: >> I think all newline characters should be replaced with a whitespace >> character in macro arguments. Indeed, macro templates are only one line >> long but unwanted "\n" could be inserted by paragraph filling in >> arguments. > > I'm not sure about that, it would mean that there'd need to be > additional syntax to insert linebreaks. My point is that macro templates have to fit in a single line, no newline character allowed. As a consequence, macro arguments are implicitly expected to fit in a single line. So a newline character in an argument is probably wrong. >> I also don't mind trimming arguments again, provided this is added as an >> explicit behaviour and there is no opposition to it. > > How about making trimming explicit during the expansion of macro > arguments? It seems that there are a few possibilities of what > trimming could mean, so this would be an opportunity to allow them all > (n is the argument number): > > $:n - remove whitespace and linebreaks before argument > $.n - remove whitespace and linebreaks after argument > $n - same as $:.n > $+n - replace whitespace and linebreaks inside arguments > with a single space > $*n - same as $:+.n > $~n - literal argument (no trimming) The current trend for macros is to be really simple so that advanced (and not-so advanced) tasks are done with Babel instead. IOW, macros are only useful if they are simpler than the simplest form of Babel usage. In every other case, Babel is a superior choice. Your suggestion is interesting, but I think it would go backwards wrt this. Regards, -- Nicolas Goaziou