-
-
Notifications
You must be signed in to change notification settings - Fork 308
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'breaking-0.22' into sd/metamesh
- Loading branch information
Showing
7 changed files
with
177 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
# How to match Figure size, font sizes and dpi | ||
|
||
We want to create three plots for inclusion in a document. These are the requirements: | ||
|
||
- Figure 1: png @ 4x3 inches and 100 dpi | ||
- Figure 2: png @ 9x7 cm and 300 dpi | ||
- Figure 3: svg @ 4x3 inches | ||
|
||
The fontsize of all three should match the document's 12pt setting. | ||
|
||
We assume the convention that Makie's unitless figure size is actually equivalent to CSS pixels. | ||
For a deeper explanation why, check the section [Figure size and resolution](@ref). | ||
|
||
We're using Typst here but the technique applies similarly for all authoring tools that allow you to set the dimensions of included images. | ||
|
||
```@example | ||
using CairoMakie | ||
CairoMakie.activate!() # hide | ||
using Typst_jll | ||
# these are relative to 1 CSS px | ||
inch = 96 | ||
pt = 4/3 | ||
cm = inch / 2.54 | ||
f1 = Figure(size = (4inch, 3inch), fontsize = 12pt) | ||
f2 = Figure(size = (9cm, 7cm), fontsize = 12pt) | ||
f3 = Figure(size = (4inch, 3inch), fontsize = 12pt) | ||
titles = [ | ||
"Figure 1: png @ 4x3 inches and 100 dpi", | ||
"Figure 2: png @ 9x7 cm and 300 dpi", | ||
"Figure 3: svg @ 4x3 inches", | ||
] | ||
data = cumsum(randn(100)) | ||
for (f, title) in zip([f1, f2, f3], titles) | ||
ax = Axis(f[1, 1]; title, xlabel = "time (s)", ylabel = "value (€)") | ||
lines!(ax, data) | ||
end | ||
save("figure1.png", f1, px_per_unit = 100/inch) | ||
save("figure2.png", f2, px_per_unit = 300/inch) | ||
save("figure3.svg", f3) | ||
typst_code = """ | ||
#set page(fill: rgb("#f5f2eb")) | ||
#set text(font: "TeX Gyre Heros Makie", size: 12pt, fill: luma(50%)) | ||
This is some text at 12pt which the figures below should match. | ||
#image("figure1.png", width: 4in, height: 3in) | ||
#image("figure2.png", width: 9cm, height: 7cm) | ||
#image("figure3.svg") // vector graphics have physical dimensions | ||
""" | ||
open(io -> println(io, typst_code), "document.typ", "w") | ||
cp(Makie.assetpath("fonts", "TeXGyreHerosMakie-Regular.otf"), "./texgyre.otf") | ||
run(`$(Typst_jll.typst()) compile --font-path . document.typ output.svg`) | ||
nothing # hide | ||
``` | ||
|
||
![](output.svg) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters