В asciidoc, как мне выполнить макрос только для генерации PDF?

В asciidoc есть изображение, которое я хотел бы включить только для вывода PDF. Есть ли какой-то атрибут, который я могу передать в image::, чтобы изображение обрабатывалось для генерации PDF, и игнорировалось при генерации epubs и т. Д.? Или, скорее, с помощью ifdef, но как именно?

2 ответа

Решение

Вы можете использовать директиву ifdef следующим образом:

Some text for all outputs.

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

Если вам нужно простое и маленькое решение, я бы предпочел ответ 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"

ВЫИГРАЙТЕ 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%" 
Другие вопросы по тегам