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
___________________________________________________________________________________
next prev parent 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).