<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On May 6, 2012, at 4:20 AM, Vafa Khalighi wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">What is the problem with the following minimal example:<div><br></div><div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">
</p><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">
</p><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\documentclass{article}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\usepackage{color}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\makeatletter</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\newcount\n</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\n=`\a \loop \XeTeXcharclass \n=4 \ifnum\n<`\z \advance\n by 1 \repeat</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\XeTeXinterchartoks 0 4 {\startcolor}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\XeTeXinterchartoks 255 4 {\startcolor}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\XeTeXinterchartoks 255 0 {\finishcolor}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\XeTeXinterchartoks 4 0 {\finishcolor}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\newif\ifcolor</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\newcommand{\startcolor}{\ifcolor\else\bgroup\color{red}\colortrue\fi}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\newcommand{\finishcolor}{\ifcolor\egroup\fi}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\makeatother</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\XeTeXinterchartokenstate=1</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\begin{document}</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">
</p><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">this is a test</div><div><br class="webkit-block-placeholder"></div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">\end{document}</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; "><br></div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">
It produces the following error:</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; "><br></div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">

</p><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">! Missing } inserted.</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; "><inserted text> </div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">                }</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">l.19 \end{document}</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">                   </p><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">?</div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; "><br></div><div style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px; ">
However if "this is a test" is replaced with "this is a test.", then I get no error. How should I fix this? </div></div></div></blockquote><br></div><div>Susan's solution:</div><div><pre style="white-space: pre-wrap; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">\newcommand{\finishcolor}{\ifcolor\else\egroup\fi}</pre><div>does get rid of the problem  with the missing }, but *everything* turns red.  Things seem to work the way they should by accounting for the transition from XeTeXcharclass 4 to 255:</div><div><br></div><div>%%%</div><div><br></div><div><div>% !TEX encoding = UTF-8 Unicode</div><div>% !TEX TS-program = XeLaTeX</div><div><br></div><div>\documentclass[12pt]{article}</div><div>\usepackage{color}</div><div>\usepackage{xltxtra}</div><div>\setmainfont{Centaur MT Pro}</div><div>\makeatletter</div><div>\newcount\n</div><div>\n=`\a \loop \XeTeXcharclass \n=4 \ifnum\n<`\z \advance\n by 1 \repeat</div><div>\XeTeXinterchartoks 0 4 {\startcolor}</div><div>\XeTeXinterchartoks 255 4 {\startcolor}</div><div>\XeTeXinterchartoks 255 0 {\finishcolor}</div><div>\XeTeXinterchartoks 4 0 {\finishcolor}</div><div>\XeTeXinterchartoks 4 255 {\egroup}</div><div>\newif\ifcolor</div><div>\newcommand{\startcolor}{\ifcolor\else\bgroup\color{red}\colortrue\fi}</div><div>\newcommand{\finishcolor}{\ifcolor\egroup\fi}% VK</div><div>\makeatother</div><div>\XeTeXinterchartokenstate=1</div><div>\begin{document}</div><div>this is a te*st and séåome more* text 1234 objects</div><div>\end{document}</div></div><div><br></div><div>%%%</div><div><br></div><div>Thanks for the interesting puzzle.</div><div><br></div><div>Stephen Moye</div></div><br></body></html>