11.11.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")

当使用一个输入参数调用时,会在当前工作目录下的 html 子目录中生成一个HTML报告。pub_example.m 中的所有Octave命令会在一个独立的上下文中执行,并且在执行脚本文件过程中创建的任何图形都会被包含在报告中。

使用 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_<自定义格式>_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

publish 相对应的函数是 grabcode

 
grabcode filename
grabcode url
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


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2