Denis Maier via ntg-context schrieb am 15.01.2022 um 13:04:
Hi all,
I have sources that look like this:
%%%%%%%%%%%%%%%%%%%%%
<?xml version="1.0" encoding="UTF-8"?>
<article>
<p>Bla Bla Bla</p>
<p>
<underline>
<italic>Bla</italic>
</underline>, Bla Bla.</p>
</article>
%%%%%%%%%%%%%%%%%%%%%
Typesetting this with context gives me a spurious space after the
underlined Bla in italics.
There is no spurious space, the line break is just converted to a space
and I see no reason why this shouldn't happen. To remove space before or
after certain parts of text within a paragraph you can use the
\removeunwantedspace and \ignorespaces commands.
%%%% begin example
\starttexdefinition RemovePreceding #1
\removeunwantedspaces
#1
\stoptexdefinition
\starttexdefinition RemoveFollowing #1
#1
\ignorespaces
\stoptexdefinition
\starttext
Bla \RemovePreceding{Bla} Bla
Bla \RemoveFollowing{Bla} Bla
\stoptext
%%%% end example
When only following spaces are a problem a better alternative to
\ignorespace is \autoinsertnextspace which checks the following token
which ensures there is space when the next character is punctuation.
%%%% begin example
\starttexdefinition Italic #1
\emphasized{#1}
\autoinsertnextspace
\stoptexdefinition
\starttexdefinition Underbar #1
\underbar{#1}
\stoptexdefinition
\starttext
Bla Bla Bla
\Underbar{\Italic{Bla} , Bla Bla.}
\stoptext
%%%% end example
Wolfgang
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________