Cách thay thế tất cả hình ảnh trong Libreoffice bằng mô tả của chúng


12

Tôi có một tài liệu rất dài chứa rất nhiều hình ảnh svg được tạo bằng phần mở rộng TexMaths. Phần mở rộng này sử dụng cài đặt latex để tạo hình ảnh svg của phương trình được nhập (hoặc bộ phương trình). Mã latex cho mỗi phương trình (hoặc bộ phương trình) được nhúng vào hình ảnh như là một phần của Mô tả. Một mô tả như vậy có thể được truy cập bằng cách nhấp chuột phải vào hình ảnh svg và chọn tùy chọn Mô tả.

Tôi muốn thay thế tất cả các hình ảnh svg bằng cách sử dụng một macro phù hợp, bằng các mô tả được nhúng.

ví dụ từ

Phương trình nổi tiếng của Einstein, [phương trình nhúng Svg: E = mc 2 ], cho chúng ta biết rằng khối lượng có thể được chuyển đổi thành năng lượng và ngược lại.

Đến

Phương trình nổi tiếng của Einstein, E = mc ^ 2, cho chúng ta biết rằng khối lượng có thể được chuyển đổi thành năng lượng và ngược lại.

Điều này sẽ cho phép tôi chuyển đổi bằng tay tệp odt chứa nhiều phương trình TexMath sang LaTeX.


4
Hãy xem câu trả lời trong Làm thế nào để xóa tất cả các hình ảnh trong một tài liệu trong LibreOffice Writer? . Nó sẽ cung cấp cho bạn những điều cơ bản muốn bạn muốn làm, nhưng bạn sẽ cần điều chỉnh nó một chút. Nếu bạn không thể thực hiện các thay đổi cần thiết, tôi có thể làm điều đó; nhưng tôi sẽ không thể đến đó trong vài ngày.
chaskes

4
Chà, tnx rất nhiều. Trong thực tế, tôi đã xem bài đã cho ở trên trước khi đặt câu hỏi. Kế hoạch chung là tạo một vòng lặp để đi qua từng hình ảnh svg. Đối với mỗi hình ảnh, hãy đọc mô tả và loại bỏ các ký tự không cần thiết để những gì còn lại là một phương trình thuần túy hoặc một cái gì đó như \ started {} .. \ end {}. Sau đó loại bỏ hình ảnh svg. Điều tôi bối rối bây giờ, là vấn đề đặt văn bản ở vị trí của hình ảnh bị xóa. Nhân tiện, hầu hết được neo làm nhân vật.
dùng49531

Chỉ là một ý tưởng, hãy thử kết hợp graphmonkey với một phần mã nguồn của văn phòng libre liên quan đến các biểu tượng / hình ảnh?!
dschinn1001

@ dschinn1001 Cảm ơn bạn, BTW TexMaths là plugin cho công thức. Bạn có thể vui lòng giải thích thêm. Tôi không thể tạo ra một cách thức mà graphmonky sẽ chuyển đổi TexMaths vẽ các đối tượng vào mô tả của nó. Nói cách khác, tôi đã không nghe về graphmonkey trước đây; Liệu nó có một lựa chọn, bạn nghĩ rằng nó có thể dẫn đến giải quyết vấn đề?
user.dz

Câu trả lời:


2

Đây là một cách khác nhau mà không cần sử dụng Macros. Vì .odttệp về cơ bản chỉ là các tệp được nén và tệp chính là XML.

  1. Tạo một biểu định kiểu XML texmath_raw_equation.xslt

    Nội dung đầy đủ ở đây, chỉ trong trường hợp phanh liên kết.

    <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. Trích xuất .odttập tin vào tmpthư mục, ví dụ texmath_test.odt:

    7z x -otmp texmath_test.odt
    
  3. Thay thế hình ảnh TexMath (giữ theo <draw:g></draw:g>thẻ) bằng mô tả của nó (giữ theo <svg:desc></svg:desc>thẻ)

    xsltproc -o content.xml texmath_raw_equation.xslt tmp/content.xml
    mv content.xml tmp/content.xml
    
  4. Nén lại .odttệp mới

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

Người giới thiệu:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.