ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* using \doifnumberelse in a ToC numbercommand=
@ 2006-08-16 18:48 Stuart Jansen
  2006-08-16 19:46 ` Mojca Miklavec
  2006-08-16 21:36 ` Hans Hagen
  0 siblings, 2 replies; 5+ messages in thread
From: Stuart Jansen @ 2006-08-16 18:48 UTC (permalink / raw)



[-- Attachment #1.1: Type: text/plain, Size: 1567 bytes --]

I asked this question a couple of days ago, but didn't get any takers. I
don't want to be a pest, but it's frustrating to be so close yet unable
to solve this final problem. Let's see if rephrasing the question helps.

I'm trying to use \doifnumberelse in a \setuplist numbercommand= but it
isn't working.

The simplified example below shows the very specific table of contents
layout I'm trying to accomplish. You will note that both the chapter
number and the appendix letter are labeled with "Appendix" when in fact
I want the chapter to be labeled "Chapter".

Does anyone know either (a) how to get \doifnumberelse to work in this
situation or (b) if there's a better way I should have done this
instead.

-----

\def\mychapterlistnumber#1{\vbox{%
  \doifnumberelse{#1}{Chapter}{Appendix} #1\crlf}}
\def\mysectionlistnumber#1{\emspace\emspace}
\def\mysectionlisttext#1{%
  \doifelse{#1}{Lab Tasks}{\hskip-1em\bf#1\hfilll}{#1}}
\setuplist[chapter][width=1em,numberstyle=bold,%
  numbercommand=\mychapterlistnumber,textstyle=bold]
\setuplist[section][width=2em,numbercommand=\mysectionlistnumber,%
  textcommand=\mysectionlisttext]

\starttext
\bgroup{}Table of Contents\egroup\par
\startcolumns[n=2,distance=.3in,balance=no]
\bgroup
\placelist[chapter,section][criterium=all,alternative=b]
\egroup
\stopcolumns
\page
\chapter{Foo}
\section{Bar}
\input knuth
\startappendices
\chapter{Corge}
\section{Grault}
\input zapf
\stopappendices
\stoptext

-----


-- 
Stuart Jansen <sjansen@gurulabs.com>
Guru Labs, L.C.

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 139 bytes --]

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

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

* Re: using \doifnumberelse in a ToC numbercommand=
  2006-08-16 18:48 using \doifnumberelse in a ToC numbercommand= Stuart Jansen
@ 2006-08-16 19:46 ` Mojca Miklavec
  2006-08-16 20:28   ` Stuart Jansen
  2006-08-16 21:36 ` Hans Hagen
  1 sibling, 1 reply; 5+ messages in thread
From: Mojca Miklavec @ 2006-08-16 19:46 UTC (permalink / raw)


On 8/16/06, Stuart Jansen wrote:
> I asked this question a couple of days ago, but didn't get any takers. I
> don't want to be a pest, but it's frustrating to be so close yet unable
> to solve this final problem. Let's see if rephrasing the question helps.
>
> I'm trying to use \doifnumberelse in a \setuplist numbercommand= but it
> isn't working.
>
> The simplified example below shows the very specific table of contents
> layout I'm trying to accomplish. You will note that both the chapter
> number and the appendix letter are labeled with "Appendix" when in fact
> I want the chapter to be labeled "Chapter".
>
> Does anyone know either (a) how to get \doifnumberelse to work in this
> situation or (b) if there's a better way I should have done this
> instead.

My guess is that \doifnunmberelse won't work since it's not only the
number hidden there, but also formatting, conversion, ... etc.

But I have no idea how to do it in some other way. You may take a look
at the following, but it has the side-effect that it will not only be
used in TOC, but also in text which is most probably not what you
want:

\def\mychapterlistnumber#1{\vbox{#1\crlf}}
\def\mysectionlistnumber#1{\emspace\emspace}
\def\mysectionlisttext#1{%
 \doifelse{#1}{Lab Tasks}{\hskip-1em\bf#1\hfilll}{#1}}
\setuplist[chapter][width=1em,numberstyle=bold,%
 numbercommand=\mychapterlistnumber,textstyle=bold]
\setuplist[section][width=2em,numbercommand=\mysectionlistnumber,%
 textcommand=\mysectionlisttext]

\unprotect

\setupsection
  [\s!section-2]
  [\v!appendix\c!conversion=appendixconversion,
   \c!conversion=chapterconversion,]

\protect

\def\appendixconversion#1{Appendix #1}
\defineconversion[appendixconversion][\appendixconversion]

\def\chapterconversion#1{Chapter #1}
\defineconversion[chapterconversion][\chapterconversion]

\starttext
\bgroup{}Table of Contents\egroup\par
\startcolumns[n=2,distance=.3in,balance=no]
\bgroup
\placelist[chapter,section][criterium=all,alternative=b]
\egroup
\stopcolumns
\page
\chapter{Foo}
\section{Bar}
\input knuth
\startappendices
\chapter{Corge}
\section{Grault}
\input zapf
\stopappendices
\stoptext


Mojca

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

* Re: using \doifnumberelse in a ToC numbercommand=
  2006-08-16 19:46 ` Mojca Miklavec
@ 2006-08-16 20:28   ` Stuart Jansen
  0 siblings, 0 replies; 5+ messages in thread
From: Stuart Jansen @ 2006-08-16 20:28 UTC (permalink / raw)



[-- Attachment #1.1: Type: text/plain, Size: 1772 bytes --]

On Wed, 2006-08-16 at 21:46 +0200, Mojca Miklavec wrote:
> My guess is that \doifnunmberelse won't work since it's not only the
> number hidden there, but also formatting, conversion, ... etc.

You're probably right.

> But I have no idea how to do it in some other way. You may take a look
> at the following, but it has the side-effect that it will not only be
> used in TOC, but also in text which is most probably not what you
> want:

Unfortunately, your solution didn't work for me. It did, however, get me
thinking in the right direction. In case anyone is every crazy enough to
follow the same path, here's a much more simple solution that doesn't
even need \doifnumberelse:

-----

\definehead[appendix][chapter]
\def\myappendixlistnumber#1{\vbox{Appendix #1\crlf}}
\def\mychapterlistnumber#1{\vbox{Chapter #1\crlf}}
\def\mysectionlistnumber#1{\emspace\emspace}
\def\mysectionlisttext#1{%
  \doifelse{#1}{Lab Tasks}{\hskip-1em\bf#1\hfilll}{#1}}
\setuplist[appendix][width=1em,numberstyle=bold,%
  numbercommand=\myappendixlistnumber,textstyle=bold]
\setuplist[chapter][width=1em,numberstyle=bold,%
  numbercommand=\mychapterlistnumber,textstyle=bold]
\setuplist[section][width=2em,numbercommand=\mysectionlistnumber,%
  textcommand=\mysectionlisttext]

\starttext
\bgroup{}Table of Contents\egroup\par
\startcolumns[n=2,distance=.3in,balance=no]
\bgroup
\placelist[chapter,appendix,section][criterium=all,alternative=b]
\egroup
\stopcolumns
\page
\chapter{Foo}
\section{Bar}
\input knuth
\writetolist[section]{}{Lab Tasks}
\input douglas
\section{Baz}
\startappendices
\appendix{Corge}
\section{Grault}
\input zapf
\stopappendices
\stoptext

-----

-- 
Stuart Jansen <sjansen@gurulabs.com>
Guru Labs, L.C.

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 139 bytes --]

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

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

* Re: using \doifnumberelse in a ToC numbercommand=
  2006-08-16 18:48 using \doifnumberelse in a ToC numbercommand= Stuart Jansen
  2006-08-16 19:46 ` Mojca Miklavec
@ 2006-08-16 21:36 ` Hans Hagen
  2006-08-16 23:16   ` Stuart Jansen
  1 sibling, 1 reply; 5+ messages in thread
From: Hans Hagen @ 2006-08-16 21:36 UTC (permalink / raw)


Stuart Jansen wrote:
> I asked this question a couple of days ago, but didn't get any takers. I
> don't want to be a pest, but it's frustrating to be so close yet unable
> to solve this final problem. Let's see if rephrasing the question helps.
>
> I'm trying to use \doifnumberelse in a \setuplist numbercommand= but it
> isn't working.
>   
as mojca said ... #1 is not a simple thing (try \showargument{#1})

here's a solution, tricky but in this case ok

\definesymbol[list][whatever][\DoWhatever]

\def\DoWhatever{\doifnumberelse{\currentlistnumber}{Chapter}{Appendix} 
\currentlistnumber}

\setuplist[chapter][width=fit,distance=1em,numberstyle=bold,textstyle=bold,symbol=whatever]

\starttext
    \startfrontmatter
        \title{Table of Contents}
        \placelist[chapter,section][criterium=text,alternative=b]
    \stopfrontmatter
    \startbodymatter
        \chapter{Foo} \section{Bar} \input knuth
    \stopbodymatter
    \startappendices
        \chapter{Corge} \section{Grault} \input zapf
    \stopappendices
\stoptext

some time ago i made this plugable so you're lucky

a better solution would be something

\placelist[chapter,section][criterium=frontmatter,alternative=b,numbercommand=....]
\placelist[chapter,section][criterium=bodymatter,alternative=b,numbercommand=....]
etc

so you may register that (at the collector or the wiki) as a feature 
request


wikifyable anyway
> The simplified example below shows the very specific table of contents
> layout I'm trying to accomplish. You will note that both the chapter
> number and the appendix letter are labeled with "Appendix" when in fact
> I want the chapter to be labeled "Chapter".
>
> Does anyone know either (a) how to get \doifnumberelse to work in this
> situation or (b) if there's a better way I should have done this
> instead.
>
> -----
>
> \def\mychapterlistnumber#1{\vbox{%
>   \doifnumberelse{#1}{Chapter}{Appendix} #1\crlf}}
> \def\mysectionlistnumber#1{\emspace\emspace}
> \def\mysectionlisttext#1{%
>   \doifelse{#1}{Lab Tasks}{\hskip-1em\bf#1\hfilll}{#1}}
> \setuplist[chapter][width=1em,numberstyle=bold,%
>   numbercommand=\mychapterlistnumber,textstyle=bold]
> \setuplist[section][width=2em,numbercommand=\mysectionlistnumber,%
>   textcommand=\mysectionlisttext]
>
> \starttext
> \bgroup{}Table of Contents\egroup\par
> \startcolumns[n=2,distance=.3in,balance=no]
> \bgroup
> \placelist[chapter,section][criterium=all,alternative=b]
> \egroup
> \stopcolumns
> \page
> \chapter{Foo}
> \section{Bar}
> \input knuth
> \startappendices
> \chapter{Corge}
> \section{Grault}
> \input zapf
> \stopappendices
> \stoptext
>
> -----
>
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> ntg-context mailing list
> ntg-context@ntg.nl
> http://www.ntg.nl/mailman/listinfo/ntg-context
>   


-- 

-----------------------------------------------------------------
                                          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] 5+ messages in thread

* Re: using \doifnumberelse in a ToC numbercommand=
  2006-08-16 21:36 ` Hans Hagen
@ 2006-08-16 23:16   ` Stuart Jansen
  0 siblings, 0 replies; 5+ messages in thread
From: Stuart Jansen @ 2006-08-16 23:16 UTC (permalink / raw)



[-- Attachment #1.1: Type: text/plain, Size: 646 bytes --]

On Wed, 2006-08-16 at 23:36 +0200, Hans Hagen wrote:
> some time ago i made this plugable so you're lucky

Thanks! Although my \definehead solution worked in simple documents, in
didn't work in my more complex layout. Your solution works perfectly.

> a better solution would be something
> 
> \placelist[chapter,section][criterium=frontmatter,alternative=b,numbercommand=....]
> \placelist[chapter,section][criterium=bodymatter,alternative=b,numbercommand=....]
> etc
> 
> so you may register that (at the collector or the wiki) as a feature 
> request

Registered. 

-- 
Stuart Jansen <sjansen@gurulabs.com>
Guru Labs, L.C.

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 139 bytes --]

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

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

end of thread, other threads:[~2006-08-16 23:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-08-16 18:48 using \doifnumberelse in a ToC numbercommand= Stuart Jansen
2006-08-16 19:46 ` Mojca Miklavec
2006-08-16 20:28   ` Stuart Jansen
2006-08-16 21:36 ` Hans Hagen
2006-08-16 23:16   ` Stuart Jansen

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