Menata letak TeX với ZIP I/O

Konversi TeX ke PDF menggunakan arsip ZIP sebagai input và output. API untuk C++

 

Bahasa TeX adalah alat penataan letak yang memungkinkan Anda membuat dokumen profesional tanpa memusingkan pemformatan. Dengan TeX, Anda memasukkan teks biasa yang berisi fragmen teks dari sebuah dokumen bersama dengan perintah yang mengontrol output. Di phần output, Anda akan mendapatkan file terformat dalam format yang diinginkan (ditentukan). Để hiểu rõ hơn về input và output TeX, hãy tham khảo tài liệu TeX.

TeX cũng là một hệ thống mạnh mẽ và tiên tiến, nhưng nó không được sử dụng rộng rãi bên ngoài các vòng tròn học thuật và khoa học. Mặt khác, PDF là một định dạng di động có thể dễ dàng xem trên hầu hết các thiết bị và được chấp nhận rộng rãi hơn. Khả năng đọc PDF có mặt trên mọi thiết bị, trong hầu hết các trình duyệt hiện đại. Việc chuyển đổi TeX sang PDF cho phép chia sẻ các tài liệu với lượng khán giả rộng hơn và cung cấp một định dạng dễ tiếp cận hơn cho những người không có phần mềm chuyên dụng. Ngoài ra, PDF cung cấp một số lợi thế so với TeX, chẳng hạn như kết xuất phông chữ tốt hơn, hỗ trợ tính tương tác và kiểm soát kích thước cũng như bố cục trang dễ dàng hơn.

Mã C++ bên dưới sắp chữ một tệp TeX, tạo một PDF, sau đó được lưu vào kho lưu trữ ZIP trên hệ thống tệp cục bộ. Để hoàn thành tác vụ này, hãy sử dụng Aspose.TeX API cho C++, đây là một công cụ xử lý và chuyển đổi tài liệu giàu tính năng, mạnh mẽ và dễ sử dụng. Để cài đặt API, hãy mở trình quản lý gói NuGet và tìm kiếm Aspose.TeX.Cpp. Ngoài ra, bạn có thể sử dụng lệnh sau trong Package Manager Console:

Package Manager Console Command

PM> Install-Package Aspose.TeX.Cpp

Trong mã bên dưới, TeX lấy tệp đầu vào chính từ một kho lưu trữ ZIP, chuyển đổi nó thành PDF và được ghi vào một kho lưu trữ ZIP khác. Làm theo hướng dẫn:

  1. Mở một luồng chứa kho lưu trữ ZIP sẽ đóng vai trò là thư mục làm việc đầu vào. Bạn có thể tùy chọn chỉ định một thư mục con trong kho lưu trữ. Nếu không, tệp sẽ được tìm kiếm trong toàn bộ kho lưu trữ.
  2. Tạo một luồng tệp cho một kho lưu trữ ZIP mới để đóng vai trò là thư mục làm việc đầu ra.
  3. Tạo các tùy chọn sắp chữ cho định dạng Object TeX trên phần mở rộng công cụ Object TeX.
  4. Chỉ định các thư mục làm việc của kho lưu trữ ZIP cho đầu vào và đầu ra bằng cách sử dụng các lớp InputZipDirectoryOutputZipDirectory .
  5. Chỉ định bảng điều khiển (console) làm thiết bị đầu cuối đầu ra.
  6. Sử dụng lớp PdfSaveOptions , chỉ định các tùy chọn lưu cho các tùy chọn sắp chữ.
  7. Khởi tạo lớp TeXJob truyền tên tệp đầu vào chính, một đối tượng PdfDevice mới được tạo và các tùy chọn sắp chữ làm đối số. Chạy chuyển đổi bằng cách gọi phương thức Run().
  8. Hoàn tất kho lưu trữ ZIP đầu ra.

Ví dụ mã C++: Chuyển đổi TeX sang PDF với đầu vào và đầu ra ZIP

using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;
// Open a stream on a ZIP archive that will serve as the input working directory.
System::SharedPtr<System::IO::Stream> inZipStream =
    System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
// Clearing resources under the 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
try
{
    System::SharedPtr<System::IO::Stream> outZipStream =
        System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
    // Clearing resources under the 'using' statement
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    try
    {
        // Create typesetting options for the default Object TeX format on the Object TeX engine extension.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
        // Specify a ZIP archive working directory for the input.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
        // Specify a ZIP archive working directory for the output.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
        // Specify console as output terminal.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());

        // Create and specify saving options.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
        // Run the typesetting job.
        System::MakeObject<Aspose::TeX::TeXJob>(u"hello-world", System::MakeObject<PdfDevice>(), options)->Run();

        // Finalize the output ZIP archive.
        (System::DynamicCast<Aspose::TeX::IO::OutputZipDirectory>(options->get_OutputWorkingDirectory()))->Finish();
    }
    catch(...)
    {
        __dispose_guard_0.SetCurrentException(std::current_exception());
    }
}
catch(...)
{
    __dispose_guard_1.SetCurrentException(std::current_exception());
}



Pertanyaan Umum

1. Bisakah saya mengeset dokumen TeX menggunakan file ZIP sebagai input?

Aspose.TeX mendukung pembacaan file sumber TeX dari arsip terkompresi seperti file ZIP. Anda dapat memasukkan semua file yang diperlukan, termasuk file sumber TeX, gambar, dan sumber daya tambahan, dalam arsip ZIP dan kemudian menentukan file ZIP sebagai input ke kompiler LaTeX. Hal ini memungkinkan pengorganisasian dan distribusi proyek LaTeX dengan mudah, terutama ketika berhadapan dengan dokumen besar atau kompleks dengan banyak ketergantungan.

2. Apakah ada keuntungan menggunakan file ZIP untuk penyusunan huruf dokumen TeX?

Ya, menggunakan file ZIP untuk penyusunan huruf dokumen TeX menawarkan beberapa keuntungan. Pertama, file ZIP menyediakan cara mudah untuk mengemas dan mengatur beberapa file yang terkait dengan proyek LaTeX, termasuk file sumber TeX, bibliografi, gambar, dan file gaya, ke dalam satu arsip terkompresi. Hal ini menyederhanakan distribusi dan berbagi dokumen LaTeX, terutama saat berkolaborasi dengan orang lain atau berbagi proyek secara online.

3. Bagaimana cara mengeset file TeX?

Untuk mengeset file TeX menggunakan Solusi API Aspose.TeX, Anda perlu membuat opsi konversi untuk format Object TeX atau Object LaTeX berdasarkan ekstensi mesin Object TeX. Kemudian tentukan direktori kerja sistem file untuk output. Terakhir, buat instance kelas TeXJob dan jalankan proses penyusunan huruf menggunakan metode TeXJob.Run().

TeX What is TeX File Format

TeX adalah sistem penyusunan tipografi dan bahasa pemrograman yang memungkinkan pembuatan dokumen berkualitas tinggi, terutama dengan rumus matematika. File .tex berisi teks biasa yang diproses oleh mesin TeX (pdfTeX, XeTeX, LuaTeX) menjadi PDF atau DVI.