I have *never* understood how this works and, in fact, have always done
weird stuff like explicitly putting a nbps before double punctuation
(:;) in my document sources. I do this as it makes the sources much
more readable, preventing my text editor from ever breaking lines
before the punctuation (and not having some space in the source looks
awkward when reading French text).
I use:
\setupcharacterspacing
[frenchpunctuation]
[language=fr]
\mainlanguage [fr]
\setcharacterspacing [frenchpunctuation] % why necessary?
\setupitemize [symbol=2] % dash rather than bullet
This gives proper spacing with \quotation{} and with \startquotation
... \stopquotation. Also, {\en\quotation{}} and {\de\quotation{}} in
the document correctly do not add spaces.
Is \setupquotation[symstyle=\resetcharacterspacing]
necessary?
Alan
On Fri, 7 Jun 2024 14:18:19 +0200
Wolfgang Schuster
Peter Münster schrieb am 07.06.2024 um 13:31:
On Thu, May 30 2024, Peter Münster wrote:
\mainlanguage[fr] \setcharacterspacing[frenchpunctuation] \starttext bla \quotation{OK} bla\\ bla «OK» bla \startquotation Not Ok: a space is missing \stopquotation \stoptext
It seems, that this workaround solves the problem: \setupquotation[before={\setcharacterspacing[reset]}]
The quotation environment doesn't rely on the characterspacing mechanism to add the spaces before and the after the quotes but uses language dependent skips.
The example below shows how it works and where it fails when you use characterspacing. Resetting spacing (and probably other settings like charcterkerning etc.) when the quotes are added as you noticed fixes the problem.
%%%% begin example \starttext
\dontleavehmode \hbox{«\hspace[fr][quotation]}% xxx% \hbox{\hspace[fr][quotation]»}
\setcharacterspacing[frenchpunctuation]
\dontleavehmode \hbox{«\hspace[fr][quotation]}% xxx% \hbox{\hspace[fr][quotation]»}
\dontleavehmode \hbox{\expand\everyresettypesetting\relax «\hspace[fr][quotation]}% xxx% \hbox{\expand\everyresettypesetting\relax \hspace[fr][quotation]»}
\stoptext %%%% end example
What do you think about it? Is this the right way to do it?
I would use the symstyle key as hook to disable charcterspacing for the quotes in the environment.
%%%% begin example \mainlanguage[fr]
\setcharacterspacing[frenchpunctuation]
\starttext
«xxx»
\startquotation xxx\stopquotation
\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 / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) archive : https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net ___________________________________________________________________________________