вторник, марта 29, 2011

Изготовление презентаций из Asciidoc с помощью Beamer

В одном из недавних постов я говорил, что из Asciidoc-разметки можно сделать много всяких разных выходных форматов. Среди всего прочего, можно делать и презентации. Не слишком «навороченные», правда, но для многих случаев этого хватает.

Схема такая:



Сначала из Asciidoc делаем DocBook. Это можно сделать командой вида asciidoc -b docbook input.txt. Только вот по такой команде получится файл в формате DocBook 4.5, а моя XSL-таблица понимает только DocBook 5.0+. Поэтому берём конфигурационные файлы asciidoc для изготовления DocBook 5.0, например, отсюда, и даём команду вида

asciidoc -b topic input.txt

Получается файл input.xml. Теперь берём XSL-таблицу, преобразующую DocBook 5.0+ в TeX-овский исходник, например, здесь (эта таблица заведомо не полная, но для моих задач хватает; кому не хватит — добавляйте туда свои шаблоны :)), и даём команду вида

xsltproc beamer.xsl input.xml > presentation.tex

Ну а теперь компилируем этот исходник командой вида

xelatex presentation.tex

(может понадобиться запустить эту команду несколько раз, чтобы проставились все ссылки и т.п).

Таким образом сделана, в частности, упомянутая в одном из предыдущих постов презентация (из вот такого исходника).

8 комментариев:

  1. Прикольно.

    Слишком много длинных фраз на слайдах.

    ОтветитьУдалить
  2. даже ссылку дам

    www.methods.co.nz/asciidoc/slidy.html

    ОтветитьУдалить
  3. Slidy это из другой оперы. Все же это web-презентации.

    ОтветитьУдалить
  4. 2khades, долго думал писать или не... Ну да ладно, напишу.

    Не в обиду, но _очевидно_, что если человек делает с asciidoc достаточно нетривиальные вещи (у меня вообще, в первый раз, от настройки XSL-шаблона чуть мозг не высох и до сих пор еще трудно это дается).

    То вероятнее всего он уже www.methods.co.nz/asciidoc
    изучил вдоль и поперек.

    ОтветитьУдалить
  5. Красота, наконец руки дошли попробовать :), на послезавтра надо презентацию делать, и уже очевидно в чем :).

    Есть правда ньюанс:
    русский текст в вербатиме xelatex похерил абсолютно, я периодически с этим сталкиваюсь, но никак не могу найти решение. Получилось такое:
    ----
    [os="linux"]
    лдучхцмцё шднп designer.
    ----

    Т.е. кириллица есть, но буквы перепутаны. У меня такая борода со шрифтами семейства Либерейшн
    \setmainfont{Liberation Serif}
    \setsansfont{Ubuntu}
    \setmonofont{Liberation Mono}

    Потому (ну и не только), приходиться использовать "вражеские" шрифты:
    \setmainfont[Scale=1]{Times New Roman}

    \setsansfont[Scale=0.9]{Arial}

    \setromanfont[Scale=1]{Times New Roman}

    \setmonofont[Scale=1]{Courier New}


    Вопрос конечно из разряда "для телепатов", но вдруг это известная проблема и мне просто не везет правильно запрос для поиска составить :).
    texlive 2009-* + debian testing

    ОтветитьУдалить
  6. Не сталкивался. Какой дистрибутив? Может от умолчательных настроек xelatex зависеть.

    Попробуйте перед \setmainfont итп вставить вот такое:

    \newfontfamily\russianfont{Liberation Serif}

    ну и то же для других шрифтов. Это, правда, попытка решения методом тыка, я плохо представляю, как в xetex шрифтовая подсистема работает.

    ОтветитьУдалить
  7. А, не прочитал про дебиан. Странно, у меня на дебиан тестинг/анстейбл всё работает :/

    ОтветитьУдалить