From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/27340 Path: news.gmane.org!not-for-mail From: Vit Zyka Newsgroups: gmane.comp.tex.context Subject: Re: feature request: \everytrypass Date: Fri, 21 Apr 2006 14:57:42 +0200 Message-ID: <4448D6C6.2010202@seznam.cz> References: <4447672D.1050108@seznam.cz> <44476A04.6090105@gmx.net> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1145624287 4454 80.91.229.2 (21 Apr 2006 12:58:07 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 21 Apr 2006 12:58:07 +0000 (UTC) Original-X-From: ntg-context-bounces@ntg.nl Fri Apr 21 14:58:06 2006 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from ronja.vet.uu.nl ([131.211.172.88] helo=ronja.ntg.nl) by ciao.gmane.org with esmtp (Exim 4.43) id 1FWvBr-0005ch-5i for gctc-ntg-context-518@m.gmane.org; Fri, 21 Apr 2006 14:56:52 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 93156127A0; Fri, 21 Apr 2006 14:56:50 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 13362-01; Fri, 21 Apr 2006 14:56:47 +0200 (CEST) Original-Received: from ronja.vet.uu.nl (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 42D6B1279B; Fri, 21 Apr 2006 14:56:47 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 28A231279B for ; Fri, 21 Apr 2006 14:56:45 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 07821-02 for ; Fri, 21 Apr 2006 14:56:44 +0200 (CEST) Original-Received: from smtp.seznam.cz (smtp.seznam.cz [212.80.76.43]) by ronja.ntg.nl (Postfix) with SMTP id 24C2812783 for ; Fri, 21 Apr 2006 14:56:43 +0200 (CEST) Original-Received: (qmail 25185 invoked from network); 21 Apr 2006 12:56:43 -0000 Original-Received: from unknown (HELO ?127.0.0.1?) (typokvitek@seznam.cz@62.240.166.134) by tic.go.seznam.cz with ESMTPA; 21 Apr 2006 12:56:43 -0000 X-Seznam-User: typokvitek@seznam.cz User-Agent: Thunderbird 1.5 (Windows/20051201) Original-To: mailing list for ConTeXt users In-Reply-To: <44476A04.6090105@gmx.net> X-Antivirus: avast! (VPS 0616-1, 18.04.2006), Outbound message X-Antivirus-Status: Clean X-Virus-Scanned: amavisd-new at ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.7 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl X-Virus-Scanned: amavisd-new at ntg.nl Xref: news.gmane.org gmane.comp.tex.context:27340 Archived-At: Peter Rolf wrote: > Vit Zyka wrote: >> Dear ConTeXters, >> >> I am counting occurence of some macro in the text. Problem is when this >> macro is inside \bTABLE (and may be somewhere else). Due to try passes >> the increment is counter is incremented more then once and the result is >> multiplied. >> >> It is possible to implement some \everytrypass in which user can (e.g.) >> null incrementing? Or there is some another solution? >> >> Thanks >> Vit >> >> Minimal example: >> ----------------------------------------------- >> \newcount\C >> \def\doIncrement{\global\advance\C by1\relax} > > \def\doIncrement{\iftrialtypesetting > \else\global\advance\C by1\relax\fi}% > > donno if this works correctly inside a TABLE... Oh, it is already done! ... How I was able to think in opposite... Seems it works correctly in TABLE. ... but there is (at least) two \trialtypesettingtrue missing in caption composition. Bellow is the patch (see VZ comment marks). Thanks Peter Vit -------------------------------------------------- \def\dopreparestackcaptionaut#1#2#3#4% {\doifsomething\@@kjkjalign {\ExpandBothAfter\doifnotinset\v!middle\@@kjkjalign {\let\captionovershoot\!!zeropoint}}% \edef\captionhsize{\the\wd\tempfloatbox}% \ifdim\captionhsize>\hsize % float is wider than \hsize \dosetraggedvbox\@@kjkjalign \setbox\scratchbox\raggedbox % trial run {\hsize\captionhsize \trialtypesettingtrue % VZ \notesenabledfalse \putcompletecaption{#4}{#2}{#3}{0}}% \ifdim\ht\scratchbox>\lineheight % more lines \dosetraggedvbox\@@kjkjalign \setbox\tempcaptionbox\raggedbox {\hsize\captionhsize \advance\hsize -\captionovershoot\relax \ifdim\hsize<\captionminwidth\relax \hsize\captionhsize \fi \putcompletecaption{#4}{#2}{#3}{0}}% \else \setbox\tempcaptionbox\raggedbox {\hsize\captionhsize \putcompletecaption{#4}{#2}{#3}{0}}% \fi \else % float is smaller of equal to \hsize \ifdim\captionhsize<\captionminwidth\relax \scratchdimen\captionminwidth % float smaller than min width \edef\captionhsize{\the\scratchdimen}% \fi \setbox\scratchbox\vbox % test with overshoot {\scratchdimen\captionhsize \trialtypesettingtrue % VZ \advance\scratchdimen \captionovershoot \advance\scratchdimen 3em % an average word length \ifdim\scratchdimen<\hsize \hsize\scratchdimen \fi \notesenabledfalse \putcompletecaption{#4}{#2}{#3}{0}}% \ifdim\ht\scratchbox>\lineheight % at least an average word longer than a line \dosetraggedvbox\@@kjkjalign \setbox\tempcaptionbox\raggedbox {\scratchdimen\captionhsize \advance\scratchdimen \captionovershoot \ifdim\scratchdimen<\hsize \hsize\scratchdimen \fi \putcompletecaption{#4}{#2}{#3}{0}}% \else % just over a line, don't use an overshoot \expanded{\doifcommonelse{\@@kjkjalign}}{\v!left,\v!right,\v!flushleft,\v!flushright} {\dosetraggedvbox\@@kjkjalign \setbox\tempcaptionbox\raggedbox {\hsize\captionhsize % strange : \raggedcenter \putcompletecaption{#4}{#2}{#3}{0}}} {% nicer \setbox\tempcaptionbox\cbox {\hsize\captionhsize \putcompletecaption{#4}{#2}{#3}{0}}}% \fi \fi} ------------------------------------------------------------ > > Greets, Peter > >> % \def\nullIncrement{\let\doIncrement\relax} >> % \appendtoks \nullIncrement to \everytrypass >> >> \starttext >> \bTABLE >> \bTR\bTD Counter\doIncrement\eTD\eTR >> \eTABLE >> \message{ <> }% >> \stoptext >> ------------------------------------------------