Libreoffice'deki tüm görüntüleri açıklamalarıyla nasıl değiştirebilirim?


12

TexMaths uzantısı kullanılarak oluşturulan svg görüntüleri bir sürü içeren çok uzun bir belge var. Bu uzantı, girilen denklemin (veya denklem setinin) svg görüntüsünü oluşturmak için lateks kurulumunu kullanır. Her denklemin (veya denklem kümesinin) lateks kodu, açıklamasının bir parçası olarak görüntüye gömülür. Böyle bir Açıklamaya, svg görüntüsüne sağ tıklayıp Açıklama seçeneğini belirleyerek erişilebilir.

Tüm svg görüntülerini katıştırılmış açıklamalarla uygun bir makro kullanarak değiştirmek istiyorum.

örneğin

Einstein'ın ünlü denklemi, [svg gömülü denklemi: E = mc 2 ], kütlenin enerjiye dönüştürülebileceğini ve tam tersini söyler.

için

Einstein'ın ünlü denklemi E = mc ^ 2 bize kütlenin enerjiye dönüştürülebileceğini söyler ya da tam tersi.

Bu, sayısız TexMath denklemi içeren odt dosyasını elle LaTeX'e dönüştürmeme izin verecektir.


4
İçinde cevap bir göz atın LibreOffice Writer bir belgedeki tüm resimleri nasıl kaldırılır? . Size yapmak istediğiniz isteğin temellerini verecektir, ancak biraz ayarlamanız gerekecektir. Gerekli değişiklikleri yapamıyorsanız, bunu yapabilirim; ama birkaç günlüğüne başaramazdım.
chaskes

4
Tnx çok. Aslında soruyu sormadan önce yukarıdaki yazıyı inceledim. Genel plan, her svg görüntüsüne geçmek için bir döngü yapmaktır. Her görüntü için açıklamayı okuyun ve gereksiz karakterleri kaldırın, böylece kalan şey saf bir denklem veya \ begin {} .. \ end {} gibi bir şeydir. Sonra svg görüntüsünü kaldırın. Şimdi şaşkın olduğum şey, metni silinen görüntünün konumuna koymak meselesidir. Bu arada çoğu karakter olarak tutturulur.
user30131

Sadece bir fikir, graphmonkey'i libre-ofisinin kaynak kod kısmı ile birleştirmeye çalışın simgeler / resimler?
dschinn1001

@ dschinn1001 Teşekkürler, BTW TexMaths formüller için bir eklentidir. Daha fazla açıklayabilir misiniz? Graphmonky'nin TexMaths draw nesnelerini açıklamasına nasıl dönüştüreceği konusunda bir yapıştırıcı yapamadım. Başka bir deyişle daha önce graphmonkey'i duymadım; Bir seçeneği var mı, sorunu çözebileceğini düşündünüz mü?
user.dz

Yanıtlar:


2

Bu, Makroları kullanmadan farklı bir yoldur. Gibi .odtdosya temelde sadece sıkıştırılmış dosyalar ve ana dosya bir XML olduğunu.

  1. XML stil sayfası oluşturma texmath_raw_equation.xslt

    Bağlantı frenlerinin olması durumunda, tam içerik burada.

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" version="1.0">
    
        <xsl:template match="@* | node()">
          <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
          </xsl:copy>
        </xsl:template>
    
        <xsl:template match="draw:g">
            <xsl:value-of select="svg:desc"/>
        </xsl:template>
    
    </xsl:stylesheet>
    
  2. Özü .odtdosyayı tmpklasör, örneğin texmath_test.odt:

    7z x -otmp texmath_test.odt
    
  3. TexMath resmini ( <draw:g></draw:g>etikete göre tutun ) açıklamasıyla ( <svg:desc></svg:desc>etikete göre tutun ) değiştirin

    xsltproc -o content.xml texmath_raw_equation.xslt tmp/content.xml
    mv content.xml tmp/content.xml
    
  4. Yeni .odtdosyaya geri sıkıştır

    cd tmp
    7z a -tzip ../texmath_test_new.odt *
    cd ..
    rm -r tmp
    

Referanslar:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.