Bagaimana cara mengganti semua gambar di Libreoffice dengan deskripsi mereka

12

Saya memiliki dokumen yang sangat panjang yang berisi banyak gambar svg yang dibuat menggunakan ekstensi TexMaths. Ekstensi ini menggunakan instalasi lateks untuk membuat gambar svg dari persamaan yang dimasukkan (atau set persamaan). Kode lateks untuk setiap persamaan (atau set persamaan) tertanam dalam gambar sebagai bagian dari Uraiannya. Deskripsi seperti itu dapat diakses dengan mengklik kanan gambar svg dan memilih opsi Deskripsi.

Saya ingin mengganti semua gambar svg menggunakan makro yang sesuai, dengan deskripsi yang disematkan.

misalnya dari

Persamaan Einstein yang terkenal, [svg embedded persamaan: E = mc 2 ], memberi tahu kita bahwa massa dapat dikonversi menjadi energi dan sebaliknya.

Untuk

Persamaan Einstein yang terkenal, E = mc ^ 2, memberi tahu kita bahwa massa dapat dikonversi menjadi energi dan sebaliknya.

Ini akan memungkinkan saya untuk mengkonversi dengan tangan file odt yang berisi banyak persamaan TexMaths ke LaTeX.

pengguna30131
sumber
4
Lihatlah jawabannya di Bagaimana menghapus semua gambar dalam dokumen di LibreOffice Writer? . Ini akan memberi Anda dasar-dasar keinginan yang ingin Anda lakukan, tetapi Anda perlu sedikit menyesuaikannya. Jika Anda tidak dapat melakukan perubahan yang diperlukan, saya mungkin dapat melakukannya; tetapi saya tidak akan bisa melakukannya selama beberapa hari.
chaskes
4
Baiklah, banyak. Sebenarnya saya melihat posting yang diberikan di atas sebelum mengajukan pertanyaan. Rencana umum adalah membuat loop untuk melewati setiap gambar svg. Untuk setiap gambar, baca deskripsi dan hapus karakter yang tidak perlu sehingga yang tersisa adalah persamaan murni atau sesuatu seperti \ begin {} .. \ end {}. Kemudian hapus gambar svg. Apa yang saya bingung sekarang, adalah masalah menempatkan teks di lokasi gambar yang dihapus. Ngomong-ngomong, sebagian besar ditambatkan sebagai karakter.
user30131
Sekadar ide, coba kombinasikan graphmonkey dengan bagian kode-sumber libre-office mengenai ikon / gambar ?!
dschinn1001
@ dschinn1001 Terima kasih, BTW TexMaths adalah plugin untuk formula. Bisakah Anda jelaskan lebih banyak. Saya tidak bisa membuat lem bagaimana graphmonky akan mengkonversi TexMaths menggambar objek ke deskripsi. Dengan kata lain saya tidak pernah mendengar tentang graphmonkey sebelumnya; Apakah ada opsi, Anda pikir itu dapat menyebabkan menyelesaikan masalah?
user.dz

Jawaban:

2

Ini adalah cara yang berbeda tanpa menggunakan Macro. Sebagai .odtfile pada dasarnya hanya file zip dan file utama adalah XML.

  1. Buat lembar gaya XML texmath_raw_equation.xslt

    Isi Lengkap ada di sini, hanya dalam kasus rem tautan.

    <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. Ekstrak .odtfile ke tmpfolder, contoh texmath_test.odt:

    7z x -otmp texmath_test.odt
    
  3. Ganti gambar TexMath (tahan dengan <draw:g></draw:g>tag) dengan deskripsinya (tahan dengan <svg:desc></svg:desc>tag)

    xsltproc -o content.xml texmath_raw_equation.xslt tmp/content.xml
    mv content.xml tmp/content.xml
    
  4. Kompres kembali ke .odtfile baru

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

Referensi:

user.dz
sumber