У меня есть обычно хорошо работающая программа, которая берет файлы, строит их, выплевывает PDF (размер буквы). Я использую аннотации, чтобы поместить заголовок над набором из трех сюжетов и использовать в качестве нижнего колонтитула с информацией о файле и датой. Мне бы хотелось, чтобы заголовок находился вверху страницы, заполнялся от поля к краю по центру.
У меня есть два способа запуска программы: в «пакетном» режиме и в «интерактивном» режиме. В интерактивном режиме я создаю фигуру с помощью простой команды figure()
. В «пакетном» режиме я создаю фигуру с figure('visible','off')
. Вот моя команда для создания аннотации:
annotation(obj.hFigure(f),'textbox',[0 0.9 1 0.1],...
'String',title,...
'HorizontalAlignment','center',...
'FontSize',18,...
'LineStyle','none',...
'FitBoxToText','off');
Здесь «obj.hFigure (f)» - просто дескриптор фигуры, которую я сейчас обрабатываю. Как вы можете видеть, я помещаю фигуру в верхнюю часть рисунка и проверяю, что текст выходит за нижнюю часть окна (если он больше).
Моя проблема с полями в приведенной выше аннотации. В пакетном режиме (без показа рисунков) я получаю около 10% полей с обеих сторон текста, что портит макет. В интерактивном режиме (фигуры отображаются) я не получаю поля: текст корректно перетекает от одного края к другому.
Я сузил проблему до следующего: я могу получить правильный ответ на печать ps в пакетном режиме, если сделаю цифры видимыми (figure('visible','on')
) И откройте
propertyeditor(gcf);
plotbrowser(gcf);
после построения каждой фигуры. Это заставляет программу занимать примерно вдвое больше времени (что не так уж и сложно). Но я не понимаю, что эти две команды делают, а drawnow
или refresh
не выполняют?!