%D \module %D [ file=mp-txts.mpii, %D version=2006.06.08, %D title=\CONTEXT\ \METAPOST\ graphics, %D subtitle=more text support, %D author=Hans Hagen, %D date=\currentdate, %D copyright=PRAGMA] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See licen-en.pdf for %C details. if known context_txts : endinput ; fi ; boolean context_txts ; context_txts := true ; %D The real code: string txtfile ; txtfile := "" ; string txtfont ; txtfont := defaultfont ; string txtpref ; txtpref := "00001::::" ; numeric txtnext ; txtnext := 0 ; numeric txtdepth ; txtdepth := 0 ; vardef nexttxt = txtnext := txtnext + 1 ; txtnext enddef ; picture savedtxts[] ; numeric depthtxts[] ; vardef zerofilled(expr fd) = if fd<10: "0000" else : if fd<100: "000" else : if fd<1000: "00" else : if fd<10000: "0" else : fi fi fi fi & decimal fd enddef; vardef savetxt(expr n,w,h,d) text t = depthtxts[n] := d ; savedtxts[n] := ((txtpref & zerofilled(n)) infont txtfont) xysized(w,h+d) t enddef ; vardef sometxt(expr n) = if known savedtxts[n] : txtdepth := depthtxts[n] ; savedtxts[n] else : txtdepth := 0 ; nullpicture fi enddef ; def loadtxts = if txtfile <> "" : readfile(txtfile) ; fi ; enddef ; def StartTexts = loadtxts ; enddef ; def StopTexts = enddef ;