Open adrfantini opened 5 days ago
The best option to finally fix this, is introducing custom coordinate systems to cetz. The issue & PR is here: https://github.com/cetz-package/cetz/pull/719
The best option to finally fix this, is introducing custom coordinate systems to cetz. The issue & PR is here: cetz-package/cetz#719
is there any short-term workaround for this right now, that you can think of? Other than using an older cetz version of course.
Currently this broke all of my plots :(
The best option to finally fix this, is introducing custom coordinate systems to cetz. The issue & PR is here: cetz-package/cetz#719
is there any short-term workaround for this right now, that you can think of? Other than using an older cetz version of course.
Currently this broke all of my plots :(
I am sorry :(. You can use plot.add-anchor(...)
to place an anchor and use content(...)
with that anchor outsides the plot environment to get the correct placing.
Example:
#import "@preview/cetz:0.3.1"
#import "@preview/cetz-plot:0.1.0": plot
// Uncomment the following to see the behaviour for old CeTZ
// #import "@preview/cetz:0.2.2"
// #import cetz.plot
#cetz.canvas({
import cetz.draw: *
plot.plot(
name: "plot",
size: (14,8),
axis-style: "scientific-auto",
x-min: 0,
x-max: 1,
x-tick-step: none,
y-min: 0,
y-max: 1,
y-tick-step: none, {
plot.annotate({
circle((0.5, 0.5),
radius: (0.1, 0.1),
fill: red,
stroke: none
)
})
plot.add-anchor("label", (.5, .5))
})
content("plot.label", [Hello], anchor: "south")
})
Link #52
I am sorry :(
No worries, it happens! And after all this is version 0.x, it's bound to break things!
You can use
plot.add-anchor(...)
to place an anchor and usecontent(...)
with that anchor outsides the plot environment to get the correct placing.Example:
#import "@preview/cetz:0.3.1" #import "@preview/cetz-plot:0.1.0": plot // Uncomment the following to see the behaviour for old CeTZ // #import "@preview/cetz:0.2.2" // #import cetz.plot #cetz.canvas({ import cetz.draw: * plot.plot( name: "plot", size: (14,8), axis-style: "scientific-auto", x-min: 0, x-max: 1, x-tick-step: none, y-min: 0, y-max: 1, y-tick-step: none, { plot.annotate({ circle((0.5, 0.5), radius: (0.1, 0.1), fill: red, stroke: none ) }) plot.add-anchor("label", (.5, .5)) }) content("plot.label", [Hello], anchor: "south") })
Thanks for that, I'll try it out.
I'm not sure if it's related, but I noticed that now even lines seem to have a weird padding.
Before:
After: (ignore the fact that I removed the shading to simplify debugging)
Other than the vertical alignement of the anchors (which can be fixed with your above workaround), the arrowheads also do not touch each other anymore, and are separated from their line (which might have been done for aesthetic reasons?)
It is a bug and can be fixed the same way the anchors can be.
I've changed the plot canvas to not use linear scaling anymore, because this does not work with log-plots.
I suggest not using annotate
at all right now and use add-anchor
and draw everything outsides the plot. This should work fine.
See this project: https://typst.app/project/rBvXqvt6N2I7RKIuLiKV_A
When using CeTZ 0.3.1 and
cetz-plot
0.1.0, plotting a simple circle with an anchored content label leads to:When using CeTZ 0.2.2 and the built-in
plot
, the behaviour was:Switch between the two behaviours by uncommenting the import lines. In the new behaviour, it is impossible to place the anchored text closer to the red dot. If
padding
is set to a negative value, the compiler crashes.