using \doifnumberelse in a ToC numbercommand=
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
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
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
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 -----------------------------------------------------------------
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
participants (3)
-
Hans Hagen
-
Mojca Miklavec
-
Stuart Jansen