在asciidoc中,如何仅为pdf生成执行宏?

时间:2016-12-28 06:52:48

标签: asciidoctor asciidoctor-pdf

在asciidoc中有一个我想仅包含PDF输出的图像。是否有一种属性我可以传递给image ::以便处理图像以生成PDF,并在生成epub等时被忽略?或者更可能是使用ifdef,但究竟是怎么回事?

2 个答案:

答案 0 :(得分:1)

您可以像这样使用ifdef directive

Some text for all outputs.

ifdef::backend-pdf[]
This is only displayed in the PDF document, you can use image:
image::mypict.png[]
endif::[]

答案 1 :(得分:1)

如果你需要一个简单而小巧的解决方案,我宁愿选择Jminis。

对于需要更多区分的情况,您可以为不同类型的输出定义自己的过滤器参数,可以在命令行调用中将其定义为参数。您可以按以下方式过滤内容,例如:如果你想在不同的观众之间有所不同。

Some text for all outputs.

ifeval::["{myfilter1}"=="pdf"]
  This content is pdf-only!

  ifeval::["{myfilter2}"=="adminpdf"]
    This content is admin-pdf-only!
  endif::[]
endif::[]

您可以在命令行调用中添加参数,如下所示:

--attribute myfilter1='pdf'

命令的确切表达式取决于您的系统。以下语法可以工作(在没有asciidoc-setup的情况下,我暂时无法测试它。)

OS X asciidoc - > DocBook的:

SCRIPT=${...path to asciidoc installation...}/asciidoc.py
INPUT=myAsciidocInput.ad
OUTPUT=MyDocBookOutput.xml
MYFILTER="--attribute myfilter1='pdf' --attribute myfilter2='adminpdf'"
python "$SCRIPT" -o "$OUTPUT" "$MYFILTER "$INPUT"

WIN asciidoc - > DocBook的:

set SCRIPT=%{...path to asciidoc installation...}%\asciidoc.py
set INPUT=myAsciidocInput.ad
set OUTPUT=MyDocBookOutput.xml
set MYFILTER=--attribute myfilter1='pdf' --attribute myfilter2='adminpdf'
python "%SCRIPT%" -o "%OUTPUT%"