Hello, I'm trying to get nested descriptions (using "tab") to form a "cascade". The result should look like: AAA ababababababab ababababababab BBB ababababab ababababab CCC ababab ababab <--> indent (margin?) of the first nested description in relation to its parent should equal width of parent's head (+ distance?), i.e. width of "AAA ", <--> indent (margin?) of the second nested description in relation to its parent should equal width of parent's head (+ distance?), i.e. width of "BBB ", <------> so it should be width of "AAA " + 'width of "BBB " in total. I'm not able to achieve this. My code so far is (and I also played with various combinations of alternative, margin, hang, indent...): ---- \starttext A \bgroup \setuptab[headstyle={\bold\tt},sample=123,width=fit,alternative=left] \starttab{abc} \input knuth \starttab{def} \input knuth \stoptab \stoptab \egroup \bgroup \setuptab[headstyle={\bold\tt},sample=123456,width=fit,alternative=hanging] \starttab{ghijkl} \input knuth \starttab{mnopqr} \input knuth \stoptab \stoptab \egroup \stoptext ---- - Paragraphs of "abc" and "def": size of indentation of the paragraphs is good in relation to width of head, but paragraph "def" is not "cascaded". - Paragraphs "ghijkl" and "mnopqr" are "cascaded" well; but width of (margin?) is any - it is not related to the width of the sample text. So how to combine both approaches to get the desired result? Best regards, Lukas -- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS: nrpt3sn | IČO: 40763439 Bezová 1658 147 14 Praha 4 Mob.: +420 702 033 396
Hello,
I finally found a solution (which doesn't use \description or any other Ctx command) (and which may be clumsy - I'm not so good in tex programming):
----
\def\IndByText#1{%
\newbox\IndByTextBox
\newdimen\IndByTextBoxWd
\setbox\IndByTextBox\hbox{#1}%
\IndByTextBoxWd=\wd\IndByTextBox
\advance\leftskip by\IndByTextBoxWd
\def\Left##1{%
\hskip-\IndByTextBoxWd
\hbox to\IndByTextBoxWd{##1\hfill}%
\ignorespaces
}%
\ignorespaces
\setupindenting[no]%
}
\starttext
\input knuth
\bgroup
\IndByText{\bold{Abcdef~}}
\Left{\bold{Abcdef}}
\input knuth
\bgroup
\IndByText{\bold{Klmnopqr~}}
\Left{\bold{Klmnopqr}}
Something
\Left{\bold{Shorter}}
\input knuth
\egroup
\egroup
\stoptext
----
The only thing I cannot get rid of is a warning in the log:
"
warning > \box \IndByTextBox is already defined (\relax it first)
warning > \dimen \IndByTextBoxWd is already defined (\relax it first)
"
How & where to "relax the box"?
Best regards,
Lukas
On Tue, 02 Apr 2019 11:38:18 +0200, Procházka Lukáš Ing.
Hello,
I'm trying to get nested descriptions (using "tab") to form a "cascade". The result should look like:
AAA ababababababab ababababababab
BBB ababababab ababababab
CCC ababab ababab
<--> indent (margin?) of the first nested description in relation to its parent should equal width of parent's head (+ distance?), i.e. width of "AAA ",
<--> indent (margin?) of the second nested description in relation to its parent should equal width of parent's head (+ distance?), i.e. width of "BBB ",
<------> so it should be width of "AAA " + 'width of "BBB " in total.
I'm not able to achieve this. My code so far is (and I also played with various combinations of alternative, margin, hang, indent...):
---- \starttext A
\bgroup \setuptab[headstyle={\bold\tt},sample=123,width=fit,alternative=left] \starttab{abc} \input knuth
\starttab{def} \input knuth
\stoptab \stoptab \egroup
\bgroup \setuptab[headstyle={\bold\tt},sample=123456,width=fit,alternative=hanging] \starttab{ghijkl} \input knuth
\starttab{mnopqr} \input knuth
\stoptab \stoptab \egroup \stoptext ----
- Paragraphs of "abc" and "def": size of indentation of the paragraphs is good in relation to width of head, but paragraph "def" is not "cascaded".
- Paragraphs "ghijkl" and "mnopqr" are "cascaded" well; but width of (margin?) is any - it is not related to the width of the sample text.
So how to combine both approaches to get the desired result?
Best regards,
Lukas
-- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS:nrpt3sn Bezová 1658 147 14 Praha 4 Mob.: +420 702 033 396
On 4/6/2019 11:08 AM, Procházka Lukáš Ing. wrote:
Hello,
I finally found a solution (which doesn't use \description or any other Ctx command) (and which may be clumsy - I'm not so good in tex programming):
---- \def\IndByText#1{% \newbox\IndByTextBox \newdimen\IndByTextBoxWd \setbox\IndByTextBox\hbox{#1}% \IndByTextBoxWd=\wd\IndByTextBox \advance\leftskip by\IndByTextBoxWd \def\Left##1{% \hskip-\IndByTextBoxWd \hbox to\IndByTextBoxWd{##1\hfill}% \ignorespaces }% \ignorespaces \setupindenting[no]% }
\starttext \input knuth
\bgroup \IndByText{\bold{Abcdef~}} \Left{\bold{Abcdef}} \input knuth
\bgroup \IndByText{\bold{Klmnopqr~}} \Left{\bold{Klmnopqr}} Something
\Left{\bold{Shorter}} \input knuth \egroup \egroup \stoptext ----
The only thing I cannot get rid of is a warning in the log:
" warning > \box \IndByTextBox is already defined (\relax it first) warning > \dimen \IndByTextBoxWd is already defined (\relax it first) "
How & where to "relax the box"?
that would eventually make you run out of boxes and dimens just move \newbox\IndByTextBox \newdimen\IndByTextBoxWd outside the macro
Best regards,
Lukas
On Tue, 02 Apr 2019 11:38:18 +0200, Procházka Lukáš Ing.
wrote: Hello,
I'm trying to get nested descriptions (using "tab") to form a "cascade". The result should look like:
AAA ababababababab ababababababab
BBB ababababab ababababab
CCC ababab ababab
<--> indent (margin?) of the first nested description in relation to its parent should equal width of parent's head (+ distance?), i.e. width of "AAA ",
<--> indent (margin?) of the second nested description in relation to its parent should equal width of parent's head (+ distance?), i.e. width of "BBB ",
<------> so it should be width of "AAA " + 'width of "BBB " in total.
I'm not able to achieve this. My code so far is (and I also played with various combinations of alternative, margin, hang, indent...):
---- \starttext A
\bgroup
\setuptab[headstyle={\bold\tt},sample=123,width=fit,alternative=left] \starttab{abc} \input knuth
\starttab{def} \input knuth
\stoptab \stoptab \egroup
\bgroup
\setuptab[headstyle={\bold\tt},sample=123456,width=fit,alternative=hanging]
\starttab{ghijkl} \input knuth
\starttab{mnopqr} \input knuth
\stoptab \stoptab \egroup \stoptext ----
- Paragraphs of "abc" and "def": size of indentation of the paragraphs is good in relation to width of head, but paragraph "def" is not "cascaded".
- Paragraphs "ghijkl" and "mnopqr" are "cascaded" well; but width of (margin?) is any - it is not related to the width of the sample text.
So how to combine both approaches to get the desired result?
Best regards,
Lukas
___________________________________________________________________________________ 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 ___________________________________________________________________________________
-- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (2)
-
Hans Hagen
-
Procházka Lukáš Ing.