エラー: Ubuntu 12.04 での \Undefined 制御シーケンス \setmainfont

エラー: Ubuntu 12.04 での \Undefined 制御シーケンス \setmainfont

次の LaTeX コードをコンパイルするとエラーが発生します:

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

エラー:

\Undefined control sequence \setmainfont{Code2000}

私はUbuntu 12.04とKileバージョン2.1.0を使用しています。KDE開発プラットフォーム4.8.5(4.8.5)を使用しています。

texlive-fullパッケージをインストールしましたfontspec

コマンドが認識されないのは、何が欠けているのでしょうか\setmainfont?

ログファイルは以下の通りです。

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).

答え1

質問の最初のバージョンは、未定義のコマンドエラーがあると特定しましたが、どのコマンドが未定義であるかを示していなかったため、誤解を招くものでした。エラーは

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

したがって、未定義のコマンドは です\zf@tfm

ただし、このエラーは、本質的には最初のエラーで停止しないことによって発生する偽の内部エラーです。(エラーをスクロールして通過するときの TeX の回復アクションは、多くの場合特に役に立たず、多くの偽のエラーを引き起こすだけです)。

最初に報告されたエラーは

! 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}

Code2000これは、Tex が期待する場所にフォントがインストールされていないか、まったくインストールされていないため、フォントが見つからないことを意味します。

答え2

問題は実際には2つありました。

  1. 私のシステムには、fontspec(パッケージに含まれている)の古いバージョンがありました。texlive-xetex
  2. code2000 パッケージがシステムに存在しませんでした。

1. システムに最新バージョンの fontspec がインストールされていることを確認します。

  1. \listfilesコードにコマンドを含めると、の正しいバージョンをトレースするのに役立ちますfontspec.sty。ログ ファイルには次の情報が記載されています。 fontspec.sty 2008/08/09 v1.18 Advanced font selection for XeLaTeX –

  2. 次のステップは、fontspecの最新バージョンをダウンロードすることです。texlive-xetexリポジトリから最新のパッケージをインストールします。XeTeXのインストールと使用パッケージをインストールします。

2. code2000 パッケージをインストールします。

  1. それぞれのリンクからパッケージをダウンロードしてくださいhttp://www.fonts2u.com/code2000.font
  2. コピー先/usr/share/fonts/
  3. fc-cache -fvフォントリストを更新します。

これでコードがコンパイルされました。

答え3

フォント仕様パッケージに苦労していて、「未定義の制御シーケンス」エラーが継続的に発生する場合、これを解決するために私が見つけた方法があります。

私の場合、数時間後に、問題は Lyx やプリアンブルの定義ではないことが分かりました。問題の原因は MiKTeX です。そのためには、使用しようとしているパッケージを更新する必要がある場合があります。

MiKTeX の更新に移動し、ソースを更新 -> 次の場所からパッケージを取得します... 最も近いパッケージ リポジトリを使用します -> 次へ エラーの原因となっている fontspec パッケージを選択します -: 次へ パッケージが更新されます -> lyx を開いて、このひどいエラーの後に再び生活を楽しんでください ;)

関連情報