;ò )äHEc@s›dkZdkZdkZdkZdkZdkZdklZlZl Z l Z l Z l Z l Z dklZlZlZlZdklZdefd„ƒYZdefd„ƒYZdefd „ƒYZd efd „ƒYZe d ƒZe d ƒZe dƒZe dƒZdZeej o dZ ndZ e!hdd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<d d<d!d<d"d<d#d<d$d<d%d<d&d<d'd<d(d<d)d<d*d<d+d<d,d<d-d<d.d<d/d<d0d<d1d<d2d<d3d<d4d<d5d6<d7d<d8d<d9d<d:d<d;d<d<d<d=d<d>d<d?d<d@d6<dAd<dBd6<dCd<dDd6<dEd<dFdG<dHd6<dId<dJd6<dKd6<dLd<dMd6<ƒZ"dNZ#dOeZ$dP„Z%dQ„Z&dR„Z'dS„Z(dT„Z)dU„Z*dddV„Z+dW„Z,dS(XN(s fileNameForsimageExtensionsuniques workingDirs runCommandslogs findinpath(sImages ImageFiles ImageChopssPngImagePlugin(sescapesLatexSyntaxErrorcBstZRS(N(s__name__s __module__(((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysLatexSyntaxError ssLatexRenderErrorcBstZRS(N(s__name__s __module__(((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysLatexRenderError ssGhostscriptErrorcBstZRS(N(s__name__s __module__(((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysGhostscriptError ss AlignErrorcBstZRS(N(s__name__s __module__(((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pys AlignError ssdvipngsgsslatexsdvipsi f72.269999999999996iHii ii i iiiiiiiiiiiiiiiiiiii i!i"i#i$i%i&i'i(i)i*iÿÿÿÿi+i,i-i.i/i0i1i2i3i4i5i6i7i8i9i:ii;i<i=i>i?i@s^(\$(?!\$)|\\\()$sû \documentclass[%dpt,notitlepage]{article} \usepackage{amsmath} \usepackage{amsfonts} \usepackage[all]{xy} \newenvironment{latex}{}{} \oddsidemargin -86pt \headheight 0pt \topmargin -96pt \nofiles \begin{document} \pagestyle{empty} %%s \end{document} cCs0tiitiitt||tƒƒƒ SdS(N( sosspathsexistssjoins workingDirs fileNameForscodes charheightpxsimageExtension(scodes charheightpx((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysimageDoesNotExist<sc sõ|idtƒpt}tid|ƒ}|ot|idƒƒ}nd}ˆt ||} d} t‡d†t|ƒƒ}| odSntidd |d ƒ} x8|dt|ƒ!D]#}| d tidd |ƒ} qÁWyt| | ˆ|ƒWn8tj o,}t|ƒ} t| d ƒt| ƒSnXt| ˆƒ}t|| ƒxwt t!|t"d t|ƒƒƒD]T\}}t|ˆt$ƒ} d ||df}ti'd|ƒoát(i)t*i+i,t-|ƒƒ} yt/| ˆ|ƒ} WnLt1t2fj o:}t3t|ƒd|dt*i+i,t-|ƒƒ‚nX| i4djo+t5i6| i7dƒƒ}| i9|ƒ} n| i:t*i+i,t-| ƒdƒqxt*i;t*i+i,t-|ƒt*i+i,t-| ƒƒqxWt*i<dt-|fƒt| ƒSdS(s[ take a list of strings of latex code, render the images that don't already exist. s latexTemplates(\\documentclass\[[^\]]*?(\d+)pt[^\]]*?\]ii scs t|ˆƒS(N(simageDoesNotExistsxs charheightpx(sx(s charheightpx(sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysNsNs ^(\$|\\\()s\1|~ is \newpage sLatexSyntaxErrors %s-%03d.pngs ^(?:\$|\\\()s The code was: s in the file %ssRGBAsLsPNGs:cd %s; rm -f *.log *.aux *.tex *.pdf *.dvi *.ps %s-???.png(=skwsgetsdefaultLatexTemplates latexTemplatesressearchsmsintsgroups charsizepts charheightpxs ptperinchsresfudgesresserrorssfiltersuniques latexCodeLists codeToRenderssubs unifiedCodeslenscodesrunLatexsLatexSyntaxErrorsdatasstrslogsescapes fileNameForsfNamesdviPngsmapsNonesrangesisimageExtensions newFileNamesimnamesmatchsImagesopensosspathsjoins workingDirsimsaligns alignfudges AlignErrors ValueErrorsLatexRenderErrorsmodes ImageChopssinvertsconvertsalphasputalphassavesrenamessystem(s latexCodeLists charheightpxs alignfudgesresfudgeskwscodes latexTemplates codeToRenders charsizepts newFileNamesimserrorssress unifiedCodesfNamesalphasdatasimnamesism((s charheightpxsN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysrenderNonexistingImages@sR  !   " 6#2cCs d„} t||dƒ} t||dƒ} t||dƒ}dt| f}| t ƒt t i i t | ƒdƒ}|i||fƒ|iƒt|ƒ\} }} | oW| d|}tid|titiƒ} | o| id ƒ}nt|ƒ‚ndS( NcCsXti|tiƒ oti|ƒnti|tiƒ otid|ƒndS(s-Ensure this directory exists and is writable.schmod u+rwx %sN(sossaccessspathsF_OKsmkdirsW_OKssystem(spath((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysensureWorkingDirectoryqs s.texs.dvis.pss%s %ssws s!.*\?i(sensureWorkingDirectorys fileNameForscodes charheightpxs texfileNames dvifileNames psfileNames latexpathscmdLines workingDirsopensosspathsjoinsfileswrites latexTemplatescloses runCommandserrsstdoutsstderrsoutsressearchs MULTILINEsDOTALLsgroupsLatexSyntaxError(scodesress charheightpxs latexTemplatesstdouts psfileNamesfilesoutscmdLines dvifileNamesensureWorkingDirectoryserrsstderrs texfileName((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysrunLatexps    cCs|d|df\}}|d}|d} d} ttj o©dt|||f}t |ƒ\} }}g}| odSntid|ƒ} x9| D]1}|o|d7}n|i|idƒƒq›Wd ti|dƒ} nd } d t| || d |f}t |ƒ\} }}| o2td | ||fdƒt|d|ƒ‚n| o)tdttid|ƒƒdƒ}nt| |dƒ} t| |ƒx`|D]X}t!i"it#|| ƒ}t!i"it#|t%|ƒƒ}t!i'||ƒ| d7} q²WdS(Ns.dvis -%03d.pngs -gs-%03d.pngs-gsis<%s --truecolor -bg Transparent -picky -D %f -Ttight -o %s %ss\[(\d+) not rendered\]s,s-pp ss%s %s -R -D %f -o %s %ss.pss %s %s %s s DVIPSErrors s\[\d+\]spngalpha((sfNamesinputsoutputs gspngfnamespsfnamesis dvipngpathsNonesresscmdLines runCommandserrsstdoutsstderrsppredosresfinditersmatchersmsappendsgroupsstringsjoinsppopts dvipspathslogs DVIPSErrorsrangeslensfindallsrunGhostscriptscenterspagesosspaths workingDirsoldfnamesintsnewfnamesrename(sfNamesressstdoutsoldfnamescmdLinesinputsppredosnewfnames gspngfnamesmatcherspsfnamesppoptserrsismsstderrsoutputspage((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysdviPngŠs@  ) c Cs˜|d|df\}}dtdd}|||||f}t|ƒ\}}}|o2t d|||fdƒt |d|ƒ‚n|SdS( Ns.pss -%03d.pngs%%s -dDOINTERPOLATE -dTextAlphaBits=4 s'-dGraphicsAlphaBits=4 -r%f -sDEVICE=%s s,-dBATCH -dNOPAUSE -dQUIT -sOutputFile=%s %s s %s %s %s sGhostscriptErrors ( sfNamesinputsoutputsgspathscmdLinesressdevices runCommandserrsstdoutsstderrslogsGhostscriptError( sfNamesressdevicesstderrserrsstdoutscmdLinesinputsoutput((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysrunGhostscript¯scCs`tidt||dƒƒ} |d}x1tdt| ƒdƒD]} || d}t t ti d| d| dƒiƒƒ\}}} }tt| ||tƒƒ}tt|||tƒƒ} |djo d}n| djo d} ntt||tƒƒ}tt||tƒƒ}titiit|ƒƒ}||id|| |||id|f}t tt t|ƒƒ}|i!|ƒ}ti"d|id d d fƒ}|i$|ddfƒ|i%djoPt&i'|i(d ƒƒ} ti"d|idddfƒ}|i+| ƒ|}n|i,tiit|ƒd ƒqBWdS( Ns sbboxs -%03d.pngiiis?%%HiResBoundingBox: ([0-9\.]+) ([0-9\.]+) ([0-9\.]+) ([0-9\.]+)sRGBAiÿsLsPNG(-sressplitsrunGhostscriptsfNamesressbboxesspngfnamesrangeslensisfilesmapsfloatsmatchsgroupssstart_xsstart_ysend_xsend_ysintsrounds ptperinchsxsizesysizesImagesopensosspathsjoins workingDirsimssizescropdimscropsnewsim2spastesmodes ImageChopssinvertsconvertsalphasim3sputalphassave(sfNamesressxsizesimsfilespngfnamesim3scropdimsend_ysend_xsbboxessalphasisysizesim2sstart_xsstart_y((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pyscenter¼s8  *  0!!  cCsEd}d}d}d}d}d} d}d}|i djo d} nd|i djodddf} nA|i djoddddf} n|i djo d} nxt d|i dƒD]©}|djoÎx“t d|i d ƒD]„}|djo |djo+|i||fƒ| jo |}Pq9n|djo|i||fƒ| jo|}|}qîqîW|djo |djo|i d }qmqÄ|djoa|}x=t ||ƒD],}|i||fƒ| jo d}qÈqÈW|djo |}qmqÄxEt d|i d ƒD]-}|i||fƒ| jo |}Pq*q*W|djoPqÄqÄWtd |||||fƒtd |i d|i d fd ƒtd ƒ‚||d} ||dd} | | 7} ti|ƒo| t|d7} nd}||}d}x€t |tti||d |dƒƒƒD]J}|d 7}x6t ||ƒD]%}|t|i||fƒƒ7}qtWPqTWd }d} xnt |d ||d |ddƒD]@}x6t ||ƒD]%}| t|i||fƒƒ7} qëWPqÕWd } |djo | djot || ƒ|| }nd}| |7} | |7} |i d | }| }||jod|}||} nd|}||}|d }t|ƒ}d}t&i'd|i d||fdddfƒ}|i)|| ||i d||i d |fƒ|SdS(NiÿÿÿÿisPsRGBiÿsRGBAiþsLisDdotstartx=%d, dotendx=%d, dotstarty=%d, dotendy=%d, letterstartx=%d s!Unable to find dot. (size=%dx%d) srenderNonExistingImagess7Image appears to be blank or not have an alignment dot.f2.0f7.0f144.0if0.0(*s dotstartxsdotendxs dotstartysdotendyswidentops widenbottoms letterstartxschopxsimsmodeswhitesrangessizesxsysgetpixels maybedotendxslogs AlignErrors centerlines dotcenters centerfudgeshas_keys charheightpxs dottophalfs dotlinesizes dottoplinessintsmathsceilscabss dotbottomhalfsfloats dotpixmisss alignfudges bottomsizestopsizes newheightsImagesnewsim2spaste(sims charheightpxs alignfudges dottophalfs dotstartxs dotstartys newheights dotlinesizeschopxs dotcenterswhites centerlines dotbottomhalfs widenbottoms dottopliness dotpixmisssxs letterstartxstopsizeswidentops maybedotendxsim2sysdotendysdotendxs bottomsize((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pysalign×s¨    )    %   / #'#        /3cCs˜d}t|ƒtfƒjoqx-tddƒD]}|||||7}q/Wt|ƒdjoti|ƒ|ddSq”ti|ƒSn|SdS(Nf0.0iiif255.0(ssqstypesAsrangesislensmathssqrt(sAsissq((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pyscabs.s(-sosssyssreszLOGsstringsmathsutils fileNameForsimageExtensionsuniques workingDirs runCommandslogs findinpathsPILsImages ImageFiles ImageChopssPngImagePluginscgisescapes ExceptionsLatexSyntaxErrorsLatexRenderErrorsGhostscriptErrors AlignErrors dvipngpathsgspaths latexpaths dvipspaths charsizeptsNones ptperinchsdicts centerfudgeslatexInlinePatternsdefaultLatexTemplatesimageDoesNotExistsrenderNonexistingImagessrunLatexsdviPngsrunGhostscriptscentersalignscabs('s centerfudgesGhostscriptErrorsPngImagePluginsgspaths charsizeptsescapes ImageChopsscabssdefaultLatexTemplateslogsrenderNonexistingImagess workingDirsreslatexInlinePatterns dvipspathsrunGhostscriptsmathsrunLatexs dvipngpathsstringsimageExtensionsimageDoesNotExistssyss ptperinchsuniques runCommandsLatexSyntaxErrorsLatexRenderErrors findinpaths latexpathsdviPngscentersImages ImageFileszLOGs AlignErrors fileNameForsossalign((sN/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/latexwiki/latexWrapper.pys?s661       ÿü   0  % W