Gerando arquivos PDF com fontes matemáticas OpenType e sem incorporação de fontes

Gerando arquivos PDF com fontes matemáticas OpenType e sem incorporação de fontes

Sou novo no TeX e estou trabalhando em um aplicativo para iPhone/iPad que exibe páginas de uma coleção de documentos PDF. Cada documento PDF da coleção contém uma ou mais expressões matemáticas. Cada arquivo PDF é bastante pequeno, mas a coleção geral possui milhares de arquivos.

Usando uma configuração padrão do LaTeX, cada arquivo acaba contendo cerca de 3 a 8 fontes Postscript Tipo 1 subconjuntos (Latin Modern, Computer Modern, etc.), e há muita repetição de fontes de arquivo para arquivo.

Estou tentando fazer uma experiência para ver se podemos diminuir o tamanho geral da coleção de documentos (observe que outra solução óbvia, mesclar os pequenos arquivos PDF em arquivos PDF maiores é problemático por motivos que não abordarei aqui):

A partir do iOS 13, os aplicativos podem instalar fontes. Talvez eu consiga diminuir o tamanho da coleção geral não incorporando nenhuma fonte nos documentos PDF individuais. Em vez disso, meu aplicativo instalaria as fontes necessárias e, esperançosamente, a estrutura de exibição de PDF do iOS (PDFKit) selecionará todas as fontes necessárias para exibir os documentos PDF de seu ambiente. (Na especificação do PDF, os visualizadores devem procurar por padrão as fontes no ambiente de exibição se elas não puderem ser encontradas no documento.)

Uma limitação é que a nova estrutura de gerenciamento de fontes do iOS só funciona com o que a Apple chama de fontes “modernas”: TrueType e OpenType. Várias das fontes que o TeX usa por padrão (Computer Modern, Latin Modern, etc.) não podem ser instaladas porque são fontes Postscript Tipo 1, que a Apple aparentemente considera uma tecnologia não "moderna" dos anos 80.

Para este experimento, criei um arquivo de teste simples que usa fontes unicode-math e OpenType (o que exigiu a mudança do uso de LaTeX para LuaLaTeX). Não tenho certeza se foi necessário usar matemática unicode, mas foi uma maneira fácil de trazer vários pacotes de fontes OpenType:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{texgyrepagella-regular.otf}
\usepackage{unicode-math}
\usepackage{mathtools}
\setmathfont{texgyrepagella-math.otf}

\begin{document}
Here comes a math expression:
\[x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\]
\end{document}

Estou enfrentando alguns problemas e preciso de ajuda com as seguintes questões:

Questão 1:Quando eu gero um arquivo PDF usando a fonte acima e olho para ele na caixa de diálogo Propriedades/Fontes no Acrobat Reader, vejo as fontes TeXGyrePagella listadas, mas elas são descritas como "Tipo 1 (CID)". Eu esperava que a descrição dissesse algo como "OpenType". Presumo que "Tipo 1 (CID)" seja uma descrição mais específica de um tipo de fonte OpenType. Alguém pode confirmar minha suposição? (Veja a captura de tela no final desta pergunta.)

Questão 2:Como posso gerar um arquivo PDF no qual as fontes não estão incorporadas? Vejo muitos conselhos no tex.stackexchange sobre como gerar arquivos PDF onde toda a fonte está incorporada sem subconjuntos, mas quero fazer o oposto: não quero que nenhuma fonte seja incorporada.

Pergunta 2b:Experimentando o LaTeX, consegui eliminar algumas das fontes incorporadas usando os comandos \pdfcompresslevel=0e \pdfobjcompresslevel=0. Qual é o equivalente desses comandos no ambiente LuaLaTeX?

Captura de tela da caixa de diálogo Propriedades/Fontes do Adobe Reader:

Responder1

Por favor, tente restringir as perguntas a uma pergunta no futuro, mas elas estão intimamente relacionadas, então responderei de qualquer maneira.

Por que o Tipo 1 (CID) é usado em vez do OpenType? É possível importar diretamente fontes OpenType em arquivos PDF, mas isso não é feito em nenhum mecanismo TeX que eu conheça. Em vez disso, especialmente para fontes OpenType baseadas no Tipo 1 (normalmente arquivos de fonte que terminam com .otfem vez de .ttf), apenas os dados de glifo reais (no formato CFF (CFF é uma versão compactada do Tipo 1)) são extraídos do arquivo OpenType e incluídos no PDF arquivo diretamente, sem ser agrupado na estrutura OpenType. Este é apenas um pequeno subconjunto das informações disponíveis nas fontes OpenType, especialmente as informações sobre Ligaduras/Kerning são perdidas. (Isso é feito principalmente para compatibilidade e porque essas informações não são necessárias: todo o layout/ligadura/kerning da fonte já é tratado pelo próprio TeX, então não faz sentido adicionar essas informações.)

Você pode desativar a incorporação de fontes? Sim, mas você não deveria. A conversão de OpenType para uma fonte CFF pura e algumas outras mudanças internas que LuaTeX faz em uma fonte levam a uma situação em que tudo funciona bem se a fonte estiver incorporada, mas uma fonte separada provavelmente não funcionaria, seja porque tem um portanto, um formato diferente não foi encontrado ou porque alguns valores foram alterados e, portanto, a fonte é exibida incorretamente. Além disso, os arquivos PDF acessam fontes OpenType externas de uma maneira diferente das fontes internas e a especificação deixa alguns aspectos de implementação definidos, então o TeX basicamente não teria como selecionar com segurança o glifo correto de fontes OpenType externas, mesmo que configurasse tudo para usar OpenType fontes diretamente. Se você ainda quiser tentar, vejaForçar lualatex a **não incorporar** fontes

O LuaTeX equivalente a

\pdfcompresslevel=0
\pdfobjcompresslevel=0

é

\pdfvariable compresslevel=0
\pdfvariable objcompresslevel=0

mas muitas vezes é melhor fazer a mesma coisa usando l3pdfo que funciona em quase todos os motores:

\usepackage{l3pdf}
\ExplSyntaxOn
\pdf_uncompress:
\ExplSyntaxOff

Mas desabilitar a compactação não eliminaria nenhuma fonte incorporada, então não tenho certeza do que você está tentando arquivar lá.

informação relacionada