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>
Другие вопросы по тегам