2017-07-05 1 views
1

Ich kann den Legendentext einer Figur in Sphinx nicht ausrichten.Angehängten Text in der Bildunterschrift ausrichten Sphinx

.. figure:: check_validity.png 
    :align: center 

    .. 

    Left: the source layer 

    Right: in blue the valid layer, in green the invalid layer and in red the error 
    layer 

Dies ist das Ergebnis:

enter image description here

Aber ich möchte beide Beschriftung links ausgerichtet haben. Ist das möglich ohne Tische zu benutzen?

+0

Haben Sie das Bild in Bezug auf die Seite ausrichten zentrieren möchten? Möchten Sie den Text für den Text relativ zur Seite oder zum Bild ausrichten? –

+0

Ich möchte den Text links relativ zum Bild ausrichten .. wissen Sie, ob das möglich ist? – matteo

Antwort

2

Ja, aber es ist sehr kludgy, erfordert benutzerdefinierte CSS, um die Breite jedes Bildes zu berücksichtigen.

Hier ist der HTML-Code, Sphinx für mich erzeugt:

<div class="figure align-center"> 
    <img src="check_validity.png" /> 
    <div class="legend"> 
     <p>Some text</p> 
     <p>Another sentence</p> 
    </div> 
</div> 

Je nach gewählten Thema, müssen Sie:

  1. die Breite der Bild (WI)
  2. bekommen und Breite des Inhaltsbereichs (WCA), die unmöglich sein könnte, wenn es ein fließender, variabler Breitenbereich ist
  3. den linken Rand berechnen: LM = (WCA - WI)/2
  4. gelten LM als am linken Rand auf den Absatz-Block mit einem CSS-Selektor

Es ist viel einfacher, nur Tabellen zu verwenden. Willkommen in den 1990er Jahren!

Hier ist der Rest Markup:

.. rst-class:: table-center 

+--------------------------------+ 
| .. figure:: check_validity.png | 
|        | 
| ..       | 
|        | 
| Left: the source layer  | 
|        | 
| Right: in blue the valid  | 
| layer, in green the invalid | 
| layer and in red the error | 
| layer      | 
+--------------------------------+ 

Und Sie werden einen benutzerdefinierten Stil zu Ihrer CSS-Datei hinzufügen müssen:

table.table-center { 
    margin-left: auto; 
    margin-right: auto; 
} 
+0

ok Ich sehe, dass es nicht einfach ist, das zu tun. Ich muss mich an css custom stylesheet wenden. Vielen Dank! – matteo