4

XeLaTeXの上に書かれたパッケージを使用しています。このパッケージは、fontspecを使用して、テキストのさまざまな部分のフォントを指定します:ラテン語、非ラテン語、数学モード、...

パッケージにはいくつかのサンプルファイルが付属しています。通常のttfまたはotfファイルに依存するそれらのほとんどをxelatexすることができました。ただし、そのうちの1つは、数学モードの数字のフォントを「NonLatinDigits」などのフォントに設定しようとします。しかし、フォントは通常のフォントではないようです。同じディレクトリに「nonlatindigits.map」と「nonlatindigits.tec」という2つのファイルがあります。TECkitは、これらのマッピングファイルを使用してTeXフォントを生成します。ただし、何らかの理由でファイルの作成に失敗し、xelatexは次のエラーメッセージを発行します。

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

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

kpathseaプログラムは空白について文句を言いますが、空白を削除すると、TFMファイルのロードに関する問題は解決します。

私が間違っていることの手がかりはありますか?

4

4 に答える 4

5

実際のフォントファイル名は何ですか?最近、XeTeXメーリングリストで、名前にスペースが含まれるフォントファイルをWindowsでロードできなかったバグについての議論がありました(アーカイブで探してください)。ファイル名の変更がうまくいく場合は、このバグに遭遇した可能性があります。

表示されるkpathsea呼び出しは単なる副作用です。これは、XeTeXがTeXのデフォルトのフォントルックアップシステム上で使用するシステムライブラリによってフォントが検出されなかったことを示し、XeTeXはTFMファイルのルックアップにフォールバックします。基本的なファイル形式。

TECkitはフォントとは何の関係もありません。文字をその場で変換します。あなたの場合、マッピングを使用して、たとえばアラビア数字をインド数字に変換できると思います(したがって、ソースファイルにアラビア数字を直接入力する必要はありません)。ただし、フォントはまったく生成されません。

于 2009-10-06T18:18:17.243 に答える
1

他の人が述べているように、XeTeXを試して、正しいフォントがインストールされていることを確認する必要があります。pdflatexの代わりにコマンドxelatexを使用して、.texファイルで非ラテン文字を使用できるようにします。

どのフォントエンコーディングが必要かは言いませんでしたが、LinuxLibertineとComputerModernUnicodeの2つはかなりうまくいくはずです。OpenSuSEパッケージ名はLinuxLibertinecm-unicodeです。うまくいけば、他のシステムでも同様です。

ドキュメントの最初のインポートとして、以下を追加します。

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

他のすべてのインポートの後に以下を追加します(古いパッケージのインポートによって上書きされないようにします)。

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

または、Computer Modernフォントが必要な場合は、

\setromanfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
于 2010-04-24T00:13:29.493 に答える
0

xetexまたはxelatexの場合、texフォントを指定する必要はなく、システムフォントを使用する必要があります。

エラーが発生している部分のコードとプリアンブルを投稿する必要があります。html + cssと同じように、異なるtexディストリビューションは、物事を互いにわずかに異なるものにすることができます。

少なくとも、前文は次のようになります。

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

[Mapping = tex-text]は、フォントをロードするときに特に重要です。

于 2009-10-06T18:28:01.873 に答える
0

Parsi Digitsは現在お持ちでないフォントであり、エラーが発生するのは、フォントがないためです。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 acceptオプションとして「スケール」を置き換えるだけです。

于 2009-10-16T09:58:31.883 に答える