Error: \Secuencia de control indefinida \setmainfont en Ubuntu 12.04

Error: \Secuencia de control indefinida \setmainfont en Ubuntu 12.04

Recibo un error al compilar el siguiente código de Latex:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Code2000}
\begin{document}
abc
\end{document}

Error:

\Undefined control sequence \setmainfont{Code2000}

Estoy usando Ubuntu 12.04 y Kile versión 2.1.0 usando la plataforma de desarrollo KDE 4.8.5 (4.8.5)

Lo instalé texlive-fullpara fontspecel paquete.

¿Qué me falta por lo que no reconoce el comando \setmainfont?

El archivo de registro se proporciona a continuación:

This is XeTeX, Version 3.1415926-2.2-0.9995.2 (TeX Live 2009/Debian) (format=xelatex 2014.3.20)  20 MAR 2014 20:00
entering extended mode
 %&-line parsing enabled.
**demo_unicode4.tex
(./demo_unicode4.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, farsi, arabic, croatian, bulgarian, ukrainian, russian, czech, slov
ak, danish, dutch, finnish, french, basque, ngerman, german, german-x-2009-06-1
9, ngerman-x-2009-06-19, ibycus, monogreek, greek, ancientgreek, hungarian, san
skrit, italian, latin, latvian, lithuanian, mongolian2a, mongolian, bokmal, nyn
orsk, romanian, irish, coptic, serbian, turkish, welsh, esperanto, uppersorbian
, estonian, indonesian, interlingua, icelandic, kurmanji, slovenian, polish, po
rtuguese, spanish, galician, catalan, swedish, ukenglish, pinyin, loaded.
(/usr/share/texmf-texlive/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size10.clo
File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
)
\c@part=\count80
\c@section=\count81
\c@subsection=\count82
\c@subsubsection=\count83
\c@paragraph=\count84
\c@subparagraph=\count85
\c@figure=\count86
\c@table=\count87
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
(/usr/share/texmf-texlive/tex/xelatex/fontspec/fontspec.sty
Package: fontspec 2008/08/09 v1.18 Advanced font selection for XeLaTeX

(/usr/share/texmf-texlive/tex/generic/ifxetex/ifxetex.sty
Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional
)
\c@zf@newff=\count88
\c@zf@index=\count89
\c@zf@script=\count90
\c@zf@language=\count91

(/usr/share/texmf-texlive/tex/latex/longtableswas/calc.sty
Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
\calc@Acount=\count92
\calc@Bcount=\count93
\calc@Adimen=\dimen103
\calc@Bdimen=\dimen104
\calc@Askip=\skip43
\calc@Bskip=\skip44
LaTeX Info: Redefining \setlength on input line 76.
LaTeX Info: Redefining \addtolength on input line 77.
\calc@Ccount=\count94
\calc@Cskip=\skip45
)
(/usr/share/texmf-texlive/tex/latex/xkeyval/xkeyval.sty
Package: xkeyval 2008/08/13 v2.6a package option processing (HA)

(/usr/share/texmf-texlive/tex/generic/xkeyval/xkeyval.tex
\XKV@toks=\toks14
\XKV@tempa@toks=\toks15
\XKV@depth=\count95
File: xkeyval.tex 2008/08/13 v2.6a key=value parser (HA)

(/usr/share/texmf-texlive/tex/generic/xkeyval/keyval.tex)))
(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty
Package: fontenc 2005/09/27 v1.99g Standard LaTeX package

(/usr/share/texmf-texlive/tex/xelatex/euenc/eu1enc.def
File: eu1enc.def 2008/03/08 v0.1d Experimental unicode font encoding
)
LaTeX Font Info:    Try loading font information for EU1+lmr on input line 100.


(/usr/share/texmf-texlive/tex/xelatex/euenc/eu1lmr.fd
File: eu1lmr.fd 2007/01/14 v1.3 Font defs for Latin Modern
))
LaTeX Info: Redefining \itshape on input line 1163.
LaTeX Info: Redefining \slshape on input line 1166.
LaTeX Info: Redefining \scshape on input line 1169.
LaTeX Info: Redefining \upshape on input line 1172.

fontspec.cfg loaded.
(/usr/share/texmf-texlive/tex/xelatex/fontspec/fontspec.cfg))
(./demo_unicode4.aux)
\openout1 = `demo_unicode4.aux'.

LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 4.
LaTeX Font Info:    ... okay on input line 4.
LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 4.
LaTeX Font Info:    ... okay on input line 4.
LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 4.
LaTeX Font Info:    ... okay on input line 4.
LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 4.
LaTeX Font Info:    ... okay on input line 4.
LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 4.
LaTeX Font Info:    ... okay on input line 4.
LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 4.
LaTeX Font Info:    ... okay on input line 4.
LaTeX Font Info:    Checking defaults for EU1/lmr/m/n on input line 4.
LaTeX Font Info:    ... okay on input line 4.
Package fontspec Info: Adjusting the maths setup (use [no-math] to avoid this).
 on input line 4.
\symlegacymaths=\mathgroup4
LaTeX Font Info:    Overwriting symbol font `legacymaths' in version `bold'
(Font)                  OT1/cmr/m/n --> OT1/cmr/bx/n on input line 4.
LaTeX Font Info:    Redeclaring math accent \acute on input line 4.
LaTeX Font Info:    Redeclaring math accent \grave on input line 4.
LaTeX Font Info:    Redeclaring math accent \ddot on input line 4.
LaTeX Font Info:    Redeclaring math accent \tilde on input line 4.
LaTeX Font Info:    Redeclaring math accent \bar on input line 4.
LaTeX Font Info:    Redeclaring math accent \breve on input line 4.
LaTeX Font Info:    Redeclaring math accent \check on input line 4.
LaTeX Font Info:    Redeclaring math accent \hat on input line 4.
LaTeX Font Info:    Redeclaring math accent \dot on input line 4.
LaTeX Font Info:    Redeclaring math accent \mathring on input line 4.
LaTeX Font Info:    Redeclaring math symbol \colon on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Gamma on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Delta on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Theta on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Lambda on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Xi on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Pi on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Sigma on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Upsilon on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Phi on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Psi on input line 4.
LaTeX Font Info:    Redeclaring math symbol \Omega on input line 4.
LaTeX Font Info:    Redeclaring math symbol \mathdollar on input line 4.
LaTeX Font Info:    Redeclaring symbol font `operators' on input line 4.
LaTeX Font Info:    Encoding `OT1' has changed to `EU1' for symbol font
(Font)              `operators' in the math version `normal' on input line 4.
LaTeX Font Info:    Overwriting symbol font `operators' in version `normal'
(Font)                  OT1/cmr/m/n --> EU1/lmr/m/n on input line 4.
LaTeX Font Info:    Encoding `OT1' has changed to `EU1' for symbol font
(Font)              `operators' in the math version `bold' on input line 4.
LaTeX Font Info:    Overwriting symbol font `operators' in version `bold'
(Font)                  OT1/cmr/bx/n --> EU1/lmr/m/n on input line 4.
LaTeX Font Info:    Overwriting symbol font `operators' in version `normal'
(Font)                  EU1/lmr/m/n --> EU1/lmr/m/n on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathrm' in version `normal'
(Font)                  EU1/lmr/m/n --> EU1/lmr/m/n on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `normal'
(Font)                  OT1/cmr/m/it --> EU1/lmr/m/it on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathbf' in version `normal'
(Font)                  OT1/cmr/bx/n --> EU1/lmr/bx/n on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathsf' in version `normal'
(Font)                  OT1/cmss/m/n --> EU1/lmss/m/n on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathtt' in version `normal'
(Font)                  OT1/cmtt/m/n --> EU1/lmtt/m/n on input line 4.
LaTeX Font Info:    Overwriting symbol font `operators' in version `bold'
(Font)                  EU1/lmr/m/n --> EU1/lmr/bx/n on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathrm' in version `bold'
(Font)                  EU1/lmr/m/n --> EU1/lmr/bx/n on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `bold'
(Font)                  OT1/cmr/bx/it --> EU1/lmr/bx/it on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathsf' in version `bold'
(Font)                  OT1/cmss/bx/n --> EU1/lmss/bx/n on input line 4.
LaTeX Font Info:    Overwriting math alphabet `\mathtt' in version `bold'
(Font)                  OT1/cmtt/m/n --> EU1/lmtt/bx/n on input line 4.

! Font \zf@basefont=Code2000 at 10.0pt not loadable: Metric (TFM) file or insta
lled font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt 
                                                  \unless \ifzf@icu \zf@set@...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

! Undefined control sequence.
\zf@set@font@type ...onttype \zf@basefont \zf@tfm 
                                                  \or \zf@atsuitrue \ifnum \...
l.5 \setmainfont{Code2000}

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Font \zf@basefont=Code2000 at 10.0pt not loadable: Metric (TFM) file or insta
lled font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt 
                                                  \fi \zf@firsttimetrue \zf@...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

\c@zf@famc@Code2000=\count96
Package fontspec Info: Defining font family for 'Code2000' with options [] on i
nput line 5.
! Font \@tempfontb=Code2000 at 10.0pt not loadable: Metric (TFM) file or instal
led font not found.
\\zf@make@font@shapes ...f@suffix " at \f@size pt 
                                                  \edef \@tempb {\fontname \...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

! Font \@tempfonta=Code2000 at 10.0pt not loadable: Metric (TFM) file or instal
led font not found.
\\zf@make@font@shapes ...f@suffix " at \f@size pt 
                                                  \edef \@tempa {\fontname \...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

! Font \@tempfontb=Code2000/B at 10.0pt not loadable: Metric (TFM) file or inst
alled font not found.
\\zf@make@font@shapes ...f@suffix " at \f@size pt 
                                                  \edef \@tempb {\fontname \...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

Package fontspec Info: Could not resolve font Code2000/B (it might not exist) o
n input line 5.
! Font \@tempfonta=Code2000 at 10.0pt not loadable: Metric (TFM) file or instal
led font not found.
\\zf@make@font@shapes ...f@suffix " at \f@size pt 
                                                  \edef \@tempa {\fontname \...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

! Font \@tempfontb=Code2000/I at 10.0pt not loadable: Metric (TFM) file or inst
alled font not found.
\\zf@make@font@shapes ...f@suffix " at \f@size pt 
                                                  \edef \@tempb {\fontname \...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

Package fontspec Info: Could not resolve font Code2000/I (it might not exist) o
n input line 5.
! Font \@tempfonta=Code2000 at 10.0pt not loadable: Metric (TFM) file or instal
led font not found.
\\zf@make@font@shapes ...f@suffix " at \f@size pt 
                                                  \edef \@tempa {\fontname \...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

! Font \@tempfontb=Code2000/BI at 10.0pt not loadable: Metric (TFM) file or ins
talled font not found.
\\zf@make@font@shapes ...f@suffix " at \f@size pt 
                                                  \edef \@tempb {\fontname \...
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

Package fontspec Info: Could not resolve font Code2000/BI (it might not exist) 
on input line 5.
! Font EU1/Code2000(0)/m/n/10=Code2000: at 10.0pt not loadable: Metric (TFM) fi
le or installed font not found.
<to be read again> 
                   relax 
l.5 \setmainfont{Code2000}

I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
e.g., type `I\font<same font id>=<substitute font name>'.

Missing character: There is no a in font nullfont!
Missing character: There is no b in font nullfont!
Missing character: There is no c in font nullfont!
Missing character: There is no 1 in font nullfont!
[1

] (./demo_unicode4.aux)

 *File List*
 article.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
fontspec.sty    2008/08/09 v1.18 Advanced font selection for XeLaTeX
 ifxetex.sty    2009/01/23 v0.5 Provides ifxetex conditional
    calc.sty    2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
 xkeyval.sty    2008/08/13 v2.6a package option processing (HA)
 xkeyval.tex    2008/08/13 v2.6a key=value parser (HA)
 fontenc.sty
  eu1enc.def    2008/03/08 v0.1d Experimental unicode font encoding
  eu1lmr.fd    2007/01/14 v1.3 Font defs for Latin Modern
fontspec.cfg
 ***********

 ) 
Here is how much of TeX's memory you used:
 2186 strings out of 494665
 44134 string characters out of 1166477
 121792 words of memory out of 3000000
 5460 multiletter control sequences out of 15000+50000
 3648 words of font info for 15 fonts, out of 3000000 for 9000
 669 hyphenation exceptions out of 8191
 27i,4n,27p,449b,142s stack positions out of 5000i,500n,10000p,200000b,50000s

Output written on demo_unicode4.pdf (1 page).

Respuesta1

La versión inicial de la pregunta era engañosa ya que identificaba que había un error de comando indefinido pero no mostraba qué comando no estaba definido. El error es

! Undefined control sequence.
\zf@set@font@type ...onttype \zf@basefont \zf@tfm 
                                                  \or \zf@atsuitrue \ifnum \...
l.5 \setmainfont{Code2000}

Entonces el comando indefinido es \zf@tfm.

Sin embargo, este error es esencialmente una falla interna espuria causada por no detenerse ante el primer error. (Las acciones de recuperación de TeX cuando pasa por un error a menudo no son particularmente útiles y solo conducen a muchos errores falsos).

El primer error reportado es

! Font \zf@basefont=Code2000 at 10.0pt not loadable: Metric (TFM) file or insta
lled font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt 
                                                  \unless \ifzf@icu \zf@set@...
l.5 \setmainfont{Code2000}

lo que significa que no puede encontrar la Code2000fuente porque no está instalada donde Tex espera o porque no está instalada en absoluto.

Respuesta2

En realidad, el problema era doble.

  1. Tenía una versión antigua de fontspec(que viene en texlive-xetexel paquete) en mi sistema.
  2. El paquete code2000 no estaba presente en mi sistema.

1. Asegúrese de tener la versión actualizada de fontspec en su sistema:

  1. Incluir el comando \listfilesen el código ayuda a rastrear la versión correcta de fontspec.sty. El archivo de registro proporcionó la siguiente información: fontspec.sty 2008/08/09 v1.18 Advanced font selection for XeLaTeX –

  2. El siguiente paso es descargar la versión actualizada de fontspec. Instale el último paquete del texlive-xetexrepositorio. Seguí la respuesta enInstalación y uso de XeTeXpara instalar el paquete.

2. Instalación del paquete code2000.

  1. Descargue el paquete desde su respectivo enlacehttp://www.fonts2u.com/code2000.font
  2. Copiar a/usr/share/fonts/
  3. fc-cache -fvpara actualizar la lista de fuentes.

¡Ahora el código se compila!

Respuesta3

Para las personas que luchan con el paquete de especificaciones de fuentes y si obtienen errores continuos en errores de "secuencia de control indefinida", ¡esto es lo que descubrí para resolverlo!

En mi caso, descubrí después de horas que el problema no era Lyx ni las definiciones del preámbulo. El origen del problema es MiKTeX. A veces necesitas actualizar los paquetes que estás intentando utilizar, para ello:

Vaya a actualización de MiKTeX Fuente de actualización -> Quiero obtener paquetes de... Utilice el repositorio de paquetes más cercano -> siguiente Seleccione el paquete o los paquetes fontspec que encuentre que están causando errores -: siguiente Los paquetes se actualizarán -> Abra lyx y disfrute de la vida de nuevo después de estos errores de mierda;)

información relacionada