Як замінити всі зображення в Libreoffice їх описом


12

У мене дуже довгий документ, що містить безліч svg зображень, створених за допомогою розширення TexMaths. Це розширення використовує латексну установку для створення svg зображення введеного рівняння (або набору рівнянь). Код латексу для кожного рівняння (або набору рівнянь) вбудовується в зображення як частина його Опису. Такий Опис можна отримати, натиснувши правою кнопкою миші зображення svg та обравши опцію Опис.

Я хочу замінити всі SVG зображення на відповідний макрос на вбудовані описи.

наприклад від

Відоме рівняння Ейнштейна, [svg вбудоване рівняння: E = mc 2 ], говорить нам про те, що маса може бути перетворена в енергію і навпаки.

До

Відоме рівняння Ейнштейна, E = mc ^ 2, говорить нам, що масу можна перетворити в енергію і навпаки.

Це дозволить мені вручну перетворити непарний файл, що містить численні рівняння TexMaths, в LaTeX.


4
Подивіться на відповідь у розділі Як видалити всі зображення з документа в LibreOffice Writer? . Це дасть вам основи того, що ви хочете зробити, але вам потрібно буде трохи його відрегулювати. Якщо ви не в змозі внести потрібні зміни, я можу це зробити; але я не зміг би дістатися до нього кілька днів.
chaskes

4
Ну, tnx багато. Насправді я переглянув даний пост вище, перш ніж задавати питання. Загальний план - це цикл для проходження кожного зображення svg. Для кожного зображення прочитайте опис та видаліть непотрібні символи, щоб те, що залишилося, було чистим рівнянням чи чимось на кшталт \ begin {} .. \ end {}. Потім видаліть зображення svg. Що я зараз спантеличений, це питання розміщення тексту в місці видаленого зображення. До речі, більшість із них закріплена як персонажі.
user30131

Просто ідея, спробуйте поєднати graphmonkey з частиною вихідного коду libre-office щодо піктограм / зображень ?!
dschinn1001

@ dschinn1001 Дякую, BTW TexMaths - додаток для формул. Чи можете ви поясніть більше? Я не міг зробити клей, як graphmonky буде перетворювати TexMaths малювати об'єкти в його опис. Іншими словами, я раніше не чув про graphmonkey; Чи є у неї варіант, ти думав, що це може призвести до вирішення проблеми?
user.dz

Відповіді:


2

Це інший спосіб без використання макросів. Оскільки .odtфайл - це, як правило, лише заархівовані файли, а основний - XML

  1. Створіть аркуш стилів XML texmath_raw_equation.xslt

    Повний зміст тут, про всяк випадок, коли гальмо посилається.

    <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. Витягніть .odtфайл у tmpпапку, наприклад texmath_test.odt:

    7z x -otmp texmath_test.odt
    
  3. Замініть зображення TexMath (утримуйте <draw:g></draw:g>тегом) його описом (утримуйте <svg:desc></svg:desc>тегом)

    xsltproc -o content.xml texmath_raw_equation.xslt tmp/content.xml
    mv content.xml tmp/content.xml
    
  4. Стисніть назад до нового .odtфайлу

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

Список літератури:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.