Re: [NTG-context] How does \setupfloat work?
On Sat, Nov 29, 2014 at 11:03 AM, Hans Hagen
wrote: On 11/29/2014 10:49 AM, Mark Szepieniec wrote:
I'm trying to set a default width for figures with \setupfloat. However, the command doesn't seem to be picking up the width specification, even though the manual indicates it accepts a width= argument:
\setupfloat[figure][width=2cm]
\starttext
\placefigure{}{\externalfigure[picture.png]}
\stoptext
just
\placefigure{}{\externalfigure[picture.png][width=2cm]}
picture.png just gets inserted at its native size, rather than scaled to have the specified width. What am I doing wrong? (setting minwidth and/or maxwidth doesn't seem to work either)
Thanks in advance for any assistance.
Mark
Sorry, I should have mentioned I was able to work around it by doing exactly that, but I'd rather not have to edit all the \placefigure instances if I decide to change the width.
Also I'd like to use a different default width for graphics, so \setupexternalfigures[width=XXXcm] wouldn't work well either.
I realize I could define my own macros or something to solve this, but I'm just puzzled that setting width in \setupfloat[figure] doesn't work. Am I reading the manual wrong, or is is just not implemented yet or something? (honest question)
Thanks for your response,
Mark
Hi Mark, You can use \defineexternalfigure as in the following example. \defineexternalfigure[whatever][width=2cm] \starttext \placefigure{}{\externalfigure[picture.png][whatever]} \stoptext See also http://wiki.contextgarden.net/Floating_Objects Christoph
On Sat, Nov 29, 2014 at 8:22 PM, Christoph Reller < christoph.reller@gmail.com> wrote:
On Sat, Nov 29, 2014 at 11:03 AM, Hans Hagen
wrote: On 11/29/2014 10:49 AM, Mark Szepieniec wrote:
I'm trying to set a default width for figures with \setupfloat. However, the command doesn't seem to be picking up the width specification, even though the manual indicates it accepts a width= argument:
\setupfloat[figure][width=2cm]
\starttext
\placefigure{}{\externalfigure[picture.png]}
\stoptext
just
\placefigure{}{\externalfigure[picture.png][width=2cm]}
picture.png just gets inserted at its native size, rather than scaled to have the specified width. What am I doing wrong? (setting minwidth and/or maxwidth doesn't seem to work either)
Thanks in advance for any assistance.
Mark
Sorry, I should have mentioned I was able to work around it by doing exactly that, but I'd rather not have to edit all the \placefigure instances if I decide to change the width.
Also I'd like to use a different default width for graphics, so \setupexternalfigures[width=XXXcm] wouldn't work well either.
I realize I could define my own macros or something to solve this, but I'm just puzzled that setting width in \setupfloat[figure] doesn't work. Am I reading the manual wrong, or is is just not implemented yet or something? (honest question)
Thanks for your response,
Mark
Hi Mark, You can use \defineexternalfigure as in the following example.
\defineexternalfigure[whatever][width=2cm] \starttext \placefigure{}{\externalfigure[picture.png][whatever]} \stoptext
See also http://wiki.contextgarden.net/Floating_Objects
Christoph
Thanks all for your responses. \defineexternalfigure looks like it does something very close to what I wanted. Googling it brought me to a mailing list thread where a question similar to mine was asked, so for future reference: http://www.ntg.nl/pipermail/ntg-context/2012/069446.html. So I guess my problem is resolved, but I'd still like to understand better why my earlier solution of doing \setupfloat[figure][width=2cm] didn't set a default for later instances of \placefigure. I feel like I might be missing some aspect of the ConTeXt philosophy, or I'm misreading the manual, or it's just a bug...?
On Sat, 29 Nov 2014, Mark Szepieniec wrote:
So I guess my problem is resolved, but I'd still like to understand better why my earlier solution of doing
\setupfloat[figure][width=2cm]
didn't set a default for later instances of \placefigure. I feel like I might be missing some aspect of the ConTeXt philosophy, or I'm misreading the manual, or it's just a bug...?
\setupfloat[figure] sets the values of \startplacefigure (and \placefigure), and not for \externalfigure. The width value for startplacefigure is not used anywhere. The default value of \setupfloats[width=...] is used when the float box is empty. So, the only scenario where the value of \setupfloats[width=...] will matter is the following: \starttext \setupfloats[width=2cm] \placefloat{}{} \setupfloats[width=10cm] \placefloat{}{} \stoptext Aditya
On Sun, Nov 30, 2014 at 12:48 AM, Aditya Mahajan
On Sat, 29 Nov 2014, Mark Szepieniec wrote:
So I guess my problem is resolved, but I'd still like to understand better
why my earlier solution of doing
\setupfloat[figure][width=2cm]
didn't set a default for later instances of \placefigure. I feel like I might be missing some aspect of the ConTeXt philosophy, or I'm misreading the manual, or it's just a bug...?
\setupfloat[figure] sets the values of \startplacefigure (and \placefigure), and not for \externalfigure. The width value for startplacefigure is not used anywhere.
The default value of \setupfloats[width=...] is used when the float box is empty. So, the only scenario where the value of \setupfloats[width=...] will matter is the following:
\starttext \setupfloats[width=2cm] \placefloat{}{}
\setupfloats[width=10cm] \placefloat{}{} \stoptext
Aditya
Thanks Aditya, that's very helpful and things make more sense now. Is this stuff documented somewhere or did you consult the source code?
participants (3)
-
Aditya Mahajan
-
Christoph Reller
-
Mark Szepieniec