init commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
function fig_config(customConfig)
|
||||
% setFigureDefaults Sets default properties for all figures
|
||||
%
|
||||
% Usage:
|
||||
% fig_config() % Applies default settings
|
||||
% fig_config(userConfig) % Overrides defaults with userConfig
|
||||
|
||||
%% Define default settings
|
||||
% In IEEETran, \textwidth is 7.1413 inches
|
||||
% - Use `\printinunitsof{in}\prntlen{\textwidth}`
|
||||
% - To output the \textwidth value in the generated document,
|
||||
% you need to use the `printlen` and `layouts` packages.
|
||||
textwidth_inches = 7.1413;
|
||||
|
||||
% Set the figure width to 0.5 times \textwidth and define the aspect ratio (16:9 or 4:3)
|
||||
aspect = 16/9; % Aspect ratio (can also use 4/3)
|
||||
axes_width = 0.75;
|
||||
axes_hight = 0.75;
|
||||
axes_pos = [0.15, 0.15, axes_width, axes_hight];
|
||||
fig_width = 0.5 * textwidth_inches;
|
||||
fig_hight = (fig_width * axes_width / aspect) / axes_hight;
|
||||
|
||||
defaultConfig = struct( ...
|
||||
'defaultFigureUnits', 'inches', ...
|
||||
'defaultFigurePosition', [0, 0, fig_width, fig_hight], ...
|
||||
'defaultAxesPosition', axes_pos, ...
|
||||
'defaultFigurePaperPositionMode', 'manual', ...
|
||||
'defaultFigurePaperUnits', 'inches', ...
|
||||
'defaultFigurePaperPosition', [0, 0, fig_width, fig_hight], ...
|
||||
'defaultFigurePaperSize', [fig_width, fig_hight], ...
|
||||
'defaultLineLineWidth', 0.5, ... % -- Line and marker
|
||||
'defaultLineMarkerSize', 3, ...
|
||||
'defaultAxesFontName', 'Times New Roman', ... % -- Fonts
|
||||
'defaultTextFontName', 'Times New Roman', ...
|
||||
'defaultLegendFontName', 'Times New Roman', ...
|
||||
'defaultAxesLabelFontSizeMultiplier', 1.15, ...
|
||||
'defaultAxesFontSize', 7, ...
|
||||
'defaultTextFontSize', 10, ...
|
||||
'defaultLegendFontSize', 7, ...
|
||||
'defaultTextInterpreter', 'latex', ... % -- Interpreter
|
||||
'defaultAxesTickLabelInterpreter', 'latex', ...
|
||||
'defaultLegendInterpreter', 'latex', ...
|
||||
'defaultAxesGridColor', [0.15, 0.15, 0.15], ... % -- Grid
|
||||
'defaultAxesGridAlpha', 0.25, ...
|
||||
'defaultAxesGridLineStyle', ':', ...
|
||||
'defaultAxesGridLineWidth', 0.5, ...
|
||||
'defaultArrowshapeHeadWidth', 6, ... % -- Arrow
|
||||
'defaultArrowshapeHeadLength', 6 ...
|
||||
);
|
||||
|
||||
% Merge user config with defaults
|
||||
if nargin == 1 && ~isempty(customConfig)
|
||||
userFields = fieldnames(customConfig);
|
||||
for i = 1:length(userFields)
|
||||
defaultConfig.(userFields{i}) = customConfig.(userFields{i});
|
||||
end
|
||||
end
|
||||
|
||||
% Iterate and set properties
|
||||
fields = fieldnames(defaultConfig);
|
||||
for i = 1:length(fields)
|
||||
try
|
||||
set(groot, fields{i}, defaultConfig.(fields{i}));
|
||||
catch ME
|
||||
errorStruct.message = sprintf("%s\nUse get(groot, 'factory') " + ...
|
||||
"to get all the available parameters.", ME.message);
|
||||
errorStruct.identifier = ME.identifier;
|
||||
errorStruct.stack = ME.stack;
|
||||
error(errorStruct)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user