Henri Menke mailto:henrimenke@gmail.com 30. Januar 2018 um 21:12 On Tue, 2018-01-30 at 11:58 +0100, Hans Hagen wrote:
On 01/30/2018 09:17 PM, Hans Hagen wrote:
On 1/30/2018 2:54 AM, Henri Menke wrote:
Dear list,
the title says it all. Please add \ignorespaces in a place you deem appropriate. MWE is below. sometimes you will also add \removeuwantedspaces in the stop I'm confused. Does that mean there is going to be a fix? no, why should there be? spaces are never ignored after the last [...]
On 1/30/2018 11:34 AM, Henri Menke wrote: that is checked for unless a command has an explicit \ignorespaces
I'm not convinced. Both "before" and "commands" see a \relax and therefore \ignorespaces is dropped. I can put \removeunwantedspaces there but that deletes the space before \start. The \framed command correctly drops the space after the options.
---
\definestartstop [spurious space a] [before=\ignorespaces, after=\removeunwantedspaces]
\definestartstop [spurious space b] [before=\removeunwantedspaces, after=\removeunwantedspaces]
\starttext
Hello Foo Bar World
Hello \start[spurious space a] Foo Bar \stop\ World % ^^^ neither space ^^^ is skipped
Hello \start[spurious space b] Foo Bar \stop\ World % ^^^ skips this space ^^^ instead of this
Hello \startframed[offset=overlay] Foo Bar \stopframed\ World % That's the behaviour I'm looking for.
\stoptext
You assume \start[<...>] ... \stop is linked to \definestartstop but this isn’t the case, what the environment does is to generate a start-command with the argument but this works for every environment, e.g. \start[itemize] ... \stop does the same as \startitemize ... \stopitemize. Adding the \ignorespace is not an option in this case because it would effect all environments which you use with the argument for \start. Wolfgang