Существуют свойства рисунка, начинающиеся с 'Paper'
, которые определяют размер и расположение рисунка на бумаге при печати (в PDF или на принтер). Вот список всех свойств фигуры . Эти свойства находятся под заголовком «Печать и экспорт» (см. Таблицу содержимого на левой панели).
Мы можем использовать эти свойства следующим образом. Обратите внимание, что нам не важен размер фигуры на экране, поэтому мы оставляем размер по умолчанию. Мы устанавливаем свойство 'PaperPosition'
, чтобы при печати фигура имела определенный размер. Затем мы создаем рисунок в шахматном порядке, который заполняет фигуру. Таким образом, рисунок будет иметь размер самой фигуры при печати.
Обратите внимание, как мы устанавливаем свойство 'PaperSize'
в дюймах (8,5 "x 11" - это буква США), но свойство 'PaperPosition'
в сантиметрах (чтобы можно было легко вычислять квадраты 3x3 см для рисования).
Сам рисунок, вероятно, можно упростить, но это работает. Гораздо эффективнее нарисовать шаблон с использованием заплаток (то есть создать векторный рисунок), чем использовать изображение (то есть функцию checkerboard
в OP) при печати в PDF. Выход получше, а файл меньше. Но то же самое можно сделать, отображая изображение.
% Grid size (number of squares)
m = 6; n = 8;
% Square size (in centimeters)
side = 3;
% Create figure and set sizes for printing
figh = figure;
set(figh,'PaperUnits','inches','PaperSize',[8.5 11]);
set(figh,'PaperUnits','centimeters','PaperPosition',[1,1,side*m,side*n]);
% Create axes that fill the figure
axh = axes('Parent',figh,'Units','normalized','Position',[0,0,1,1]);
set(axh,'Color',[1,1,1])
set(axh.XAxis,'Visible','off');
set(axh.YAxis,'Visible','off');
% Draw rectangles
set(axh,'XLim',[0,m],'YLim',[0,n]);
for ii=0:m
for jj=0:n
if mod(ii+jj,2)==0
rectangle('Position',[ii,jj,1,1],'FaceColor',[0,0,0],'LineStyle','none');
end
end
end
% Print to PDF
print(figh,'-dpdf','checkerboard.pdf')