;ò )äHEc@s dZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dk l Z de fd„ƒYZ de fd„ƒYZde fd„ƒYZd e fd „ƒYZd d d „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZdS(s/ Render a pamphlet file as .pamphlet, .dvi and .pdf files $Id: pamphletWrapper.py,v 0.1 2005/10/07 Bill Page $ TODO: 1) Preprocess egin{axiom} ... \end{axiom} pseudo enviroments also {spad} {aldor} and {reduce} as in 'axiomWrapper.py' 2) Problem with dvipdf so changed to dvipdfm. Hyperref ok? N(sescapesLatexSyntaxErrorcBstZRS(N(s__name__s __module__(((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pysLatexSyntaxErrorss NowebErrorcBstZRS(N(s__name__s __module__(((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys NowebErrorss DviPdfErrorcBstZRS(N(s__name__s __module__(((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys DviPdfErrorss DviPngErrorcBstZRS(N(s__name__s __module__(((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys DviPngErrorssicCstid|||ƒdS(NsLatexWikiDebugLog(szLOGsLOGsseverityssummarysmessage(smessagessummarysseverity((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pyslogscCsvtid|||||fƒd}yt||ƒWn8tj o,}t|ƒ}t |dƒt |ƒSnXyt ||ƒWn8t j o,}t|ƒ}t |dƒt |ƒSnXyt ||ƒWn8t j o,}t|ƒ}t |dƒt |ƒSnXyt ||ƒWn8tj o,}t|ƒ}t |dƒt |ƒSnX|djoPyt||ƒWqÿtj o,}t|ƒ}t |dƒt |ƒSqÿXnMyt||ƒWn8tj o,}t|ƒ}t |dƒt |ƒSnXyt||ƒWn8tj o,}t|ƒ}t |dƒt |ƒSnXtid||||fƒt |ƒSd S( s render body source as PDF. s1cd '%s'; rm -f '%s.pdf' '%s.ps' '%s.dvi' '%s.tex'ss NowebErrorsLatexSyntaxErrors DviPdfErrorsdvipdfms DviPngErrors)cd '%s'; rm -f '%s.aux' '%s.toc' '%s.out'N(sosssystemsfDirsfNameserrorssrunNowebs NowebErrorsdatasstrslogsescapesrunLatexsLatexSyntaxErrorsrunDviPss DviPdfErrors pdfMethods runDviPdfms runPs2Pdfs runDviPngs DviPngError(sfDirsfNames pdfMethodserrorssdata((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys renderPDFs`                cCsBti|iƒtiƒ}ti|iƒti|tiBƒdS(N(sfcntlsfsfilenosF_GETFLsflsF_SETFLsoss O_NONBLOCK(sfsfl((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pysmakeNonBlockingQsc Cs†ti|dƒ}|iiƒt|iƒt|iƒg}g}t }t }xÝ|o| oÍti|i|igggƒ\} } }xœ| D]”} | |ijo7|iiƒ} | djo t}q(|i| ƒq”| |ijo7|iiƒ} | djo t}q(|i| ƒq”q”WqTW|iƒ}ti|ƒpti|ƒ }|ti|dƒti|dƒfSdS(Nis(spopen2sPopen3scmdLinesprogramstochildsclosesmakeNonBlockings fromchildschilderrsstderrsstdoutsFalseserreofsouteofsselectsreadmeswritmesxmesoutputsreadstextsTruesappendswaitsstatussoss WEXITSTATUSs WIFEXITEDserrorsstringsjoin( scmdLinesstatussstdoutserreofsxmeserrorsprogramsouteofsstderrsoutputsreadmeswritmestext((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys runCommandUs4   *    cCstd|||f}t|ƒ\}}}|o=td||||fdƒtd||d|ƒ‚n|SdS(Ns9cd '%s'; /usr/bin/noweave -delay '%s.pamphlet' > '%s.tex's %s %s %s %s s NowebErrors noweb: %s s ( sfDirsfNamescmdLines runCommandserrsstdoutsstderrslogs NowebError(sfDirsfNameserrsstdoutscmdLinesstderr((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pysrunNowebms  c Csfd||f}t|ƒ\}}}d}x¤ti |ƒD]“}t i d|ƒozti i||ƒ}tdt idd|ƒ|fƒ\}}}|o&|d|} td|| ƒ‚nd }q;q;W|d jot|ƒ\}}}n|o_|d|} t i d | t it iƒ}|o'|idƒ} td || ƒ‚q^n|SdS( NsGcd '%s'; rm -f *.dot; /usr/bin/latex --interaction nonstopmode '%s.tex'is\.dot$sdot -Tps -o '%s' '%s'sdot$spss sdot: %s is!.*\?s latex: %s (sfDirsfNamescmdLines runCommandserrsstdoutsstderrsagainsosslistdirsfsressearchspathsjoins dotfileNamessubsoutsLatexSyntaxErrors MULTILINEsDOTALLsgroup( sfDirsfNamesagainserrsstdoutsfscmdLinesstderrs dotfileNamesout((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pysrunLatexus*. cCsqd||f}t|ƒ\}}}|o=td||||fdƒtd||d|ƒ‚n|SdS(Nscd '%s'; dvipdfm '%s.dvi's %s %s %s %s s DviPdfErrors dvipdfm: %s s ( sfDirsfNamescmdLines runCommandserrsstdoutsstderrslogs DviPdfError(sfDirsfNameserrsstdoutscmdLinesstderr((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys runDviPdfms  cCstd|||f}t|ƒ\}}}|o=td||||fdƒtd||d|ƒ‚n|SdS(Ns.cd '%s'; /usr/bin/dvips -z -o '%s.ps' '%s.dvi's %s %s %s %s s DviPdfErrors dvips: %s s ( sfDirsfNamescmdLines runCommandserrsstdoutsstderrslogs DviPdfError(sfDirsfNameserrsstdoutscmdLinesstderr((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pysrunDviPs˜s  cCsqd||f}t|ƒ\}}}|o=td||||fdƒtd||d|ƒ‚n|SdS(Nscd '%s'; ps2pdf14 '%s.ps's %s %s %s %s s DviPdfErrors ps2pdf: %s s ( sfDirsfNamescmdLines runCommandserrsstdoutsstderrslogs DviPdfError(sfDirsfNameserrsstdoutscmdLinesstderr((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys runPs2Pdf s  cCsqd||f}t|ƒ\}}}|o=td||||fdƒtd||d|ƒ‚n|SdS(Ns6cd '%s'; dvipng -T tight -bg transparent -l 1 '%s.dvi's %s %s %s %s s DviPngErrors dvipng: %s s ( sfDirsfNamescmdLines runCommandserrsstdoutsstderrslogs DviPngError(sfDirsfNameserrsstdoutscmdLinesstderr((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys runDviPng¨s  (s__doc__sosssyssrespopen2sglobszLOGsselectsfcntlsstringscgisescapes ExceptionsLatexSyntaxErrors NowebErrors DviPdfErrors DviPngErrorslogs renderPDFsmakeNonBlockings runCommandsrunNowebsrunLatexs runDviPdfmsrunDviPss runPs2Pdfs runDviPng(s DviPdfErrorsmakeNonBlockings runDviPdfmspopen2sescapesselects NowebErrorslogsrunNowebsrunDviPssres runDviPngsfcntlsrunLatexsstrings runPs2Pdfsglobssyss renderPDFs runCommandsLatexSyntaxErrors DviPngErrorszLOGsos((sR/mnt/gmirror/ports/www/zope-zwiki/work/ZWiki/plugins/mathaction/pamphletWrapper.pys? s Q  ;