ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Wolfgang Schuster <wolfgang.schuster.lists@gmail.com>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Quotation dash issues with semantic markup
Date: Fri, 17 Jan 2020 20:11:29 +0100	[thread overview]
Message-ID: <23ba68a6-653f-fa70-89ae-f1ed452ee000@gmail.com> (raw)
In-Reply-To: <2679f874-a54e-3798-8019-48f42dc59b9a@xs4all.nl>

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 
dashes.

\unprotect

\def\speech_dash
   {\setbox\scratchbox\hbox{\texthorizontalbar\space}%
    \leaders\copy\scratchbox\hskip\wd\scratchbox}

\def\speech_left
   {\ifhmode
      \removeunwantedspaces
    \else
      \dontleavehmode
    \fi
    \space\speech_dash}

\def\speech_right
   {\removeunwantedspaces
    \space\speech_dash}

%\define[1]\speech
%  {\speech_left#1\speech_right}

\unexpanded\def\speech
   {\speech_left
    \bgroup
    \aftergroup\speech_right
    \let\next=}

\def\aside_dash
   {\setbox\scratchbox\hbox{\endash\space}%
    \leaders\copy\scratchbox\hskip\wd\scratchbox}

\def\aside_left
   {\ifhmode
      \removeunwantedspaces
    \else
      \dontleavehmode
    \fi
    \space\aside_dash}

\def\aside_right
   {\space\aside_dash}

%\define[1]\aside
%  {\aside_left#1\aside_right}

\unexpanded\def\aside
   {\aside_left
    \bgroup
    \aftergroup\aside_right
    \let\next=}

\protect

\setupbodyfont[pagella]

\starttext

\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

\stoptext

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
___________________________________________________________________________________

  reply	other threads:[~2020-01-17 19:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-30  4:03 Sam May
2019-12-30  9:19 ` Hans Hagen
2020-01-17 19:11   ` Wolfgang Schuster [this message]
2020-01-18  9:30     ` Hans Hagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=23ba68a6-653f-fa70-89ae-f1ed452ee000@gmail.com \
    --to=wolfgang.schuster.lists@gmail.com \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).