ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Placing a box with left-aligned lines on the right border
@ 2015-02-18 10:45 Procházka Lukáš Ing. - Pontex s. r. o.
  2015-02-18 13:58 ` Wolfgang Schuster
  0 siblings, 1 reply; 3+ messages in thread
From: Procházka Lukáš Ing. - Pontex s. r. o. @ 2015-02-18 10:45 UTC (permalink / raw)
  To: ConTeXt

[-- Attachment #1: Type: text/plain, Size: 2723 bytes --]

Hello,

how to more easily achieve this?:

----
Some text on line       Text in box
                         Longer text in the box
                         Shorter text in box

                         |<------------------>|
                           Width of the box is
                           that of the longest
                           text in it

                  |<---->|
                   Some space between the preceeding
                   text and the box
|<------------------------------------------>|
   Text width available (\textwidth)
----

The solution should have the following features:

- Text in the box to be written "at once" with a token (be "\\" or "\par" or another) to go to the next line;
- The box (wrapping "Text in box", "Longer text in the box", "Shorter text in box") should have no width specified -
	it should get it from the longest member (line) in it (in our case: width of "Longer text in the box");
- Text in the box should be "alignleft";
- Base line of first text the box to be vertically aligned to the base of the preceding text, i.e.
	"Some text on line" to have the same basement as "Text in box";
- A horizontal filler may be placed between "Some text on line" and the box to fit "text width available".

Two ways that don't go to the goal, just to demonstrate my trials and fails:

----
\starttext

% 1

Some text on line\hfill Text in box\par
                  \hfill Longer text in the box\par
                  \hfill Shorter text in box\par

% 2

Some text on line\hfill\framed[width=5cm,align=flushleft,frame=off]
                               {Text in box\\
                                Longer text in the box\\
                                Shorter text in box}

\stoptext
----

Way 1 - problems:

- The text to be boxed is not written in a "box environment";
- the text to be boxed is not left-aligned in the box (as it actually is not in a box).

Way 2 - problems:

- The text in the box (\framed) must have width specified;
- the text in the box "goes over" the line where it is placed, not with first line basement aligned.

So - how to achieve the layout desired?

(Hint:

The situation may be imagined as the top of a letter page:

write "some text to the left", fill with the "maximum space" till you reach the "box for an address" on the right of the current line;
write address lines left-aligned inside the box.)

Thank you for ideas in advance.

Best regards,

Lukas


-- 
Ing. Lukáš Procházka | mailto:LPr@pontex.cz
Pontex s. r. o.      | mailto:pontex@pontex.cz | http://www.pontex.cz
Bezová 1658
147 14 Praha 4

Tel: +420 241 096 751
Fax: +420 244 461 038

[-- Attachment #2: t3.mkiv --]
[-- Type: application/octet-stream, Size: 408 bytes --]

\starttext

% 1

Some text on line\hfill Text in box\par
                 \hfill Longer text in the box\par
                 \hfill Shorter text in box\par

% 2

Some text on line\hfill\framed[width=5cm,align=flushleft,frame=off]
                              {Text in box\\
                               Longer text in the box\\
                               Shorter text in box}
\stoptext

[-- Attachment #3: t3.pdf --]
[-- Type: application/pdf, Size: 6427 bytes --]

[-- Attachment #4: Type: text/plain, Size: 485 bytes --]

___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Placing a box with left-aligned lines on the right border
  2015-02-18 10:45 Placing a box with left-aligned lines on the right border Procházka Lukáš Ing. - Pontex s. r. o.
@ 2015-02-18 13:58 ` Wolfgang Schuster
  2015-02-18 14:40   ` Procházka Lukáš Ing. - Pontex s. r. o.
  0 siblings, 1 reply; 3+ messages in thread
From: Wolfgang Schuster @ 2015-02-18 13:58 UTC (permalink / raw)
  To: mailing list for ConTeXt users


> Am 18.02.2015 um 11:45 schrieb Procházka Lukáš Ing. - Pontex s. r. o. <LPr@pontex.cz>:
> 
> Hello,
> 
> how to more easily achieve this?:
> 
> ----
> Some text on line       Text in box
>                        Longer text in the box
>                        Shorter text in box
> 
>                        |<------------------>|
>                          Width of the box is
>                          that of the longest
>                          text in it
> 
>                 |<---->|
>                  Some space between the preceeding
>                  text and the box
> |<------------------------------------------>|
>  Text width available (\textwidth)
> ----
> 
> The solution should have the following features:
> 
> - Text in the box to be written "at once" with a token (be "\\" or "\par" or another) to go to the next line;
> - The box (wrapping "Text in box", "Longer text in the box", "Shorter text in box") should have no width specified -
> 	it should get it from the longest member (line) in it (in our case: width of "Longer text in the box");
> - Text in the box should be "alignleft";
> - Base line of first text the box to be vertically aligned to the base of the preceding text, i.e.
> 	"Some text on line" to have the same basement as "Text in box";
> - A horizontal filler may be placed between "Some text on line" and the box to fit "text width available".
> 
> Two ways that don't go to the goal, just to demonstrate my trials and fails:
> 
> ----
> \starttext
> 
> % 1
> 
> Some text on line\hfill Text in box\par
>                 \hfill Longer text in the box\par
>                 \hfill Shorter text in box\par
> 
> % 2
> 
> Some text on line\hfill\framed[width=5cm,align=flushleft,frame=off]
>                              {Text in box\\
>                               Longer text in the box\\
>                               Shorter text in box}
> 
> \stoptext
> ----
> 
> Way 1 - problems:
> 
> - The text to be boxed is not written in a "box environment";
> - the text to be boxed is not left-aligned in the box (as it actually is not in a box).
> 
> Way 2 - problems:
> 
> - The text in the box (\framed) must have width specified;
> - the text in the box "goes over" the line where it is placed, not with first line basement aligned.
> 
> So - how to achieve the layout desired?
> 
> (Hint:
> 
> The situation may be imagined as the top of a letter page:
> 
> write "some text to the left", fill with the "maximum space" till you reach the "box for an address" on the right of the current line;
> write address lines left-aligned inside the box.)


Method 1 (frame based):

\starttext

Some text on line
\hfill
\startframed[width=fit,align=flushleft,frame=off,location=top]
Text in box\\
Longer text in the box\\
Shorter text in box
\stopframed

\stoptext


Method 2 (layer based):

\definelayer[letterhead][width=\textwidth]

\setupbackgrounds[text][background=letterhead]

\starttext

\setlayerframed
  [letterhead]
  [preset=lefttop]
  [offset=0pt,frame=off]
  {Some text on line}

\setlayerframed
  [letterhead]
  [preset=righttop]
  [offset=0pt,width=fit,align=flushleft,frame=off,location=top]
  {Text in box\\
   Longer text in the box\\
   Shorter text in box}

\blank[force,4*line]

\input knuth

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Placing a box with left-aligned lines on the right border
  2015-02-18 13:58 ` Wolfgang Schuster
@ 2015-02-18 14:40   ` Procházka Lukáš Ing. - Pontex s. r. o.
  0 siblings, 0 replies; 3+ messages in thread
From: Procházka Lukáš Ing. - Pontex s. r. o. @ 2015-02-18 14:40 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Hello,

thank you - method 1 is exactly what I'm looking for.

Best regards,

Lukas

On Wed, 18 Feb 2015 14:58:49 +0100, Wolfgang Schuster <schuster.wolfgang@gmail.com> wrote:

>
>> Am 18.02.2015 um 11:45 schrieb Procházka Lukáš Ing. - Pontex s. r. o. <LPr@pontex.cz>:
>>
>> Hello,
>>
>> how to more easily achieve this?:
>>
>> ----
>> Some text on line       Text in box
>>                        Longer text in the box
>>                        Shorter text in box
>>
>>                        |<------------------>|
>>                          Width of the box is
>>                          that of the longest
>>                          text in it
>>
>>                 |<---->|
>>                  Some space between the preceeding
>>                  text and the box
>> |<------------------------------------------>|
>>  Text width available (\textwidth)
>> ----
>>
>> The solution should have the following features:
>>
>> - Text in the box to be written "at once" with a token (be "\\" or "\par" or another) to go to the next line;
>> - The box (wrapping "Text in box", "Longer text in the box", "Shorter text in box") should have no width specified -
>> 	it should get it from the longest member (line) in it (in our case: width of "Longer text in the box");
>> - Text in the box should be "alignleft";
>> - Base line of first text the box to be vertically aligned to the base of the preceding text, i.e.
>> 	"Some text on line" to have the same basement as "Text in box";
>> - A horizontal filler may be placed between "Some text on line" and the box to fit "text width available".

> Method 1 (frame based):
>
> \starttext
>
> Some text on line
> \hfill
> \startframed[width=fit,align=flushleft,frame=off,location=top]
> Text in box\\
> Longer text in the box\\
> Shorter text in box
> \stopframed
>
> \stoptext
>
>
> Method 2 (layer based):
>
> \definelayer[letterhead][width=\textwidth]
>
> \setupbackgrounds[text][background=letterhead]
>
> \starttext
>
> \setlayerframed
>   [letterhead]
>   [preset=lefttop]
>   [offset=0pt,frame=off]
>   {Some text on line}
>
> \setlayerframed
>   [letterhead]
>   [preset=righttop]
>   [offset=0pt,width=fit,align=flushleft,frame=off,location=top]
>   {Text in box\\
>    Longer text in the box\\
>    Shorter text in box}
>
> \blank[force,4*line]
>
> \input knuth
>
> \stoptext
>
>
> Wolfgang


-- 
Ing. Lukáš Procházka | mailto:LPr@pontex.cz
Pontex s. r. o.      | mailto:pontex@pontex.cz | http://www.pontex.cz
Bezová 1658
147 14 Praha 4

Tel: +420 241 096 751
Fax: +420 244 461 038

___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-02-18 14:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-18 10:45 Placing a box with left-aligned lines on the right border Procházka Lukáš Ing. - Pontex s. r. o.
2015-02-18 13:58 ` Wolfgang Schuster
2015-02-18 14:40   ` Procházka Lukáš Ing. - Pontex s. r. o.

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