[NTG-context] \placelist disturbs grid?

Vit Zyka vit.zyka at seznam.cz
Tue Aug 9 17:50:06 CEST 2005


Hans Hagen wrote:
> Vit Zyka wrote:
> 
>> Hans Hagen wrote:
>>
>>> Vit Zyka wrote:
>>>
>>>> Hello Hans, Taco, and the next gurus,
>>>>
>>>> sorry for bother with another thing I can not understand. Very high 
>>>> glyphs like \v S disturb grid in the \placelist. The same glyph in 
>>>> the common paragraph with the same (intentionally) interline setting 
>>>> preserves grid:
>>>>
>>>> ---------------------------------------
>>>> \setupbodyfont[10pt,rm]
>>>> \setupinterlinespace[line=12pt]
>>>> \setuplayout[grid=yes,width=8cm]
>>>> \showgrid
>>>>
>>>> \writetolist[section]{}{See the next line:}
>>>> \writetolist[section]{}{\v Sejba}
>>>> \writetolist[section]{}{Another list line}
>>>>
>>>> \starttext
>>>> \v Sejba\par
>>>> Here grid is OK, but in \type{placelist}:
>>>>
>>>> \placelist[section]
>>>>
>>>> no!
>>>> \stoptext
>>>> ------------------------------------------
>>>> I was looking in definitions for some font-size dependent line 
>>>> setting, I also tried to
>>>> \setuplist[section]{style=\baselineskip=12pt\lineskiplimit=-10pt}
>>>> but without success to lounging on the grid.
>>>
>>>
>>> this is the default ratio:
>>>
>>> \setupinterlinespace
>>>  [height=.72,
>>>   depth=.28]
>>
>> Thank you Hans; after some experimenting I understood:
>> - height and depth in \setupinterlinespace are baseline-ratio/size of 
>> struts (add description to tex-show)
>> - some my chars (/,\v S, \tfa, ...) oversized \strut size of any ratio
>> - list items are typeset with struts (perhaps all alternative)
>> - only alternative without strut is 'none' with command=\Mycommand def
>>
>> So I do know how to preserve grid. But I do not know HOW TO TYPESET 
>> \Mycommand TO FIT THE PARAGRAPH WIDTH. It seem it is not in the 
>> restricted horizontal mode and continue on one long line. And another 
>> question/request: can the list distance param (alternative d,...) be 
>> glue instead of skip? For better line fitting.
>>
>> example:
>> ------------------
>> \setupbodyfont[10pt,rm]
>> \setupinterlinespace[line=12pt,height=.77,depth=.23]
>> \setuplayout[grid=yes,width=8cm]
>> \showgrid
>>
>> \setuplist[section]
>>   [style=\tfd,alternative=none,command=\MyListItem]
>> \def\MyListItem#1#2#3{{\tfb (#1-#2-#3) }}
>>
>> \starttext
>> \writetolist[section]{}{See the next line}
>> \writetolist[section]{}{\v Sejba}
>> \writetolist[section]{}{Another list line}
>> \writetolist[section]{}{And the last one}
>>
>> \lineskiplimit=-10pt
>> Line\par
>> Anothet line of \v Sejba\par
>>
>> \placelist[section]
>>
>> \strut  %% should be! why?
>> After list line.
>>
>> \stoptext
>> ------------------
>>
>> Vit

Hallo hans, thank you for your code. I find it in my mail box just today 
although it is 4 days old. So apologise me.

Unfortunately it seems to me it
A) does not work
    after successfull
       \definelistplacement[MyListItem][none]#1#2#3%
          {\listparameter{style} (#1 - #2 - #3) }
    \MyListItem is not defined.
B) does not solve the problem with a single long line list alternative.

But. Your example discovered me there are few more alternative in 
\setuplist (except a..f, none):

horizontal
vertical
command

So your example leads me to find the solution. I still do not know how 
to insert interaction to page number inside \MyListCommand. I have tried
\def\MyListCommand#1#2#3{%
   #1-#2-%
   \setbox0\hbox{#3}% \showcontrastlocation\??ia{??}{#3}}%
   \linklisttoelement{subsection}{??}{#3}{\box0}%
   )}
}
but I am puzzled by \linklisttoelement parameters.

Thnak ones more
Vit


Solution:
----------------------
\setupbodyfont[10pt,rm]
\setupinterlinespace[line=12pt,height=.77,depth=.23]
\setuplayout[grid=yes,width=8cm]
\showgrid

\setuplist[part]
 
[style=\bfb,alternative=command,command=\MyListCommand,before=\blank,after=\endgraf]
\setuplist[chapter]
 
[style=\bfb,alternative=command,command=\MyListCommand,before=\blank,after=\endgraf]
\setuplist[section]
   [style=\tfa,alternative=command,command=\MyListCommand]
\def\MyListCommand#1#2#3{%
   \listparameter{before}%
   {\listparameter{style}(#1-#2-#3)}\hskip1em plus.5em minus.5em
   \listparameter{after}%
}

\starttext
\writetolist[part]{1}{Part 1}
\writetolist[chapter]{1}{Chapter 1}
\writetolist[section]{1}{See the next line}
\writetolist[section]{2}{\v Sejba}
\writetolist[section]{3}{Another list line}
\expanded{\writetolist[section]{}{And the last line.}}
\writetolist[chapter]{2}{Chapter 2}
\writetolist[section]{1}{Section 1}

\lineskiplimit=-\maxdimen
Line\par
Another line of \v Sejba\par

\placecontent

\strut
After list.

\stoptext
-------------------------------

> 
> 
> \setuplist
>  [section]
>  [style=\tfd,
>   alternative=none,
>   after=\blank,
>   before=\blank,
>   command=\MyListItem]
> 
> \setuplist
>  [section]
>  [style=\tfd,
>   alternative=command
>   command=\MyListItem]
> 
> in core-lst you can see how the alternatives are defined
> ok, let's give you a bonus (goes in cont-new):
> \unprotect
> \def\definelistplacement
>  {\dodoubleempty\dodefinelistplacement}
> 
> \def\dodefinelistplacement[#1][#2]%
>  {\setvalue{\@@dodolistelement#1}%
>     {\doifelsenothing{#2}
>        {\getvalue{\@@dodolistelement\v!command}}%
>        {\executeifdefined{\@@dodolistelement#2}
>           {\getvalue{\@@dodolistelement\v!command}}}%
>     \setvalue{\??li\currentlist\c!command}%
>       {\getvalue{\@@dodolistelement::#1}}}%
>   \setvalue{\@@dodolistelement::#1}}
> 
> \definelistplacement[MyListItem][none]#1#2#3%
>  {\listparameter{style} (#1 - #2 - #3) }
> 
> \protect
> now you can say:
> \definelistplacement[MyListItem][none]#1#2#3%
>  {\listparameter{style} (#1 - #2 - #3) }
> 
> \setuplist
>  [section]
>  [style=\tfd,
>   alternative=MyListItem,
>   after=\blank,
>   before=\blank]
> 
> (btw, watch how one can ask for listparameters) 
> \definelistplacement[MyListItem][none]#1#2#3%
>  {\listparameter{style} (#1 - #2 - #3) }
> 
> \setuplist
>  [section]
>  [style=\tfd,
>   alternative=MyListItem,
>   after=\blank,
>   before=\blank]
> 
> \definelistplacement[MyListItem][none]#1#2#3%
>  {\listparameter{before}
>   \listparameter{style} (#1 - #2 - #3)   \listparameter{after}}
> 
> 
> 
> Hans -----------------------------------------------------------------
>                                          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
> -----------------------------------------------------------------
> 
> _______________________________________________
> ntg-context mailing list
> ntg-context at ntg.nl
> http://www.ntg.nl/mailman/listinfo/ntg-context
> 

-- 
=======================================================
Ing. Vít Zýka, Ph.D.                         TYPOkvítek

database publishing              databazove publikovani
data maintaining and typesetting in typographic quality
priprava dat a jejich sazba v typograficke kvalite

tel.: (+420) 777 198 189     www: http://typokvitek.com
=======================================================



More information about the ntg-context mailing list