Docbook - больше изображений на одной фигуре
Есть ли в Docbook что-то похожее на Subfig от LaTeX?
Я хочу поместить два изображения в фигуру рядом - как это делается в Docbook?
3 ответа
Вы можете иметь два (или более) изображения внутри одной фигуры.
<figure><title>The Pythagorean Theorem Illustrated</title>
<mediaobject>
<imageobject>
<imagedata fileref="figures/pythag.png"/>
</imageobject>
<textobject><phrase>An illustration of the Pythagorean Theorem</phrase></textobject>
</mediaobject>
<mediaobject>
<imageobject>
<imagedata fileref="figures/pythag2.png"/>
</imageobject>
<textobject><phrase>the second</phrase></textobject>
</mediaobject>
</figure>
Но в соответствии с http://docbook.org/tdg/en/html/figure.html стандартом DocBook не указано, как эти элементы должны быть представлены по отношению друг к другу. Другими словами, вы должны развивать свое представление самостоятельно.
Если у вас есть XSLT для преобразования DocBook в HTML (как у меня), вы можете добавить правило CSS для изображений внутри фигурного блока для всплытия.
DocBook 5.2 предлагает функцию подфигур из LaTeX с использованием формальной группы (доступно с b05). Пример akond будет выглядеть так (и будет работать, как ожидалось, после обновления инструментария):
<formalgroup>
<title>The Pythagorean Theorem Illustrated</title>
<figure>
<title>An illustration of the Pythagorean Theorem</title>
<mediaobject>
<imageobject>
<imagedata fileref="figures/pythag.png"/>
</imageobject>
</mediaobject>
</figure>
<figure>
<title>The second illustration of the Pythagorean Theorem</title>
<mediaobject>
<imageobject>
<imagedata fileref="figures/pythag2.png"/>
</imageobject>
</mediaobject>
</figure>
</formalgroup>
Вы можете обойти ограничения, используя два встроенных медиаобъекта, имеющих соответствующий размер.
<inlinemediaobject>
<imageobject><imagedata fileref='image1' /></imageobject>
</inlinemediaobject>
<inlinemediaobject>
<imageobject><imagedata fileref='image2' /></imageobject>
</inlinemediaobject>
Это работает очень хорошо со многими таблицами стилей, хотя конечный результат будет зависеть от вашего издателя. Я никогда не думал, что это был очень "хороший" XML, хотя...
Вот как я это сделал (после многих попыток....) - я использую это для создания PDF (с помощью publican для создания PDF). Мне нужно будет проверить, будет ли работать с HTML....
<figure id="fig09">
<title>.....</title>
<inlinemediaobject>
<imageobject>
<imagedata align="left" fileref="images/waveformSingle.png" scale="30"/>
</imageobject>
</inlinemediaobject>
<inlinemediaobject>
<imageobject>
<imagedata align="right" fileref="images/waveformAll.png" scale="30"/>
</imageobject>
<textobject>
<phrase>.....</phrase>
</textobject>
</inlinemediaobject>
</figure>