6

Sphinx doc jeneratörünü kullanarak, belgelerin HTML yapıları için .png resimlerini kullanmaya çalışıyorum ve sonra PDF/LATEx için kullanılan .svg görüntülerine sahip olmak istiyorum.Sphinx belgelerini kullanma Lateks/PDF yapıları için HTML yapıları ve pdf görüntü formatları için png görüntü formatlarını nasıl belirleyebilirim?

Bölümleri "HTML build" olarak "etiketlemek" ve "Latex build" olarak nasıl "etiketlenir" bilen var mı?

Alkış

cevap

15

bu seçeneklerden bir göz atın:

  1. Görüntü dosya adı joker: documentation itibaren

    .. image:: gnu.* 
    

    :., "Örneğin dosya adı gnu eğer * oldu Kaynak ağacında gnu.pdf ve gnu.png bulunan iki dosya var, LaTeX kurucusu eskiyi seçerken, HTML oluşturucu bunu tercih ederdi.

  2. only direktif:

    .. only:: latex 
    
        This appears only in LaTeX output. 
    
    .. only:: html 
    
        This appears only in HTML output. 
    
+0

Teşekkür ..sadece :: tam olarak aradığım şey :) Dokümanlarda gördüğümü hatırlıyorum ve bir gün buna ihtiyacım olduğunu düşünürdüm ve hemen unuttuğumdan sonra tekrar bulamadım! Şerefe! –

+0

Mükemmel! Bu, HTML oluşturucunun bir SVG ve bir PDF'yi resim olarak kullanmak için LaTeX kullanması için çalışır. – davidjb

10

otomatik olarak uygun çıkış biçimleri oluşturmak için makefile kullanmak mümkündür.

using Sphinx with SVG and LaTeX PDF output için benzer bir işlemi gösteren bir öğretici de mevcuttur.

  1. sizin .rst kaynağındaki görüntüyü filename wildcard option kullanın.

    .. image:: my_image.* 
    
  2. Kullanım Inkscape derleme sırasında PDF ve PNG içine kaynak görüntüleri dönüştürmek için.

    ... 
    clean: clean-images 
    ... 
    html: images-png 
    ... 
    latex: images-pdf 
    ... 
    latexpdf: images-pdf 
    ... 
    
    :

    SOURCEDIR  = source 
    #IMAGEDIRS can be a list of directories that contain SVG files and are relative to the SOURCEDIR 
    IMAGEDIRS  = _images 
    
    # SVG to PDF conversion 
    SVG2PDF  = inkscape 
    SVG2PDF_FLAGS = -C 
    
    # SVG to PNG conversion 
    SVG2PNG  = inkscape 
    SVG2PNG_FLAGS = -C -d=90 --export-background-opacity=\#00 
    
    # Pattern rule for converting SVG to PDF 
    %.pdf : %.svg 
        $(SVG2PDF) $(SVG2PDF_FLAGS) -f $< -A [email protected] 
    
    # Pattern rule for converting SVG to PNG 
    %.png : %.svg 
        $(SVG2PNG) $(SVG2PNG_FLAGS) -f $< -e [email protected] 
    
    # Build a list of SVG files to convert to PDFs 
    PDFs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.pdf,$(wildcard $(SOURCEDIR)/$(dir)/*.svg))) 
    
    # Build a list of SVG files to convert to PNGs 
    PNGs := $(foreach dir, $(IMAGEDIRS), $(patsubst %.svg,%.png,$(wildcard $(SOURCEDIR)/$(dir)/*.svg))) 
    
    # Make a rule to build the PDFs 
    images-pdf: $(PDFs) 
    
    # Make a rule to build the PNGs 
    images-png: $(PNGs) 
    
    # Make a rule to build the images 
    images: images-pdf images-png 
    
    clean-pdf: 
        -rm $(PDFs) 
    
    clean-png: 
        -rm $(PNGs) 
    
    clean-images: clean-pdf clean-png 
    
    Nihayet

    , ilgili görüntü hedefleri üzerinde bir bağımlılık var clean, latex ve latexpdf kuralları güncelleme: Eğer Makefile aşağıdaki kodu ekleyerek derleme sırasında otomatik olarak yapabilirsiniz

    Artık görüntülerinizi make images yazarak oluşturabilir ve make clean-images ile temizleyebilirsiniz. make html, make latex ve make latexpdf öğelerini kullanarak, resimlerinizin güncel olduğundan emin olun. Bir sorun, Sphinx'in varsayılan olarak, HTML çıktısında PNG'ye göre SVG'yi tercih etmesinin varsayılan olmasıdır. Tercihinizi conf.py dosyanızda geçersiz kılarak düzeltebilirsiniz.

    İçe aktarımdan sonra, conf.py dosyanızın üst kısmına yakın olarak aşağıdaki satırları ekleyin. @mzjn

    # Redefine supported_image_types for the HTML builder 
    from sphinx.builders.html import StandaloneHTMLBuilder 
    StandaloneHTMLBuilder.supported_image_types = ['image/png', 'image/svg+xml', 
                 'image/gif', 'image/jpeg'] 
    
İlgili konular