
Soy nuevo en TeX y trabajo en una aplicación para iPhone/iPad que muestra páginas de una colección de documentos PDF. Cada documento PDF de la colección contiene una o más expresiones matemáticas. Cada archivo PDF es bastante pequeño, pero la colección general tiene miles de archivos.
Usando una configuración LaTeX predeterminada, cada archivo termina conteniendo alrededor de 3 a 8 fuentes Postscript Tipo 1 subconjuntos (Latin Modern, Computer Modern, etc.), y hay mucha repetición de fuentes de un archivo a otro.
Estoy intentando un experimento para ver si podemos disminuir el tamaño total de la colección de documentos (tenga en cuenta que otra solución obvia es fusionar los archivos PDF pequeños en archivos PDF más grandes es problemático por razones que no explicaré aquí):
A partir de iOS 13, las aplicaciones pueden instalar fuentes. Es posible que pueda reducir el tamaño de la colección general si no incrusto ninguna fuente en los documentos PDF individuales. En cambio, mi aplicación instalaría las fuentes necesarias y, con suerte, el marco de visualización de PDF de iOS (PDFKit) recogerá todas las fuentes necesarias para mostrar los documentos PDF desde su entorno. (En la especificación PDF, se supone que los lectores deben buscar de forma predeterminada fuentes en el entorno de visualización si no se pueden encontrar dentro del documento).
Una limitación es que el nuevo marco de gestión de fuentes de iOS sólo funciona con lo que Apple llama fuentes "modernas": TrueType y OpenType. Varias de las fuentes que TeX usa por defecto (Computer Modern, Latin Modern, etc.) no se pueden instalar porque son fuentes Postscript Type 1, que Apple aparentemente considera una tecnología no "moderna" de los años 80.
Para este experimento, creé un archivo de prueba simple que usa fuentes Unicode-math y OpenType (lo que requirió cambiar de LaTeX a LuaLaTeX). No estoy seguro de que fuera necesario usar Unicode-math, pero fue una manera fácil de incorporar varios paquetes de fuentes 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}
Me encuentro con algunos inconvenientes y necesito ayuda con las siguientes preguntas:
Pregunta 1:Cuando genero un archivo PDF usando la fuente anterior, luego lo miro con el cuadro de diálogo Propiedades/Fuentes en Acrobat Reader, veo las fuentes TeXGyrePagella en la lista, pero se describen como "Tipo 1 (CID)". Esperaba que la descripción dijera algo así como "OpenType". Supongo que "Tipo 1 (CID)" es una descripción más específica de un tipo de fuente OpenType. ¿Alguien puede confirmar mi suposición? (Vea la captura de pantalla al final de esta pregunta).
Pregunta 2:¿Cómo puedo generar un archivo PDF en el que las fuentes no estén incrustadas en absoluto? Veo muchos consejos en tex.stackexchange sobre cómo generar archivos PDF donde se incrusta toda la fuente sin subconjuntos, pero quiero hacer lo contrario: no quiero que se incruste ninguna fuente.
Pregunta 2b:Al experimentar con LaTeX, pude eliminar algunas de las fuentes incrustadas usando los comandos \pdfcompresslevel=0
y \pdfobjcompresslevel=0
. ¿Cuál es el equivalente de estos comandos en el entorno LuaLaTeX?
Respuesta1
Intente restringir las preguntas a una sola pregunta en el futuro, pero están estrechamente relacionadas, por lo que responderé de todos modos.
¿Por qué se utiliza el Tipo 1 (CID) en lugar de OpenType? Es posible importar directamente fuentes OpenType en archivos PDF, pero eso no se hace en ningún motor TeX que conozco. En cambio, especialmente para las fuentes OpenType basadas en Tipo 1 (normalmente archivos de fuentes que terminan en .otf
en lugar de .ttf
), solo los datos de glifos reales (en formato CFF (CFF es una versión comprimida de Tipo 1)) se extraen del archivo OpenType y se incluyen en el PDF. archivo directamente, sin estar envuelto en la estructura OpenType. Este es solo un pequeño subconjunto de la información disponible en las fuentes OpenType, especialmente se pierde información sobre Ligaduras/Kerning. (Esto se hace principalmente por compatibilidad y porque esta información no es necesaria: todo el diseño de fuente/ligadura/interletraje ya lo maneja TeX, por lo que no tiene sentido agregar esta información).
¿Puedes desactivar la incrustación de fuentes? Sí, pero no deberías. La conversión de OpenType a una fuente CFF pura y algunos otros cambios internos que LuaTeX hace a una fuente conducen a una situación en la que todo funciona bien si la fuente está incrustada, pero una fuente separada probablemente no funcionaría, ya sea porque tiene una Por lo tanto, no se encuentra un formato diferente o porque algunos valores cambiaron y, por lo tanto, la fuente se muestra incorrectamente. Además, los archivos PDF acceden a fuentes OpenType externas de otra manera que las fuentes internas y la especificación deja definidos algunos aspectos de la implementación, por lo que TeX básicamente no tendría forma de seleccionar de manera confiable el glifo correcto de las fuentes OpenType externas, incluso si configurara todo para usar OpenType. fuentes directamente. Si todavía quieres intentarlo, miraForzar a lualatex a **no incrustar** fuentes
El equivalente de LuaTeX a
\pdfcompresslevel=0
\pdfobjcompresslevel=0
es
\pdfvariable compresslevel=0
\pdfvariable objcompresslevel=0
pero a menudo es mejor hacer lo mismo usando, l3pdf
que funciona en casi todos los motores:
\usepackage{l3pdf}
\ExplSyntaxOn
\pdf_uncompress:
\ExplSyntaxOff
Pero deshabilitar la compresión no eliminaría las fuentes incrustadas, por lo que no estoy seguro de qué estás intentando archivar allí.