ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Michael Murphy <michael.murphy@uni-ulm.de>
To: ntg-context@ntg.nl
Subject: Re: horizontal alignment
Date: Fri, 09 Jul 2010 13:13:58 +0200	[thread overview]
Message-ID: <4C370476.8010407@uni-ulm.de> (raw)
In-Reply-To: <AANLkTimAvzKraexKaawRlOFe-A3cz9i6s8BuaSNuebjz@mail.gmail.com>

On 09/07/10 01:32, Michael Goerz wrote:
> Hi everyone,
>
> I'm trying to do some horizontal alignment, for typesetting poetry.
> How would you solve this kind of problem? I've considered defining a
> macro \BrokenLine[line1][line2] that does the above. But, there are
> also instances where there are two or more lines as a continuation of
> one previous line. Maybe there is a possibility to mark a horizontal
> position temporarily, and then jump to that position later?

Didn't know you were into ConTeXt...

Anyway, this is a crappy solution and you could probably make it better. 
As far as I'm aware, there is no way to get the current horizontal 
position across the page at any particular moment. The method below 
essentially just measures the length of the line that you want to enter, 
and sets this as the indent.

\dimendef\indentl=10

\def\savewidth#1{%
   \setbox0=\hbox{#1}%
   \copy0%
   \indentl=\wd0%
}

\def\addtosavewidth#1{%
   \setbox0=\hbox{#1}%
   \mindent\copy0%
   \advance\indentl by \wd0%
}

\def\mindent{\hskip\indentl}

\starttext
\startlines
   here we now see you ~~  already in grief
   as you see ~~  yourselves ~~  as the last of the lasts
   \savewidth{we are mirrors of your consciousness }
   \mindent as you see the end
   \savewidth{and you see us ~~ deep }
   \addtosavewidth{in }
   \addtosavewidth{the spring }
   \mindent of the universe
   seeing you deep ~~ in the gravity well of the heat death
   we are dying ~~ in the spring as we watch you die
   we are grieving in the spring as you begin to grieve for all
   we are talking about bone-dry at the bottom of the well of time
   \savewidth{we are already parched }
   \mindent for time is transparent
   \savewidth{and we are all rats in the glassy }
   \mindent labyrinth of time.
   \stoplines
\stoptext


-- 
Michael Murphy
___________________________________________________________________________________
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


  reply	other threads:[~2010-07-09 11:13 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-08 23:32 Michael Goerz
2010-07-09 11:13 ` Michael Murphy [this message]
2010-07-10  5:15   ` Michael Goerz
2010-07-11  7:22   ` Wolfgang Schuster

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=4C370476.8010407@uni-ulm.de \
    --to=michael.murphy@uni-ulm.de \
    --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).