scale=... and specifying the width and height of a figure
Hi, If scale option for a figure is set, \externalfigure does not honor the width and the height parameters. For example \externalfigure[cow][width=1cm, height=3cm, scale=750] gives a figure which has the usual aspect ratio. I know that settings scale=... along with width and height does not make sense. But, in one of my project, I set \setupexternalfigures[scale=750] as that makes sense for most of the figures, and if I try to use \externalfigure[cow][width=1cm, height=3cm] then the aspect ratio of the figures does not change. Not sure if this should be classified as a bug, but I am posting it here in case anyone else encounters the same issue and needs to know how to override this behavior: \externalfigure[cow][width=1cm, height=3cm, scale=] Aditya
On 16-10-2012 23:08, Aditya Mahajan wrote:
Hi,
If scale option for a figure is set, \externalfigure does not honor the width and the height parameters. For example
\externalfigure[cow][width=1cm, height=3cm, scale=750]
gives a figure which has the usual aspect ratio.
I know that settings scale=... along with width and height does not make sense. But, in one of my project, I set
\setupexternalfigures[scale=750]
as that makes sense for most of the figures, and if I try to use
\externalfigure[cow][width=1cm, height=3cm]
then the aspect ratio of the figures does not change.
Not sure if this should be classified as a bug, but I am posting it here in case anyone else encounters the same issue and needs to know how to override this behavior:
\externalfigure[cow][width=1cm, height=3cm, scale=]
if needed you can use an abstraction: \starttext \defineexternalfigure[whatever][width=3cm,height=4cm] \defineexternalfigure[another] [scale=500] \externalfigure[cow] \externalfigure[cow][whatever] \externalfigure[cow][another] \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Tue, 16 Oct 2012, Hans Hagen wrote:
On 16-10-2012 23:08, Aditya Mahajan wrote:
Hi,
If scale option for a figure is set, \externalfigure does not honor the width and the height parameters. For example
\externalfigure[cow][width=1cm, height=3cm, scale=750]
gives a figure which has the usual aspect ratio.
I know that settings scale=... along with width and height does not make sense. But, in one of my project, I set
\setupexternalfigures[scale=750]
as that makes sense for most of the figures, and if I try to use
\externalfigure[cow][width=1cm, height=3cm]
then the aspect ratio of the figures does not change.
Not sure if this should be classified as a bug, but I am posting it here in case anyone else encounters the same issue and needs to know how to override this behavior:
\externalfigure[cow][width=1cm, height=3cm, scale=]
if needed you can use an abstraction:
\starttext
\defineexternalfigure[whatever][width=3cm,height=4cm] \defineexternalfigure[another] [scale=500]
\externalfigure[cow] \externalfigure[cow][whatever] \externalfigure[cow][another]
\stoptext
I actually use these abstractions, but with the default value also set. That's the whole point of having the defaults, right? So, my current solution is: \setupexternalfigures[scale=750, factor=max, maxwidth=\textwidth, maxheight=\textheight] \defineexternalfigure[grid] [width=0.55\paperwidth, height=0.33\paperwidth, scale=, factor=] Around five months ago, I did not need to reset scale and factor. Aditya
On 16-10-2012 23:33, Aditya Mahajan wrote:
I actually use these abstractions, but with the default value also set. That's the whole point of having the defaults, right? So, my current solution is:
\setupexternalfigures[scale=750, factor=max, maxwidth=\textwidth, maxheight=\textheight]
\defineexternalfigure[grid] [width=0.55\paperwidth, height=0.33\paperwidth, scale=, factor=]
Around five months ago, I did not need to reset scale and factor.
The code now uses the new inheritance mechamisn and in mkii external figures had a whole bunch of (sometimes tricky) resets. Some were reset, some not. One complication with externalfigures is that scaling can depend on combinations (width, maxwidth etc). This is not much different from \setupframed .. when someone uses that one global all kind of derived mechanisms get affected. (In fact, there are many such global settings.) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Tue, 16 Oct 2012, Hans Hagen wrote:
On 16-10-2012 23:33, Aditya Mahajan wrote:
I actually use these abstractions, but with the default value also set. That's the whole point of having the defaults, right? So, my current solution is:
\setupexternalfigures[scale=750, factor=max, maxwidth=\textwidth, maxheight=\textheight]
\defineexternalfigure[grid] [width=0.55\paperwidth, height=0.33\paperwidth, scale=, factor=]
Around five months ago, I did not need to reset scale and factor.
The code now uses the new inheritance mechamisn and in mkii external figures had a whole bunch of (sometimes tricky) resets. Some were reset, some not.
I know. In the past I had to work around the fact that scale could not be set globally (because it was reset at each invocation). The current behavior (everything inherits from the global setting) is more predictable and easier to handle.
One complication with externalfigures is that scaling can depend on combinations (width, maxwidth etc).
... and the only way to figure out that dependence is to read the source code. At some stage I'll try to document how scale and factor work. Aditya
participants (2)
-
Aditya Mahajan
-
Hans Hagen