
¿Cómo puedo utilizar KOMA-Script junto con el paquete mathbbol
?
%\documentclass{article} % works
\documentclass{scrartcl} % fails
\usepackage{mathbbol}
\usepackage{pdfx} % just to calm PDF/A-validators a bit
\begin{document}
\thispagestyle{empty}
$\scriptstyle\mathbb{E}$
\end{document}
pdflatex
(TeX Live 2019 en Ubuntu 18.04 LTS) no informa ningún error o advertencia. Sin embargo, tanto veraPDF como Preflight de Acrobat se quejan de la misma inconsistencia de fuentes. estados veraPDF
<validationReport profileName="PDF/A-1B validation profile" statement="PDF file is not compliant with Validation Profile requirements." isCompliant="false">
<details passedRules="102" failedRules="1" passedChecks="398" failedChecks="1">
<rule specification="ISO 19005-1:2005" clause="6.3.6" testNumber="1" status="failed" passedChecks="0" failedChecks="1">
<description>For every font embedded in a conforming file and used for rendering, the glyph width information in the font dictionary and
in the embedded font program shall be consistent.</description>
<object>Glyph</object>
<test>renderingMode == 3 || isWidthConsistent == null || isWidthConsistent == true</test>
<check status="failed">
<context>root/document[0]/pages[0](5 0 obj PDPage)/contentStream[0](7 0 obj PDContentStream)/operators[11]/usedGlyphs[0](ZCDUID+BBOLD7 69 0 0)</context>
</check>
</rule>
</details>
</validationReport>
y la verificación previa de Acrobat dice
List of glyph width mismatches (PDF data versus embedded font data)
649.3 versus 676.593 (676.593/1000)
FontForge confirma el ancho (676 donde "Tamaño Em" es 1000) de BBOLD7 en el PDF y RUPS (o $EDITOR) muestra efectivamente
<< /Type /Font /FirstChar 69 /LastChar 69 /Widths [649.3] … >>
¿Cuál es el desencadenante de esta inconsistencia?
El paquete pdfx
parece no afectar este problema. El problema desaparece si article
se usa la clase, se elimina o se reemplaza el \scriptstyle
paquete con .\mathbb
mathbbol
amssymb
Respuesta1
Las fuentes, bbold7
etc., se diseñaron originalmente en MetaFont y utilizaron las funciones de MetaFont para generar muchas fuentes escaladas ópticamente. Por lo tanto, para cada tamaño de fuente, la fuente, incluido el ancho de las letras, es ligeramente diferente. (Es por eso que existen bbold5/bbold7/bbold10
.) Estas fuentes MetaFont terminaron como fuentes de mapa de bits Tipo 3 en el PDF, por lo que hoy preferimos las fuentes vectoriales, en este caso en el formato Tipo 1 de Adobe. La versión vectorial de bbold
solo existe en tres tamaños: 5
y 7
, 10
pero proporcionar solo estos tres tamaños daría lugar a ligeros cambios en todos los documentos LaTeX que utilicen estas fuentes.
Especialmente las métricas de fuente (principalmente ancho/profundidad/altura de cada carácter) no deberían cambiar si usa la versión Type 1 o MetaFont, por lo que LaTeX aún carga tfm
archivos (de donde TeX lee las métricas de fuente) para todos los tamaños que originalmente tenían fuentes separadas. , que son 5
, 6
, 7
, 8
, 9
, 10
, 12
y 17
.
Cada tamaño se asigna a la versión cerrada Tipo 1 existente. Luego, esta versión más cercana se vuelve a escalar para alcanzar el tamaño correcto. Esto pierde las ligeras variaciones que estaban originalmente presentes en todos los tamaños ópticos, pero debido a que TeX todavía usa los archivos tfm originales, TeX aún reserva la misma cantidad de espacio para cada carácter, lo que lleva a menos cambios generales en los documentos existentes. Ahora bien, debido a que estos tfm
archivos en realidad describen versiones de la fuente para las cuales no existen fuentes vectoriales, las métricas, especialmente el ancho, no coinciden con el ancho real en el archivo de fuente, lo que genera estos errores.
¿Qué puedes hacer al respecto? Si no le importa cambiar un poco las métricas de su fuente, puede decirle a LaTeX que solo use métricas para las fuentes existentes:
% \documentclass[11pt]{article} % works
\documentclass[11pt]{scrartcl} % works
\DeclareFontFamily{U}{bbold}{}
\DeclareFontShape{U}{bbold}{m}{n}
{ <5> <6> bbold5
<7> <8> bbold7
<9> <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> bbold10
}{}
\usepackage{mathbbol}
\usepackage{pdfx} % just to calm PDF/A-validators a bit
\begin{document}
\thispagestyle{empty}
$\scriptstyle\mathbb{E}$
\end{document}
Si prefiere la solución existente y desea conservar las métricas de las fuentes originales, incluso si las fuentes correspondientes ya no existen, puede crear fuentes virtuales bbold6/8/9/12/17
que carguen explícitamente los glifos reescalados desde bbold5/7/10
. El uso de fuentes virtuales en lugar de simplemente utilizar métricas de fuentes incorrectas garantiza que pdfTeX comprenda lo que está haciendo y lo informe correctamente en el archivo PDF.
Pero recomendaría probar primero la solución anterior, porque crear fuentes virtuales para esto es mucho más complicado.