[NTG-context] Quotation dash issues with semantic markup

Wolfgang Schuster wolfgang.schuster.lists at gmail.com
Fri Jan 17 20:11:29 CET 2020

Hans Hagen schrieb am 30.12.2019 um 10:19:
> On 12/30/2019 5:03 AM, Sam May wrote:
> \setuplanguage[en]
>     [leftquotation=\quotedash~,
>     rightquotation=~\quotedash,
>     leftsentence=\removeunwantedspaces~\endash\space,
>     midsentence=\removeunwantedspaces~\endash\space,
> %    leftsentence=\endash~,
> %    midsentence=~\endash,
>     rightsentence=~\endash]
> \define\quotedash{\emdash\endash}
> %\setupbackend[export=yes]
> \starttext
> \startsection[title=Introduction]
> Any of you able to help me get my quotation dashes into line when 
> automatically
> inserted by the semantic commands?  I'm sure a number of you look at 
> this style
> and cringe, but \cap{A.} I'm not looking for grammatical input, and 
> \cap{B.}
> I'm intending this for a non-English language where the quotation dash 
> (though
> still not most common) isn't as out of place.
> \stopsection
> \startsection[title=Desired rendering]
> \quotedash~Speech should always have a dash at the start, but none at 
> the end
> of a paragraph.
> \quotedash~Dialog asides should not duplicate dashes,~\endash\ he
> said.~\quotedash\ Also, this doesn't reflect the spacing mentioned in 
> section
> \in[extra].  \quotedash~nor, as above, add ones at the end of paragraphs.
> \endash~he continued.
> \stopsection
> \startsection[title=Actual output]
> \speech{Speech should always have a dash at the start, but none at the 
> end of a
> paragraph.}
> \speech{Dialog asides should not duplicate dashes, \aside{he said.}} 
> Also, note
> the spacing isn't removed despite \type{\removeunwantedspaces}, but 
> instead
> duplicated.  \speech{nor, as above, add ones at the end of paragraphs.
> \aside{he continued.}}
> \stopsection
> \startsection[title=Additional considerations and 
> observations,reference=extra]
> It would also be nice if a quote ending in a period carried the 
> \quote{broad}
> spacing to the other side of the (ending) quote dash |=| the dash before
> \quote{Also} above would be packed on the left and broad on the right. 
> I know
> this might be a lot trickier to code, and only consider it a bonus.
> The issue with \type{\removeunwantedspaces} only seems to affect the 
> command
> forms.  When inserted directly |<| as here |>| the spacing acts as 
> desired in
> the \cap{PDF} (as expected, the \cap{XML} doesn't understand the 
> order).  Also,
> the right \type{|>|} doesn't require either of the explicit spacing
> instructions (beyond being non-breaking) while the others do; try 
> switching the
> commented lines and re-rendering.
> The quotation dash itself only \emph{looks} as I want it; when I 
> highlight and
> copy the text or export it to the \cap{XML} backend, it's still two 
> dashes next
> to each other.  Instead, I'd like it to be the Unicode bar U+2015.  
> I'm not
> sure if \TEX/\LUATEX\ allows that difference between appearance and 
> interaction
> (I do know \cap{PDF} does), so if there's some way of adding a new 
> glyph to the
> font |<| one that mimics the other dashes even if the font changes |>| 
> I'd love
> to actually use the proper codepoint.  As is, that doesn't work in the 
> standard
> font(s): [\char"2015].
> \stopsection
> \stoptext
> I bet that Wolfgang has the answers to the speech setup so I'll do the 
> font part.

It's possible to use leaders to remove multiple dashes and also dashes 
at the end of a paragraph but this will only work for the PDF. A 
limitation is that you can't use the existing \speech and \aside 
commands because they use groups which prevents the removal of unwanted 





%  {\speech_left#1\speech_right}





%  {\aside_left#1\aside_right}





\speech{first speech} \speech{second speech}

\speech{first speech} no speech \speech{second speech}

\speech{first speech\aside{aside}} \speech{second speech}

\speech{speech \aside{aside}} no speech



More information about the ntg-context mailing list