`%format pref a = "pref"a` without space in --newcode
Opened this issue · 2 comments
lhs2TeX is a joy to use, as always, but I'm currently struggling with the following macro:
%if style == newcode
%format (hat (a)) = "__hat" a
%else
%format (hat(a)) = "\widehat{" a "}"
I'm intentionally using hat
on identifiers and would have hoped that my newcode
definition above makes it so that hat d
is emitted as __hatd
. Alas, it's actually __hat d
. Can I convince lhs2TeX not to emit two separate tokens, or omit the space after "__hat"?
This is somewhat related to #46 and #38, where a quote
macro is suggested, which also introduces an additional space. (I'm wondering why that is accepted by the GHC lexer or if I'm doing something wrong.)
Perhaps this is a bug, as %format suff a = a "__suff"
/%format (hat (a)) = a "__hat"
works.
I have to look at the code again, but I think the problem is the way the lexer assigns spaces to the contents of the variable. The space is part of the expansion of a
, not part of the macro itself. I believe the workaround is to write hat(d)
instead of hat d
at the call site.