From: Hans Hagen <j.hagen@xs4all.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>,
Rik Kabel <context@rik.users.panix.com>
Subject: Re: How can I remove a blank leading line from a buffer
Date: Mon, 13 Aug 2018 09:01:21 +0200 [thread overview]
Message-ID: <1cd49a92-b6c9-0c48-d148-c863a503a809@xs4all.nl> (raw)
In-Reply-To: <fb678cb6-370a-3a2b-3306-76b74ff17116@rik.users.panix.com>
On 8/13/2018 5:18 AM, Rik Kabel wrote:
> %% How can one remove blank lines at the start of a buffer so that
> %% commands that grab a buffer can be used in the same way as, for
> %% example, \startparagraph...\stopparagraph, which allow blank
> %% lines around the content?
> %%
> %% The problem appears when an optional argument is allowed but none
> %% is provided. Adding \relax does not help; adding empty brackets
> %% does. I see no way to distinguish between a buffer without
> %% leading blank lines and a buffer that was created when brackets
> %% are provided.
> %%
> %% \inlinebuffer handles the leading blank lines when there is
> %% nothing prepended, but I need to prepend. (It also handles the
> %% unwanted trailing line, but that is not an issue here).
> %%
> %% How can I unpack the buffer, apply the equivalent functions of
> %% ignorespaspaces and removeunwantedspaces to it, and repack it?
> %% The buffer may contain internal blank lines and macros, and
> %% those should be retained. Or, is there already a function to
> %% strip a buffer in the manner that string.strip does a string?
>
> \setupwhitespace[none]
> \setupindenting[none]
> \define\Mark{\color[middlegray]{\itb¿\ }}
> \define\First{nothing yet}
> \define\Arg{nothing yet}
> \setuplanguage[en][spacing=packed]
>
> \starttexdefinition unexpanded startBufTest
> \bgroup
> \dosingleempty\dostartBufTest
> \stoptexdefinition
>
> \starttexdefinition dostartBufTest [#SETUPS]
> \doifsomethingelse{#{SETUPS}}
> {\define\Arg{yes}}
> {\define\Arg{no}}
> \iffirstargument
> \define\First{yes}
> \else
> \define\First{no}
> \fi
> \relax
> \getrawparameters[BufTest][xx=yy,#SETUPS]
> \grabbufferdata[TestBuffer][startBufTest][stopBufTest]
> \stoptexdefinition
>
> \starttexdefinition stopBufTest
>
> \startparagraph
>
> \dontleavehmode\llap{\Mark}\inlinebuffer[TestBuffer]
> \ (first: \First, arg: \Arg)
>
> \stopparagraph
>
> \egroup
> \stoptexdefinition
>
> \starttext
>
> \startparagraph
>
> A starting paragraph.
>
> \stopparagraph
>
> \startBufTest
> Buffer without blank lines.
> \stopBufTest
>
> \startparagraph
>
> An intervening paragraph.
>
> \stopparagraph
>
> \startBufTest
>
> Buffer with blank lines.
>
> \stopBufTest
>
> \startparagraph
>
> An intervening paragraph.
>
> \stopparagraph
>
> \startBufTest\relax
>
> Buffer with \tex{relax}.
>
> \stopBufTest
>
> \startparagraph
>
> An intervening paragraph.
>
> \stopparagraph
>
> \startBufTest[]
>
> Buffer with \type{[]}.
>
> \stopBufTest
>
> \startparagraph
>
> An intervening paragraph.
>
> \stopparagraph
>
> \startBufTest[key=value]
>
> Buffer with \type{[key=value]}.
>
> \stopBufTest
>
> \startparagraph
>
> A closing paragraph.
>
> \stopparagraph
>
> \stoptext
\startparagraph
% \dontleavehmode\llap{\Mark}\inlinebuffer[TestBuffer]
% \ (first: \First, arg: \Arg)
\margintext{\Mark}
\setupparagraphintro[first][(first: \First, arg: \Arg)]
%\setupparagraphintro[next][(first: \First, arg: \Arg)]
\getbuffer[TestBuffer]
\stopparagraph
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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:[~2018-08-13 7:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-13 3:18 Rik Kabel
2018-08-13 3:44 ` Aditya Mahajan
2018-08-13 3:46 ` Henri Menke
2018-08-13 7:02 ` Hans Hagen
2018-08-13 7:01 ` Hans Hagen [this message]
2018-08-13 14:28 ` Rik Kabel
2018-08-13 16:04 ` Wolfgang Schuster
2018-08-13 17:09 ` Rik Kabel
2018-08-13 17:46 ` Wolfgang Schuster
2018-08-13 18:27 ` Rik Kabel
2018-08-13 19:52 ` Wolfgang Schuster
2018-08-13 22:43 ` Rik Kabel
2018-08-14 14:46 ` Rik Kabel
2018-08-15 3:31 ` Aditya Mahajan
2018-08-15 7:07 ` Hans Hagen
2018-08-15 21:46 ` Rik Kabel
2018-08-16 14:55 ` Aditya Mahajan
2018-08-16 20:02 ` Rik
2018-08-13 16:15 ` Rik Kabel
2018-08-13 17:51 ` Rik Kabel
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=1cd49a92-b6c9-0c48-d148-c863a503a809@xs4all.nl \
--to=j.hagen@xs4all.nl \
--cc=context@rik.users.panix.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).