Pregunta

Estoy utilizando un paquete escrito en la parte superior de XeLaTeX. Este paquete utiliza fontspec para especificar las fuentes para las diferentes partes de su texto: no latino, el modo latino, matemáticas, ...

El paquete viene con varios archivos de ejemplo. Pude XeLaTeX la mayoría de ellos que dependen de TTF regular o archivos SON. Sin embargo, uno de ellos trata de establecer la fuente de dígitos en el modo matemático en alguna fuente, decir "NonLatin dígitos". Sin embargo, la fuente no parece ser un tipo de letra normal. Hay dos archivos en el mismo directorio llamado "nonlatindigits.map" y "nonlatindigits.tec". TECkit utiliza estos archivos de asignación para generar fuentes de TeX. Sin embargo, por alguna razón, no puede crear los archivos, y XeLaTeX emite el siguiente mensaje de error.

 kpathsea: Invalid fontname `NonLatin Digits', contains ' '

 ! Font \zf@basefont="NonLatin Digits" at 10.0pt not loadable: Metric (TFM) file or
 installed font not found.

El programa kpathsea se queja de los espacios en blanco, pero la eliminación de los espacios en blanco no resuelve el problema de cargar el archivo de TFM.

¿Alguna pista de lo que estoy haciendo mal?

¿Fue útil?

Solución

¿Cuál es el nombre del archivo fuente real? Se ha discutido recientemente en la lista de correo XeTeX, sobre un error que impedía ficheros de carga con espacios en sus nombres en Windows (buscan en la archivos). Si cambia el nombre del archivo que funciona para usted, es posible que acaba de encontrarse con este error.

La invocación kpathsea que se ve es solamente un efecto secundario: indica que la fuente no ha sido encontrado por las bibliotecas del sistema que XeTeX utiliza en la parte superior del sistema de búsqueda de fuente por defecto de TeX, y XeTeX cae de nuevo a buscar un archivo de TFM , el formato más básico.

TECkit no tiene nada que ver con las fuentes, que convierte los caracteres sobre la marcha; en su caso, supongo que se podría utilizar un mapeo para convertir, por ejemplo, los números arábigos a los números del indicador (de modo que no es necesario introducir este último en el archivo de origen directamente). Pero no genera fuentes en modo alguno.

Otros consejos

Como otros han mencionado, usted debe tratar XeTeX, y usted debe asegurarse de que tiene instaladas las fuentes apropiadas. Utilice el comando XeLaTeX en lugar de pdflatex , para permitir el uso de caracteres no latinos en los archivos .tex.

No dijiste cuales codificación de la fuente que quiera, pero los dos siguientes debería funcionar bastante bien: Linux Libertine, y Computer Modern Unicode. Los nombres de los paquetes openSUSE son Linux Libertine y cm Unicode ; es de esperar que es similar en otros sistemas.

Agregue el siguiente en las primeras importaciones en el documento:

\usepackage{xunicode,fontspec,xltxtra}
\usepackage[english]{polyglossia}
% EXAMPLE: \setotherlanguages{russian} % set as "other" so English hyphenation active

y añadir lo siguiente después todas las demás importaciones (por lo que no será anulado por las importaciones de paquetes de mayor edad),

\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\setromanfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\setmonofont[Scale=0.9]{Courier New}

o, si lo desea fuentes Computer Modern,

\setromanfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}

con XeTeX o XeLaTeX, la poitn es que usted no tiene que especificar las fuentes tex, usted debe utilizar sus fuentes del sistema.

usted debe enviar el código y preámbulo de las partes en las que está recibiendo un error. Al igual que HTML + CSS, diferentes distribuciones tex pueden hacer cosas ligeramente diferentes entre sí.

Como mínimo, el preámbulo debería ser algo como esto:

 \documentclass[12pt,letterpaper]{article}

 \usepackage{fontspec}% provides font selecting commands
 \usepackage{xunicode}% provides unicode character macros
 \usepackage{xltxtra} % provides some fixes/extras

 \setromanfont[Mapping=tex-text]{Font Name}

El [Mapeo = tex-texto] es particularmente importante cuando la carga de sus fuentes.

Parsi Dígitos es una fuente que actualmente no tiene y el error, que está recibiendo es porque usted no tiene el tipo de letra. Basta con sustituir Parsi Digits' with another font and it all should go fine. \setdigitfont is a command that makes digits in math mode Persian and it can acceptScale' como una opción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top