Programmatically adjusting editor fontsize does not work
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
I'd like my editor and command window font size to be adjusted automatically when I plug in an external monitor to my laptop. I've looked at this link, but the advice does not seem complete because it doesn't work. In addition, it's not clear what setting should be modified, since I'd like to change two settings but can only find one relevant setting.
>> s = settings;
>> s.matlab.fonts.codefont.Size
ans =
Setting 'matlab.fonts.codefont.Size' with properties:
ActiveValue: 10
TemporaryValue: <no value>
PersonalValue: 10
FactoryValue: 10
>> s.matlab.fonts.codefont.Size.TemporaryValue = 12
s =
SettingsGroup with properties:
matlab: [1×1 SettingsGroup]
>> s.matlab.fonts.codefont.Size
ans =
Setting 'matlab.fonts.codefont.Size' with properties:
ActiveValue: 12
TemporaryValue: 12
PersonalValue: 10
FactoryValue: 10
This works without error in the command window, but there is no effect in the editor window - font stays same size. Furthermore, opening the "Preferences" window to "Preferences->Fonts->Custom: Editor" shows the font size is still 10.
I'd also like to adjust the size of the command window font. There is nothing obvious in the settings object hierarchy where this might be done.
0 Kommentare
Antworten (4)
Jan
am 24 Aug. 2021
Bearbeitet: Jan
am 30 Aug. 2021
Your code changes the values, which are applied at the next start of Matlab.
You can use FEX: CmdWinTool
Font = CmdWinTool('Font');
newFont = java.awt.Font(Font.getName, java.awt.Font.PLAIN, 24); % [EDITED]
CmdWinTool('Font', newFont);
Or directly:
jTextArea = [];
matchClass = 'javax.swing.JTextArea$AccessibleJTextArea';
cmdWinDoc = com.mathworks.mde.cmdwin.CmdWinDocument.getInstance;
cmdWinListener = cmdWinDoc.getDocumentListeners;
for iL = 1:length(cmdWinListener)
if isa(cmdWinListener(iL), matchClass)
jTextArea = cmdWinListener(iL);
end
end
if ~isempty(jTextArea)
Font = jTextArea.getFont;
newFont = java.awt.Font(Font.getName, java.awt.Font.PLAIN, 24); % [EDITED]
jTextArea.setFont(newFont);
pause(0.02); % Voodoo
end
0 Kommentare
Jan
am 31 Aug. 2021
An easier version to set the desktop and editor font immediately:
s = settings;
% Set temporarily until next start of Matlab:
s.matlab.fonts.codefont.Size.TemporaryValue = 24
% Or permanently:
s.matlab.fonts.codefont.Size.PersonalValue = 12;
% In the editor only - ?!
s.matlab.fonts.editor.normal.Size.TemporaryValue = 14
See:
0 Kommentare
Charles
am 1 Sep. 2021
1 Kommentar
Jan
am 2 Sep. 2021
Is this an answer or a comment to my answer? In the latter case, please use the section for comments.
On my Win10/MatlabR2018b computer, this command changes the font in the editor directly. You can try to rename your current preferences folder (see: prefdir), during Matlab is not running. Then the next start of Matlab recreates this folder with the default values. Then try again, if the settings methods can modify the command window and editor window directly.
Please mention, which Matlab and OS version you are using. It is possible, that different Matlab versions use different methods of the settings object. Take my suggestions as startpoint for your own investigations.
Siehe auch
Kategorien
Mehr zu System Commands finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!