Rob McDonald said:
> On 1/27/07, Rob McDonald <[EMAIL PROTECTED]> wrote:
>> On 1/27/07, Lars Clausen <[EMAIL PROTECTED]> wrote:
>> > On Fri, 2007-01-26 at 07:51 -0800, Rob McDonald wrote:
>> > > In MetaPost, LaTeX renders the text, and I don't think MP ever
>> 'knows'
>> > > or 'controls' the text width. The text width is a fallout from the
>> > > font size and the string.
>> >
>> > Can't we tell the LaTeX part to scale it to a certain width?
>> >
>>
>> I'll see what I can do. I think I can come up with another MetaPost
>> macro to scale any object to a desired width. However, I don't think
>> that is a great idea.
>>
>
> Here is the MetaPost to handle what you're after. I still don't think
> it is the right thing to do in 99% of all situations.
As I see it, there's two possible situations: Either the text is plain
text or it's a LaTeX formula (of some kind). The formulas we have no
chance to fit correctly until a separate LaTeXObject is introduced (which
could start out as a clone of TextObject) which the MetaPost renderer can
handle specially. Plain text we actually have a chance to not just
position right, but also have a reasonable width of -- which is used in
the diagram, for sizing boxes etc. If we always leave the size to
LaTeX/MP, the output is 99% guaranteed to be different from what you see
in Dia. If we give LaTeX/MP the size (width!), any plain text will be
just as in Dia, but formulas will need fixing.
I'm very tempted to break the feature freeze and introduce LaTeXObject in
the Misc sheet, just so that all other text can be treated The Right Way
[tm]. Then it can later be updated to do LaTeX interaction in order to
render nicely and have the right bounding box. I introduced render_object
in the renderer system exactly so that this kind of thing could be
handled.
> % Define macro to scale to a desired width.
> primarydef P scaledw W =
> P scaled (W/(xpart (lrcorner P - llcorner P)))
> enddef;
>
> draw btex {\usefont{OT1}{cmr}{m}{n} $c^2=a^2+b^2$} etex scaled 1.0
> shifted (11.00000x,4.650000y);
> draw btex {\usefont{OT1}{cmr}{m}{n} Mary had a little lamb.} etex
> scaled 1.0 shifted (11.00000x,5.000000y);
>
> draw btex {\usefont{OT1}{cmr}{m}{n} $c^2=a^2+b^2$} etex scaledw 4.0cm
> shifted (11.00000x,7.650000y);
> draw btex {\usefont{OT1}{cmr}{m}{n} Mary had a little lamb.} etex
> scaledw 4.0cm shifted (11.00000x,8.000000y);
Thanks, I'll give it a try. Do you have a quick-and-dirty way to see if
metapost output is correct (e.g. convert MP files directly to PNG or
something)? I'm not a metaposter myself.
-Lars
_______________________________________________
Dia-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/dia-list
FAQ at http://www.gnome.org/projects/dia/faq.html
Main page at http://www.gnome.org/projects/dia