From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/10873 Path: main.gmane.org!not-for-mail From: Simon Pepping Newsgroups: gmane.comp.tex.context Subject: Expansion problem in natural table Date: Sat, 8 Feb 2003 21:52:54 +0100 Sender: ntg-context-admin@ntg.nl Message-ID: <20030208205254.GA1686@scaprea> Reply-To: ntg-context@ntg.nl NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: main.gmane.org 1044737947 13970 80.91.224.249 (8 Feb 2003 20:59:07 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sat, 8 Feb 2003 20:59:07 +0000 (UTC) Return-path: Original-Received: from ref.vet.uu.nl ([131.211.172.13] helo=ref.ntg.nl) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18hc3z-0003cs-00 for ; Sat, 08 Feb 2003 21:59:03 +0100 Original-Received: from ref.ntg.nl (localhost.localdomain [127.0.0.1]) by ref.ntg.nl (Postfix) with ESMTP id 4C71010B55; Sat, 8 Feb 2003 22:01:08 +0100 (MET) Original-Received: from hgatenl.hobby.nl (ns.hobby.nl [212.72.224.8]) by ref.ntg.nl (Postfix) with ESMTP id C858B10B55 for ; Sat, 8 Feb 2003 21:59:34 +0100 (MET) Original-Received: from hgatenl.hobby.nl (localhost [127.0.0.1]) by hgatenl.hobby.nl (8.12.6/8.12.2) with ESMTP id h18KxYWG020611 for ; Sat, 8 Feb 2003 21:59:34 +0100 (CET) (envelope-from spepping@scaprea.hobby.nl) Original-Received: (from uucp@localhost) by hgatenl.hobby.nl (8.12.6/8.12.2/Submit) with UUCP id h18KxY9I020610 for ntg-context@ntg.nl; Sat, 8 Feb 2003 21:59:34 +0100 (CET) Original-Received: from simon by scaprea.salix.nl with local (Exim 3.35 #1 (Debian)) id 18hby3-0000wY-00; Sat, 08 Feb 2003 21:52:55 +0100 Original-To: ntg-context@ntg.nl Mail-Followup-To: ntg-context@ntg.nl Content-Disposition: inline User-Agent: Mutt/1.3.28i Errors-To: ntg-context-admin@ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.0.13 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.comp.tex.context:10873 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:10873 I have an expansion problem in natural tables. I need to have this: \bTD\XMLDBcontinuepartrue\ignorespaces\XMLflush{revremark}\eTD but \XMLflush{revremark} must be expanded. When I do that using \expanded, \expanded{\bTD\noexpand\XMLDBcontinuepartrue\ignorespaces\XMLflush{#1}}\eTD I get errors when I have compound characters: \XMLDBcontinuepartrue\ignorespaces Kleine \dobuildtextaccent\char 127 A{}nderung It should be \dobuildtextaccent{\char 127} A for it to be valid. Or it should be \buildtextaccent\textdiaeresis A In other words, \XMLflush{#1} should be expanded, but not all the way down. How do I get that? This is my hack, but it is awful because it relies on an exact number of expansions: \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter\!!stringa \expandafter\expandafter\expandafter{\csname XML:dat:#1\endcsname} \@EA\bTD\@EA\XMLDBcontinuepartrue\@EA\ignorespaces\!!stringa\eTD} Error log: \XMLDBshowElementTD #1->\expanded {\bTD \noexpand \XMLDBcontinuepartrue \ignore spaces \XMLflush {#1}}\eTD #1<-revremark \expanded #1->\long \edef \@@expanded {\noexpand #1}\@@expanded #1<-\bTD \noexpand \XMLDBcontinuepartrue \ignorespaces \XMLflush {revremark} {\long} {\noexpand} {\noexpand} \XMLflush #1->\csname \@@XMLdata :#1\endcsname #1<-revremark {\csname} \@@XMLdata ->\@@XML dat \@@XML ->XML: \XML:dat:revremark ->Kleine Änderung Ä->\Adiaeresis {} \Adiaeresis ->\dohandlecharacter {Adiaeresis} \dohandlecharacter #1->\csname \ifcsname \characterencoding #1\endcsname \chara cterencoding \else \nocharacterencoding \fi #1\endcsname #1<-Adiaeresis {\csname} {\ifcsname} \characterencoding ->@default@ {true} \characterencoding ->@default@ {\else} \@default@Adiaeresis ->\buildtextaccent \textdiaeresis A \buildtextaccent ->\ifignoreaccent \expandafter \nobuildtextaccent \else \expan dafter \dobuildtextaccent \fi {\iffalse} {false} {\expandafter} {\fi} \textdiaeresis ->\dohandlecharacter {textdiaeresis} \dohandlecharacter #1->\csname \ifcsname \characterencoding #1\endcsname \chara cterencoding \else \nocharacterencoding \fi #1\endcsname #1<-textdiaeresis {\csname} {\ifcsname} \characterencoding ->@default@ {true} \characterencoding ->@default@ {\else} \@default@textdiaeresis ->\char 127 \@@expanded ->\bTD \XMLDBcontinuepartrue \ignorespaces Kleine \dobuildtextaccen t \char 127 A{}nderung \bTD ->\dodoubleempty \parseTD ... snip ... \parseTD [#1][#2]#3\eTD ->\getparameters [\@@tbl ][\c!ny =\tblnr ,\c!nx =\tblnc ,nc=1,nr=1,#1]\doloop {\increment \currentcol \doifnottbltag \maximumrow \curr entcol \exitloop }\let \row \maximumrow \let \col \currentcol \dorecurse {\tbln y } {\let \col \currentcol \settblcol \row \col \tblnx \ifnum \tblnx >\maximumr owspan \relax \let \maximumrowspan \tblnx \fi \dorecurse {\tblnx } {\settbltag \row \col \tblnone \increment \col }\increment \row }\decrement \col \ifnum \co l >\maximumcol \relax \let \maximumcol \col \fi \settbltag \maximumrow \current col \tblcell \settblcol \maximumrow \currentcol \tblnx \settblrow \maximumrow \ currentcol \tblny \edef \celltag {{\maximumrow }{\currentcol }}\@EA \settbltxt \@EA \maximumrow \@EA \currentcol \@EA {\@EA \handleTBLcell \celltag [#1]{#3}} #1<- #2<- #3<-\XMLDBcontinuepartrue \ignorespaces Kleine \dobuildtextaccent \char 127 A{} nderung ... snip ... \dobuildtextaccent #1#2->{\let \char \normalaccent #1\let \char \normalchar #2} #1<-\char #2<-1 {begin-group character {} {\let} {\accent} ! Missing number, treated as zero. \let \dobuildtextaccent ... \char \normalaccent #1\let \char \normalchar #2} ...es Kleine \dobuildtextaccent \char 1 27 A{}nderung -- Simon Pepping email: spepping@scaprea.hobby.nl