Composicão TeX com E/S ZIP

Converta TeX para PDF usando arquivos ZIP como entrada e saída. API para C++

 

A linguagem TeX é uma ferramenta de composição que permite criar documentos profissionais sem se preocupar com a formatação. Com o TeX, você insere texto simples contendo fragmentos de texto de um documento junto com comandos que controlam a saída. Na saída, você obterá um archivo formatado no formato desejado (especificado). Para uma melhor compreensão da entrada e saída do TeX, consulte a documentação do TeX.

O TeX é também um sistema poderoso e avançado, mas não é amplamente utilizado fora dos círculos acadêmicos e científicos. O PDF, por outro lado, é um formato portátil que pode ser facilmente visualizado na maioria dos dispositivos e é mais amplamente aceito. A capacidade de ler PDF está presente em todos os dispositivos, na maioria dos navegadores modernos. A conversão de TeX para PDF permite que os documentos sejam compartilhados com um público mais amplo e fornece um formato mais acessível para aqueles que não possuem software especializado. Além disso, o PDF oferece várias vantagens sobre o TeX, como melhor renderização de fontes, suporte para interatividade e controle mais fácil do tamanho e layout da página.

O código C++ abaixo compõe um arquivo TeX, criando um PDF, que é então salvo em um archivo ZIP no sistema de arquivos local. Para realizar esta tarefa, use a API Aspose.TeX para C++, que é uma ferramenta de processamento e conversão de documentos rica em recursos, poderosa e fácil de usar. Para instalar a API, abra o gerenciador de pacotes NuGet e procure por Aspose.TeX.Cpp. Alternativamente, você pode usar o seguinte comando no Console do Gerenciador de Pacotes:

Package Manager Console Command

PM> Install-Package Aspose.TeX.Cpp

No código abaixo, o TeX pega o archivo de entrada principal de um archivo ZIP, converte-o em um PDF, que é gravado em outro archivo ZIP. Siga a diretriz:

  1. Abra um fluxo contendo um archivo ZIP que servirá como diretório de trabalho de entrada. Você pode opcionalmente especificar um subdiretório no archivo. Caso contrário, o file será pesquisado em todo o archivo.
  2. Crie um fluxo de archivo para um novo archivo ZIP para servir como diretório de trabalho de saída.
  3. Crie opções de composição para o formato Object TeX na extensão do mecanismo Object TeX.
  4. Especifique os diretórios de trabalho do archivo ZIP para entrada e saída usando as classes InputZipDirectory e OutputZipDirectory .
  5. Especifique o console como terminal de saída.
  6. Usando a classe PdfSaveOptions , especifique as opções de salvamento para as opções de composição.
  7. Instancie a classe TeXJob passando o nome do file de entrada principal, um objeto PdfDevice recém-criado e as opções de composição como argumentos. Execute a conversão chamando o método Run().
  8. Finalize o archivo ZIP de saída.

Exemplo de código C++: Convertendo TeX para PDF com entrada e saída 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());
}



Perguntas frequentes

1. Posso digitar documentos TeX usando um arquivo ZIP como entrada?

Aspose.TeX suporta a leitura de arquivos de origem TeX de arquivos compactados como arquivos ZIP. Você pode incluir todos os arquivos necessários, incluindo arquivos de origem TeX, imagens e recursos adicionais, em um arquivo ZIP e, em seguida, especificar o arquivo ZIP como entrada para o compilador LaTeX. Isso permite a organização e distribuição conveniente de projetos LaTeX, especialmente ao lidar com documentos grandes ou complexos com múltiplas dependências.

2. Há alguma vantagem em usar arquivos ZIP para composição de documentos TeX?

Sim, usar arquivos ZIP para composição de documentos TeX oferece várias vantagens. Em primeiro lugar, os arquivos ZIP fornecem uma maneira conveniente de empacotar e organizar vários arquivos associados a um projeto LaTeX, incluindo arquivos fonte TeX, bibliografias, imagens e arquivos de estilo, em um único arquivo compactado. Isso simplifica a distribuição e o compartilhamento de documentos LaTeX, especialmente ao colaborar com outras pessoas ou compartilhar projetos on-line.

3. Como compor arquivos TeX?

Para compor arquivos TeX usando a solução API Aspose.TeX, você precisa criar opções de conversão para o formato Object TeX ou Object LaTeX com base na extensão do mecanismo Object TeX. Em seguida, especifique um diretório de trabalho do sistema de arquivos para a saída. Por fim, crie uma instância da classe TeXJob e execute o processo de composição usando o método TeXJob.Run().

TeX What is TeX File Format

TeX é um sistema de composição tipográfica e uma linguagem de programação que permite criar documentos de alta qualidade, especialmente com fórmulas matemáticas. Arquivos .tex são texto simples processados por motores TeX (pdfTeX, XeTeX, LuaTeX) para gerar PDF ou DVI.