No difference between font size units 'pixels' and 'points'
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
4 commentaires
Bruno Luong
le 22 Sep 2024
Perhaps the New Desktop redefines the pixel unit differently. I don't know New Desktop myself.
Réponse acceptée
DGM
le 20 Sep 2024
Modifié(e) : DGM
le 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 commentaires
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!