On Fri, 3 Nov 2006 01:08:46 -0500 (EST)
Aditya Mahajan <[EMAIL PROTECTED]> wrote:

> On Thu, 2 Nov 2006, Sanjoy Mahajan wrote:
> 
> > I was trying out line breaks for long titles (at least, long when set in
> > 36 or 48pt text), as well as have pdf bookmarks, so I defined a \1
> > shorthand local to the chapter heading:
> 
> Maybe I am missing something here, but why not just use \\. Inside 
> titles it is defined as \crlf\ignorespaces
> 
> 
> > ======================================================================
> > \setupinteraction[state=start]
> > \placebookmarks[chapter]
> > \setupinteractionscreen[option=bookmark]
> >
> > \setuphead[chapter][before={\bgroup\def\1{\hfil\break}}, after={\egroup}]
> >
> > \starttext
> > \chapter{Long\1 title}
> > hello
> >
> > \stoptext
> > ======================================================================
> 
> 
> > If I inline the \1, as in \chapter{Long\hfil\break title}, then it's
> > mostly fine except that the bookmark has "hfil penalty ..."  Is there's
> > another way to avoid that problem?  Perhaps a magic option that says
> > what the bookmark should be, the way one can tell \index what to typeset
> > in the index when it is different from the inline text.
> 
> Usual way is
> 
> \appendtoks\def\1{}\to\simplifiedcommands
> 
> but something seems to be broken. It seems that you can not use "any" 
> macro inside a chapter title, while using bookmarks. Here is a simple 
> test file.
> 
> \setupinteraction[state=start]
> \placebookmarks[chapter]
> \setupinteractionscreen[option=bookmark]
> 
> \def\macro{long word}
> 
> \starttext
> \chapter{Long\macro title}
> \stoptext
> 

You can also make a extra bookmarkentry by hand.

\starttext
\chapter{A rather long title}
\bookmark{Short title}
\stoptext

> I get same error as you (ConTeXt ver: 2006.11.01 09:59 MK II)
> 
> > One solution is to forbid hyphens during the \chapter (with before= and
> > after= definitions) and also shrink the \hsize enough so that tex line
> 
> You do not require before...after for this. Something like
> 
> \setuphead[chapter][align={nothyphenated,stretch,tolerant}]
> 
> should work.
> 
> > breaks where I want, but that method requires unintuitive,
> > fontsize-dependent dimension guessing for each chapter.  Putting in line
> > breaks by hand is not too bad.  Plus one might want to break the lines
> > according to meaning, which does not always produce the same results as
> > where breaks would go according to line length.
> 
> I agree, for headings, it is better to do linebreak by hand.
> 
> > But meanwhile trying the hack method above, I get this error
> >
> > (./q.tuo) (./q.tuo)
> > ! Undefined control sequence.
> > <argument> Long\1
> >                title
> > \sanitizePDFdocencoding ...docencoding \edef #2{#1
> >                                                }
> > \doPDFinsertbookmark ...oding #3\to \bookmarktext
> >                                                \stripstring \bookmarktext..
> >
> > \doplacebookmarks ...okmarkelement \flushbookmark
> >                                                \egroup \else \expanded {\..
> > <to be read again>
> >                 \setupinteractionscreen
> > l.3 \setupinteractionscreen
> >                         [option=bookmark]
> >
> > It's from this line in q.tuo
> >
> >  \listentry{chapter}{1}{1}{Long\1 title}{2--0-1-0-0-0-0-0--1}{1}
> >
> > and the \1 is not defined during \listentry, only during the \chapter.
> >
> > I didn't have a problem when the same code was part of a product (each
> > component being chapter in a book, with the \setuphead in an environment
> > file) -- only had it when I compiled one component, which is how I got
> > to the test case above.
> >
> > [All with ConTeXt  ver: 2006.10.24 13:47 MK II  fmt: 2006.10.24]
> >
> > -Sanjoy
> _______________________________________________
> ntg-context mailing list
> ntg-context@ntg.nl
> http://www.ntg.nl/mailman/listinfo/ntg-context
_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to