
No difference between font size units 'pixels' and 'points'
6 views (last 30 days)
Show older comments
I noticed when changing the font size of a figure it makes no difference if one chooses pixels or points as units. Is this a known issue or intended?
figure(1)
set(gcf,'Position',[10 10 800 800])
peaks;
fontsize(16,'pixels')
figure(2)
set(gcf,'Position',[10 10 800 800])
peaks;
fontsize(16,'points')


left: figure 1, font size = 16 px; right: figure 2, font size = 16 pt; created using MATLAB Desktop
Interestingly, creating the same figures using the code above in the New Desktop for MATLAB produces 33% bigger font sizes given in points compared to pixels (consistent with the points/pixels size conversion).


left: figure 1, font size = 16 px; right: figure 2, font size = 16 pt; created using New Desktop for MATLAB
5 Comments
Bruno Luong
on 22 Sep 2024
Perhaps the New Desktop redefines the pixel unit differently. I don't know New Desktop myself.
Accepted Answer
DGM
on 20 Sep 2024
Edited: DGM
on 20 Sep 2024
I'm not sure how it's doing the scaling internally, but my guess would start here:
% units per em
sz = 16;
% units per inch
pxpin = get(0,'ScreenPixelsPerInch'); % px/in
ptpin = 72; % pt/in
% inches per em
szinpx = sz/pxpin
szinpt = sz/ptpin
That would tell us that on this system, the rendered sizes should differ, but measuring the exact height of 1 em is a bit of a chore unless you know what text features are 1 em high. Instead, we can just measure the ratio of character heights.
% expected ratio of on-screen sizes
ptpin/pxpin
On my machine, the calculated ratio seems to be quite close to the size ratio I can measure from screenshots.
If your reported display resolution were 72, then the rendered sizes would be the same. It seems that would be expected on a Mac.
0 Comments
More Answers (0)
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!