* baseline alignment
@ 2004-07-22 8:59 Vit Zyka
2004-08-09 22:39 ` Hans Hagen
0 siblings, 1 reply; 3+ messages in thread
From: Vit Zyka @ 2004-07-22 8:59 UTC (permalink / raw)
Hallo,
for text positioning in a layer I needed alignment to baseline. I do not
known if I missed something but I did not find it in the current
ConTeXt. So I did that. Baseline is choosen by capital 'B' in the
position parameter. ('B' is adopted from grahicx LaTeX/plain package.)
Also I add \ctop, \ltop, and \rtop in sence of \cbox, \lbox, and rbox,
respectively.
I suggest to add the macros to core-box and supp-box.
Vit Zyka
%-------------------------------------------- baseline alignment
\setvalue{\??ab\??ab B}{\baselinebox}
\setvalue{\??ab\??ab Bl}{\baselineleftbox}
\setvalue{\??ab\??ab Bc}{\baselinecenterbox}
\setvalue{\??ab\??ab Br}{\baselinerightbox}
\setvalue{\??ab\??ab lB}{\leftbaselinebox}
\setvalue{\??ab\??ab cB}{\centerbaselinebox}
\setvalue{\??ab\??ab rB}{\rightbaselinebox}
\def\baselinecenterbox#1%
{\normalhbox
{\setbox0\placedbox{#1}%
\global\boxhdisplacement-.5\wd0
\global\advance\boxhdisplacement-\boxoffset
\global\boxvdisplacement-\boxoffset
\boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
\def\baselineleftbox#1%
{\normalhbox
{\setbox0\placedbox{#1}%
\global\boxhdisplacement-\wd0
\global\advance\boxhdisplacement-\boxoffset
\global\boxvdisplacement-\boxoffset
\boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
\def\baselinerightbox#1%
{\normalhbox
{\setbox0\placedbox{#1}%
\global\boxhdisplacement\boxoffset
\global\boxvdisplacement-\boxoffset
\boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
\let\baselinebox=\baselinecenterbox
\let\leftbaselinebox=\baselineleftbox
\let\rightbaselinebox=\baselinerightbox
%------------------------------ \ltop, \rtop, \ctop
\def\lrctop#1#2#%
{\vtop#2\bgroup
\let\\=\endgraf
\forgetall#1\let\next=}
\def\ltop{\lrctop\raggedleft}
\def\rtop{\lrctop\raggedright}
\def\ctop{\lrctop\raggedcenter}
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: baseline alignment
2004-07-22 8:59 baseline alignment Vit Zyka
@ 2004-08-09 22:39 ` Hans Hagen
2004-09-09 14:36 ` Vit Zyka
0 siblings, 1 reply; 3+ messages in thread
From: Hans Hagen @ 2004-08-09 22:39 UTC (permalink / raw)
Vit Zyka wrote:
> Hallo,
>
> for text positioning in a layer I needed alignment to baseline. I do
> not known if I missed something but I did not find it in the current
> ConTeXt. So I did that. Baseline is choosen by capital 'B' in the
> position parameter. ('B' is adopted from grahicx LaTeX/plain package.)
>
> Also I add \ctop, \ltop, and \rtop in sence of \cbox, \lbox, and rbox,
> respectively.
>
> I suggest to add the macros to core-box and supp-box.
>
> Vit Zyka
>
> %-------------------------------------------- baseline alignment
> \setvalue{\??ab\??ab B}{\baselinebox}
> \setvalue{\??ab\??ab Bl}{\baselineleftbox}
> \setvalue{\??ab\??ab Bc}{\baselinecenterbox}
> \setvalue{\??ab\??ab Br}{\baselinerightbox}
> \setvalue{\??ab\??ab lB}{\leftbaselinebox}
> \setvalue{\??ab\??ab cB}{\centerbaselinebox}
> \setvalue{\??ab\??ab rB}{\rightbaselinebox}
> \def\baselinecenterbox#1%
> {\normalhbox
> {\setbox0\placedbox{#1}%
> \global\boxhdisplacement-.5\wd0
> \global\advance\boxhdisplacement-\boxoffset
> \global\boxvdisplacement-\boxoffset
> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
> \def\baselineleftbox#1%
> {\normalhbox
> {\setbox0\placedbox{#1}%
> \global\boxhdisplacement-\wd0
> \global\advance\boxhdisplacement-\boxoffset
> \global\boxvdisplacement-\boxoffset
> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
> \def\baselinerightbox#1%
> {\normalhbox
> {\setbox0\placedbox{#1}%
> \global\boxhdisplacement\boxoffset
> \global\boxvdisplacement-\boxoffset
> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
> \let\baselinebox=\baselinecenterbox
> \let\leftbaselinebox=\baselineleftbox
> \let\rightbaselinebox=\baselinerightbox
hm, in that case we probably need a few more -)
See example below, there is already a grid option; also, keep an eye on
topskip (we may need s sl sc sr but who can remember that)
I dislike the capital B but the g is available (g from gridline)
\unprotect
% \v!grid is taken
\setvalue{\??ab\??ab m}{\middlebox}
\setvalue{\??ab\??ab g}{\baselinemiddlebox}
\setvalue{\??ab\??ab gl}{\baselineleftbox}
\setvalue{\??ab\??ab gc}{\baselinemiddlebox}
\setvalue{\??ab\??ab gr}{\baselinerightbox}
\setvalue{\??ab\??ab \v!regel }{\baselinemiddlebox} % \v!grid is
taken
\setvalue{\??ab\??ab \v!regel\v!links }{\baselineleftbox}
\setvalue{\??ab\??ab \v!regel\v!midden}{\baselinemiddlebox}
\setvalue{\??ab\??ab \v!regel\v!rechts}{\baselinerightbox}
\def\baselinemiddlebox#1%
{\normalhbox
{\setbox0\placedbox{#1}%
\global\boxhdisplacement-.5\wd0
\global\advance\boxhdisplacement-\boxoffset
\global\boxvdisplacement-\boxoffset
\boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
\def\baselineleftbox#1%
{\normalhbox
{\setbox0\placedbox{#1}%
\global\boxhdisplacement-\wd0
\global\advance\boxhdisplacement-\boxoffset
\global\boxvdisplacement-\boxoffset
\boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
\def\baselinerightbox#1%
{\normalhbox
{\setbox0\placedbox{#1}%
\global\boxhdisplacement\boxoffset
\global\boxvdisplacement-\boxoffset
\boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
\protect
\definelayer[text] \setupbackgrounds[text][background=text]
\setuplayer[text][width=\textwidth,height=\textheight]
\showgrid
\starttext
\setlayer
[text]
[location=grid,line=13]
{\vtop{\strut \input ward \endstrut}}
\setlayer
[text]
[corner={right,top},
voffset=\topskip, % \topskipgap,
location=gl]
{\vtop{\begstrut \input ward \endstrut}}
x
\stoptext
i can add that to the kernel if tested
>
> %------------------------------ \ltop, \rtop, \ctop
> \def\lrctop#1#2#%
> {\vtop#2\bgroup
> \let\\=\endgraf
> \forgetall#1\let\next=}
> \def\ltop{\lrctop\raggedleft}
> \def\rtop{\lrctop\raggedright}
> \def\ctop{\lrctop\raggedcenter}
ok, i've patched/added:
\def\lbox{\makelrcbox\normalvbox\raggedleft}
\def\cbox{\makelrcbox\normalvbox\raggedcenter}
\def\rbox{\makelrcbox\normalvbox\raggedright}
\def\ltop{\makelrcbox\normalvtop\raggedleft}
\def\ctop{\makelrcbox\normalvtop\raggedcenter}
\def\rtop{\makelrcbox\normalvtop\raggedright}
\def\makelrcbox#1#2#3#%
{#1#3\bgroup \forgetall \let\\=\endgraf #2\let\next=}
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: baseline alignment
2004-08-09 22:39 ` Hans Hagen
@ 2004-09-09 14:36 ` Vit Zyka
0 siblings, 0 replies; 3+ messages in thread
From: Vit Zyka @ 2004-09-09 14:36 UTC (permalink / raw)
Hi All,
first of all I want to apologize not being responding to several your
emails (e.g. this one). My email provider has filtered tens of them as
spam... I sighted them just now when I became suspicious of the email
delivery.
Hans Hagen wrote:
> Vit Zyka wrote:
>
>> Hallo,
>>
>> for text positioning in a layer I needed alignment to baseline. I do
>> not known if I missed something but I did not find it in the current
>> ConTeXt. So I did that. Baseline is choosen by capital 'B' in the
>> position parameter. ('B' is adopted from grahicx LaTeX/plain package.)
>>
>> Also I add \ctop, \ltop, and \rtop in sence of \cbox, \lbox, and rbox,
>> respectively.
>>
>> I suggest to add the macros to core-box and supp-box.
>>
>> Vit Zyka
>>
>> %-------------------------------------------- baseline alignment
>> \setvalue{\??ab\??ab B}{\baselinebox}
>> \setvalue{\??ab\??ab Bl}{\baselineleftbox}
>> \setvalue{\??ab\??ab Bc}{\baselinecenterbox}
>> \setvalue{\??ab\??ab Br}{\baselinerightbox}
>> \setvalue{\??ab\??ab lB}{\leftbaselinebox}
>> \setvalue{\??ab\??ab cB}{\centerbaselinebox}
>> \setvalue{\??ab\??ab rB}{\rightbaselinebox}
>> \def\baselinecenterbox#1%
>> {\normalhbox
>> {\setbox0\placedbox{#1}%
>> \global\boxhdisplacement-.5\wd0
>> \global\advance\boxhdisplacement-\boxoffset
>> \global\boxvdisplacement-\boxoffset
>> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
>> \def\baselineleftbox#1%
>> {\normalhbox
>> {\setbox0\placedbox{#1}%
>> \global\boxhdisplacement-\wd0
>> \global\advance\boxhdisplacement-\boxoffset
>> \global\boxvdisplacement-\boxoffset
>> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
>> \def\baselinerightbox#1%
>> {\normalhbox
>> {\setbox0\placedbox{#1}%
>> \global\boxhdisplacement\boxoffset
>> \global\boxvdisplacement-\boxoffset
>> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
>> \let\baselinebox=\baselinecenterbox
>> \let\leftbaselinebox=\baselineleftbox
>> \let\rightbaselinebox=\baselinerightbox
>
>
> hm, in that case we probably need a few more -)
>
> See example below, there is already a grid option; also, keep an eye on
> topskip (we may need s sl sc sr but who can remember that)
Like this? If so, I can prepare the rest alternatives and to test them.
\setvalue{\??ab\??ab s}{\topskipcenterbox}
\def\topskipcenterbox#1%
{\normalhbox
{\setbox0\placedbox{#1}%
\global\boxhdisplacement-.5\wd0
\global\advance\boxhdisplacement-\boxoffset
\global\boxvdisplacement-\boxoffset
\global\advance\boxvdisplacement by\topskip
\boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
> I dislike the capital B but the g is available (g from gridline)
OK. But is not better to use also \gridrightbox instead of
\baselinerightbox, etc. ?
> i can add that to the kernel if tested
I tested your code and it is all right.
> \unprotect
>
> % \v!grid is taken
>
> \setvalue{\??ab\??ab m}{\middlebox}
>
> \setvalue{\??ab\??ab g}{\baselinemiddlebox}
> \setvalue{\??ab\??ab gl}{\baselineleftbox}
> \setvalue{\??ab\??ab gc}{\baselinemiddlebox}
> \setvalue{\??ab\??ab gr}{\baselinerightbox}
>
> \setvalue{\??ab\??ab \v!regel }{\baselinemiddlebox} % \v!grid is
> taken
> \setvalue{\??ab\??ab \v!regel\v!links }{\baselineleftbox}
> \setvalue{\??ab\??ab \v!regel\v!midden}{\baselinemiddlebox}
> \setvalue{\??ab\??ab \v!regel\v!rechts}{\baselinerightbox}
>
> \def\baselinemiddlebox#1%
> {\normalhbox
> {\setbox0\placedbox{#1}%
> \global\boxhdisplacement-.5\wd0
> \global\advance\boxhdisplacement-\boxoffset
> \global\boxvdisplacement-\boxoffset
> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
>
> \def\baselineleftbox#1%
> {\normalhbox
> {\setbox0\placedbox{#1}%
> \global\boxhdisplacement-\wd0
> \global\advance\boxhdisplacement-\boxoffset
> \global\boxvdisplacement-\boxoffset
> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
>
> \def\baselinerightbox#1%
> {\normalhbox
> {\setbox0\placedbox{#1}%
> \global\boxhdisplacement\boxoffset
> \global\boxvdisplacement-\boxoffset
> \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
>
> \protect
>
> \definelayer[text] \setupbackgrounds[text][background=text]
> \setuplayer[text][width=\textwidth,height=\textheight]
>
> \showgrid
>
> \starttext
>
> \setlayer
> [text]
> [location=grid,line=13]
> {\vtop{\strut \input ward \endstrut}}
>
> \setlayer
> [text]
> [corner={right,top},
> voffset=\topskip, % \topskipgap,
> location=gl]
> {\vtop{\begstrut \input ward \endstrut}}
>
> x
>
> \stoptext
>
> i can add that to the kernel if tested
>> %------------------------------ \ltop, \rtop, \ctop
>> \def\lrctop#1#2#%
>> {\vtop#2\bgroup
>> \let\\=\endgraf
>> \forgetall#1\let\next=}
>> \def\ltop{\lrctop\raggedleft}
>> \def\rtop{\lrctop\raggedright}
>> \def\ctop{\lrctop\raggedcenter}
> ok, i've patched/added:
>
> \def\lbox{\makelrcbox\normalvbox\raggedleft}
> \def\cbox{\makelrcbox\normalvbox\raggedcenter}
> \def\rbox{\makelrcbox\normalvbox\raggedright}
>
> \def\ltop{\makelrcbox\normalvtop\raggedleft}
> \def\ctop{\makelrcbox\normalvtop\raggedcenter}
> \def\rtop{\makelrcbox\normalvtop\raggedright}
>
> \def\makelrcbox#1#2#3#%
> {#1#3\bgroup \forgetall \let\\=\endgraf #2\let\next=}
Great, thank you, Hans.
Vit Zyka
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-09-09 14:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-07-22 8:59 baseline alignment Vit Zyka
2004-08-09 22:39 ` Hans Hagen
2004-09-09 14:36 ` Vit Zyka
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).