Rik Kabel schrieb am 13.08.18 um 19:09:
On 8/13/2018 12:04, Wolfgang Schuster wrote:
Hi Rik,
what do you want to achieve and why do you need a buffer for it?
Wolfgang
Fair question.
I have a document with many (400+) block quotations. Each consists of
a text extract, which may be prose or poetry, and additional optional
components (alternate versions or transliterations, translations,
attribution). The optional components are distinguished
typographically – enlarged square brackets around alternate versions,
enlarged parentheses around translations, leading en-dash and hanging
indent for attributions. Each component is in a buffer. The structure
looks like:
\startBlockQuotation[label=abc,authors={...},precis={short
extract},translators={...},tprecis={{short extract},{short
extract}}...]
\startExtract[language=agr,align=yes,font=abc,tolerance=...,...]
text of extract
\stopExtract
\startTransliteration[language=en,align=yes,font=abc,...]
text of transliteration
\stopTransliteration
\startTranslation[...]
text of translation
\stopTranslation
\startAttribution[tolerance=,...]
attribution of quotation
\stopAttribution
\stopBlockQuotation
and the code to handle it generates author index entries, a quotation
precis index, and so on from the attributes of the envelope, and
typesets each component based on the provided settings or defaults,
placing the appropriate decorations around those components that call
for them. The components are nestable, so one extract may contain
another, and components can be used separately without the envelope
(\startBlockQuotation or \startEpigraph) as well.
(I have written it this way to ease the move to an XML-based format
for storing the quotations. I realize I am combining presentation
elements, like label, tolerance, and precis, and content elements,
like language, and some that may be either, like align and font, in
the attributes, but will deal with that later.)
I prefer to leave blank lines around blocks of text and around macro
commands, so:
\startparagraph
some text
\stopparagraph
but when this is done with, for example, \startAttribution, and no
optional arguments are provided, I run into the problem I have described.
Try to avoid blank lines at the begin/end of environments.
I realize that I can simply not include the blank line after
\startAttribution. I would prefer, however, to see consistent parallel
structures without having to distinguish them at the time it is
written. Perhaps I am being too picky, but that is what I am attempting.
At this point, the \setupparagraphintro hack handles my needs, so I
will proceed with that.
\starttext
\BeforePar{\dontleavehmode\llap{? }}\GotoPar
\input knuth
\startnarrower
\BeforePar{\dontleavehmode\llap{? }}\GotoPar
\input knuth
\stopnarrower
\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
___________________________________________________________________________________