From: David W. E. <es...@fa...> - 2004-01-27 21:04:42
|
I cannot seem to figure out the text class. I want to set a document to have a global size Large (either that or increase the document to something like 16pt) and to set all text to right align. So what I want to do is something like: text.set(text.halign("right")) -or- text.halign=text.halign.right and similarly for text.size but I cannot get anything to work, I either get complaints about TypeError: set() got an unexpected keyword argument 'size' SyntaxError: keyword can't be an expression NameError: name 'size' is not defined etc. or the program runs but nothing changes. So can anyone explain to me how to use set and what the actual class structure of the text class is. Thanks, David -- David Wright Escott |
From: Andre W. <wo...@us...> - 2004-02-02 11:17:47
|
Hi David, On 27.01.04, David Wright Escott wrote: > I cannot seem to figure out the text class. I want to set a document to > have a global size Large (either that or increase the document to > something like 16pt) and to set all text to right align. > > So what I want to do is something like: > text.set(text.halign("right")) > -or- > text.halign=text.halign.right Well, the set method of the texrunner is completely different from a set method of a canvas. Jörg, are you listing as well? We discussed the removal of the set method of the canvas recently. Here we do have a strong argument for that. But back to your problem: The first question about changing the default font behaviour can be solved in TeX/LaTeX. You need to create a different font setting, where normalsize is at different size. If you use the TeX-mode, you need to load a different lfs file (the lfs files are introduced to emulate LaTeX font size selection in plain TeX). Example: from pyx import * text.set(lfs="foils17pt") c = canvas.canvas() c.text(0, 0, "Hello, world!") c.writetofile("hello") While the foils17pt is created with a familydefault = \sffamily (e.g. what the foils package uses), you may want to do Something else. A convenient way to setup font sizes is to download sizedef.sty from http://www.physik.uni-augsburg.de/~wobsta/sw/tex/size/sizedef.sty and do the following: from pyx import * text.set(mode="latex") text.preamble(r"\usepackage{type1cm}") text.preamble(r"\usepackage[16]{sizedef}") c = canvas.canvas() c.text(0, 0, "Hello, world!") c.writetofile("hello") You can also use those packages and createlfs.tex to create new lfs files, in case you want to stick on TeX instead of LaTeX. About the halign.right ... I have to think about that a bit longer. For the moment you have to specify it always (or edit text.py yourself) ... or you could say text.preamble(r"\gdef\PyXHAlign{1}") but then you will not be able to turn it off by text.halign.left. You can turn it of by text.halign(0), but this is getting a mess ... I'm not recommending this, ok? André -- by _ _ _ Dr. André Wobst / \ \ / ) wo...@us..., http://www.wobsta.de/ / _ \ \/\/ / PyX - High quality PostScript figures with Python & TeX (_/ \_)_/\_/ visit http://pyx.sourceforge.net/ |