Cómo reemplazar todas las imágenes en Libreoffice con su descripción

12

Tengo un documento muy largo que contiene muchas imágenes svg creadas con la extensión TexMaths. Esta extensión utiliza la instalación de látex para crear una imagen svg de la ecuación ingresada (o conjunto de ecuaciones). El código de látex para cada ecuación (o conjunto de ecuaciones) está incrustado en la imagen como parte de su Descripción. Se puede acceder a dicha Descripción haciendo clic derecho en la imagen svg y seleccionando la opción Descripción.

Quiero reemplazar todas las imágenes svg usando una macro adecuada, por las descripciones incrustadas.

por ejemplo de

La famosa ecuación de Einstein, [svg ecuación incrustada: E = mc 2 ], nos dice que la masa se puede convertir en energía y viceversa.

A

La famosa ecuación de Einstein, E = mc ^ 2, nos dice que la masa se puede convertir en energía y viceversa.

Esto me permitirá convertir a mano el archivo impar que contiene numerosas ecuaciones TexMaths a LaTeX.

usuario30131
fuente
44
Eche un vistazo a la respuesta en ¿Cómo eliminar todas las imágenes de un documento en LibreOffice Writer? . Te dará los conceptos básicos de lo que quieres hacer, pero tendrás que ajustarlo un poco. Si no puede realizar los cambios necesarios, podría hacerlo; pero no podría lograrlo por unos días.
chaskes
44
Bueno, muchas gracias. De hecho, miré la publicación anterior antes de hacer la pregunta. El plan general es hacer un bucle para pasar por cada imagen svg. Para cada imagen, lea la descripción y elimine los caracteres innecesarios para que quede una ecuación pura o algo así como \ begin {} .. \ end {}. Luego, elimine la imagen svg. Lo que ahora me intriga es la cuestión de colocar el texto en la ubicación de la imagen eliminada. La mayoría de ellos están anclados como personajes por cierto.
user30131
¿Es una idea, intente combinar graphmonkey con el código fuente que forma parte de libre-office en relación con los iconos / imágenes?
dschinn1001
@ dschinn1001 Gracias, BTW TexMaths es un complemento para fórmulas. ¿Podría por favor explicar más? No pude hacer una idea de cómo graphmonky convertirá TexMaths dibujar objetos a su descripción. En otras palabras, no escuché sobre graphmonkey antes; ¿Tiene una opción, pensaste que podría conducir a resolver el problema?
user.dz

Respuestas:

2

Esta es una forma diferente sin usar macros. Como el .odtarchivo es básicamente solo archivos comprimidos y el archivo principal es un XML.

  1. Crear una hoja de estilo XML texmath_raw_equation.xslt

    El contenido completo está aquí, por si acaso, frenos de enlace.

    <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. Extraer .odt archivo a tmpcarpeta, ejemplo texmath_test.odt:

    7z x -otmp texmath_test.odt
    
  3. Reemplazar imagen TexMath (mantener presionada por <draw:g></draw:g> etiqueta) con su descripción (mantener por <svg:desc></svg:desc>etiqueta)

    xsltproc -o content.xml texmath_raw_equation.xslt tmp/content.xml
    mv content.xml tmp/content.xml
    
  4. Comprimir de nuevo a nuevo .odt archivo

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

Referencias

user.dz
fuente