11.10.1 Публикация файлов сценариев Octave
Функция publish предоставляет динамическую возможность документировать ваш файл сценария. В отличие от статической документации, publish выполняет файл сценария, сохраняет любые изображения и вывод во время выполнения сценария и представляет их вместе со статической документацией в нужном формате вывода. Статическая документация может использовать разметку для публикации, чтобы улучшить и настроить вывод.
- publish (file)
- publish (file, output_format)
- publish (file, option1, value1, …)
- publish (file, options)
- output_file = publish (file, …)
-
Создает отчет из файла сценария Octave file в одном из нескольких форматов вывода.
Созданные отчеты интерпретируют любую разметку для публикации в комментариях, которая подробно описана в руководстве GNU Octave. Рассмотрим следующий пример, использующий разметку для публикации, как содержимое файла сценария pub_example.m:
## Headline title # # Some *bold*, _italic_, or |monospaced| Text with # a <https://www.octave.org link to *GNU Octave*>. ## # "Real" Octave commands to be evaluated sombrero () %% MATLAB comment style ('%') is supported as well % % * Bulleted list item 1 % * Bulleted list item 2 % % # Numbered list item 1 % # Numbered list item 2Чтобы опубликовать этот файл сценария, введите
publish ("pub_example.m").При указании только file, генерируется HTML-отчет в подкаталоге html относительно текущей рабочей директории. Команды Octave выполняются в отдельном контексте, и любые изображения, созданные во время выполнения файла сценария, включаются в отчет. Весь синтаксис форматирования file обрабатывается в соответствии с указанным форматом вывода и включается в отчет.
Использование
publish (file, output_format)эквивалентно вызову функции с использованием структурыoptions.format = output_format; publish (file, options)
которое описано ниже. То же самое относится к использованию пар имя/значение
options.option1 = value1; publish (file, options)
Структура options может иметь следующие имена полей. Если имя поля не указано, используется значение по умолчанию:
- ‘format’ — Формат вывода опубликованного файла сценария, один из
‘html’ (по умолчанию), ‘doc’, ‘latex’, ‘ppt’, ‘pdf’ или ‘xml’.
Форматы вывода ‘doc’, ‘ppt’ и ‘xml’ в настоящее время не поддерживаются. Чтобы создать отчет ‘doc’, откройте сгенерированный отчет ‘html’ в вашей офисной программе.
В Octave поддерживаются пользовательские форматы путём реализации всех подфункций обратного вызова в файле функции с именем ‘__publish_<custom format>_output__.m’. Чтобы получить шаблон для формата HTML, введите:
edit (fullfile (fileparts (which ("publish")), ... "private", "__publish_html_output__.m")) - ‘outputDir’ — Полный путь к каталогу, где будет расположен созданный отчет. Если каталог не указан, отчет создается в подкаталоге html относительно текущей рабочей директории.
- ‘stylesheet’ — Не поддерживается, только для совместимости с MATLAB.
- ‘createThumbnail’ — Не поддерживается, только для совместимости с MATLAB.
- ‘figureSnapMethod’ — Не поддерживается, только для совместимости с MATLAB.
- ‘imageFormat’ — Желаемый формат для любых изображений, созданных во время выполнения кода. Допустимые форматы изображений зависят от формата вывода:
- ‘html’, ‘xml’ — ‘png’ (по умолчанию), любой формат изображения, поддерживаемый Octave
- ‘latex’ — ‘epsc2’ (по умолчанию), любой формат изображения, поддерживаемый Octave
- ‘pdf’ — ‘jpg’ (по умолчанию) или ‘bmp’, обратите внимание, MATLAB использует ‘bmp’ по умолчанию
- ‘doc’ или ‘ppt’ — ‘png’ (по умолчанию), ‘jpg’, ‘bmp’ или ‘tiff’
- ‘maxWidth’ и ‘maxHeight’ — Максимальная ширина (высота) созданных изображений в пикселях. Пустое значение означает отсутствие ограничения. Оба значения должны быть установлены для корректной работы опции.
‘[]’ (по умолчанию), целое значение ≥ 0
- ‘useNewFigure’ — Использовать новое окно фигуры для фигур, созданных выполняемым кодом. Это позволяет избежать побочных эффектов с уже открытыми окнами фигур.
‘true’ (по умолчанию) или ‘false’
- ‘evalCode’ — Выполнить код файла исходного кода Octave
‘true’ (по умолчанию) или ‘false’
- ‘catchError’ — Перехватывать ошибки при выполнении кода и продолжать
‘true’ (по умолчанию) или ‘false’
- ‘codeToEvaluate’ — Команды Octave, которые должны быть выполнены перед публикацией файла сценария. Эти команды Octave не отображаются в сгенерированном отчете.
- ‘maxOutputLines’ — Максимальное количество строк вывода из выполнения кода, которые включаются в вывод.
‘Inf’ (по умолчанию) или целое значение > 0
- ‘showCode’ — Отображать выполняемые команды Octave в сгенерированном отчете
‘true’ (по умолчанию) или ‘false’
Опция output_file — строка с путем и именем файла созданного отчета.
См. также: grabcode.
- ‘format’ — Формат вывода опубликованного файла сценария, один из
Противоположностью publish является grabcode.
- grabcode (url)
- grabcode (filename)
- code_str = grabcode (…)
-
Извлечь код из отчета, созданного функцией
publish.Извлеченный код внутри опубликованного отчета должен быть заключен в строки ‘##### SOURCE BEGIN #####’ и ‘##### SOURCE END #####’. Функция
publishавтоматически создает этот формат.Если возвращаемое значение не запрашивается, код сохраняется во временном файле и открывается в стандартном редакторе. ПРИМЕЧАНИЕ: временный файл должен быть сохранён под новым именем, иначе код будет утерян.
Если запрашивается вывод, извлеченный код возвращается как строка code_str.
Пример:
publish ("my_script.m"); grabcode ("html/my_script.html");В приведенном выше примере my_script.m публикуется в стандартном расположении html/my_script.html. Затем опубликованный сценарий Octave извлекается для редактирования его содержимого в новом временном файле.
См. также: publish.
© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/Publish-Octave-Script-Files.html