標準のラテックスフォント| Java用のAspose.TeX

この記事には、LaTexとともに配布された標準テキストフォントの簡単な紹介が含まれています。次に、入力およびフォントエンコーディングに対するLaTexの標準サポートをカバーします。この記事は、ラテックスのフォント処理をトレースするためのパッケージの説明と、グリフチャートを表示するための別のパッケージで締めくくります。

4.1。コンピューターモダンローマ

コンピューターモダンフォントファミリ

これらの欠陥は、ヨーロッパのTEXユーザーにとって大きな懸念事項であり、最終的には1989年にTEXの再実装につながり、8ビットキャラクターを内部および外部でサポートしました。テキストフォントの標準の8ビットエンコード(「T1」)は1990年に開発されました。多くの異文性文字が含まれており、ラテン語のアルファベットに基づいて30以上の言語を植林できます。次に、コンピューターの最新のフォントファミリが再実装され、追加の文字が設計され、結果のフォントがこのエンコードスキームに完全に適合しました。

4.2。入力エンコードの選択: inputencパッケージ

単一のキーストロークを介して、または他の入力メソッド(例えば、「 `」を押してから「a」を取得するために「a」を取得する)を介してアクセントされた文字を入力できる場合、コンピューターはエディターに正しく表示されます…

テキストエディターに適切に表示されるフランスのテキスト

…理想的には、\`a\^e などを入力する代わりに、そのようなテキストを LaTeX で直接使用します。

フランス語やドイツ語などの言語では、後者のアプローチは実現可能です。ただし、ロシア語やギリシャ語のような言語の場合、これらの言語のほぼすべての文字が内部のラテックス形式としてコマンド名を持っているため、直接入力の可能性が必要です。たとえば、「\ reftextafter」のデフォルトのロシアの定義には、次のテキストが含まれています(これは「次のページ」を意味します):

1\cyrn\cyra\ \cyrs\cyrl\cyre\cyrd\cyru\cyryu\cyrshch\cyre\cyrishrt
2\ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyre

誰かがそのようなものを定期的に入力したいと思う可能性は低いです。それにもかかわらず、それは普遍的にポータブルであるという利点があるため、ラテックスの設置で正しく解釈できます。一方、タイピング

ロシア語の「次のページ」

適切なキーボードでは、ラテックスにこの入力を理解させることができる場合は、明らかに好ましいです。問題は、ファイルに保存されているのは、上記のシーケンスに表示される文字ではなく、文字を表すオクテットであることです。さまざまな状況(異なるエンコーディングを使用)では、同じオクテットが異なる文字を表す場合があります。

すべてが単一のコンピューターで起こり、すべてのプログラムが同じ方法でファイルのオクテットを解釈する限り、すべては通常問題ありません。もしそうなら、最近のTEX実装に組み込まれている自動翻訳メカニズムをアクティブにすることは理にかなっています。しかし、そのような環境で生成されたファイルが別のコンピューターに送信されると、処理が失敗する可能性が高いか、さらに悪いことに成功する可能性がありますが、実際には誤った文字を表示することで間違った結果を生成します。 「入力」パッケージは、この問題に対処するために作成されました。その主な目的は、ドキュメントまたはドキュメントの一部で使用されているエンコードをLaTexに通知することです。これは、オプションとしてエンコード名でパッケージをロードすることによって行われます。例えば:

1\usepackage[cp1252]{inputenc} % Windows 1252 (Western Europe) code page

その時点から、ラテックスは、そのコンピューターの他の目的に使用されるエンコードに関係なく、インストールの文書の残りのオクテットを解釈する方法を知っています。

典型的な例を以下に示します。これは、ロシアで人気のある「koi8-r」エンコードで書かれた短いテキストです。ソースコードは、ラテン語1エンコーディング(ドイツで)を使用してコンピューターでテキストがどのように見えるかを示しています。出力は、ラテックスがどの入力エンコードが使用されているかが知られているため、テキストを正しく解釈できることを示しています。

ドイツのエンコーディングにおけるロシアのテキスト:ソースコード

ドイツのエンコーディングにおけるロシアのテキスト:出力

「入力」によって現在サポートされているエンコーディングのリストを以下に示します。インターフェイスは十分に文書化されており、新しいエンコーディングのサポートを簡単に追加できます。したがって、コンピューターで使用されているエンコードがここにリストされていない場合、「入力」パッケージドキュメントに相談する価値があります。また、他の著者によって作成された「入力」のエンコードファイルをインターネットで検索することもできます。たとえば、キリル語に関連するエンコーディングは、キリル語の他のフォントサポートパッケージとともに配布されます。

ISO-8859標準は、多くの重要なシングルバイトエンコーディングを定義しています。ラテン語のアルファベットに関連するエンコーディングは、「入力」によってサポートされています。 Windowsオペレーティングシステムの場合、Microsoftによって多くの単一バイトエンコーディングが定義されています。さらに、他のコンピューターベンダーによって定義された一部のエンコーディングが利用可能です。

ほとんどのTeXインストールでは、デフォルトで8ビット文字が受け入れられます。しかしながら、inpuencのような追加の調整を行わないと、結果は予測不可能になる可能性があります。一部の文字が消えてしまったり、現在のフォントで参照されたオクテット位置に存在する文字がそのまま返されたりすることがありますが、それが目的のグリフであるとは限りません。この動作は長い間デフォルトでした。そのため、一部のユーザーがこの動作に依存しているため、LaTeX2eでも変更されていません。しかし、このような誤りを確実に検出するために、inputencには32~126の範囲外の文字を不正とするオプションasciiが用意されています。

1\inputencoding{encoding}

もともと、「入力」パッケージは、ドキュメント全体に使用されるエンコードを指定するように設計されていました。したがって、プリアンブルでのオプションの使用。ただし、コマンド \ inputEncodingを使用して、ドキュメントの中央でエンコードを変更することができます。このコマンドは、エンコードの名前をその議論として受け取ります。

「入力」が開発されたとき、ほとんどのラテックスインストールは、このセクションで説明したようなシングルバイトエンコーディングを使用するコンピューターにありました。ただし、システムはUnicode:UTF8のサポートを提供するため、別のエンコードが人気があります。この可変長エンコードは、1〜4オクテットのユニコード文字を表します。エンコードサポートは、オプション「UTF8」を介して「入力」に追加されました。技術的には、完全なUTF8実装は提供されません。標準のラテックスフォントに何らかの表現があるユニコード文字のみがマッピングされます(つまり、主にラテン語とキリル文字セット):他のすべてが適切なエラーメッセージになります。さらに、Unicodeを組み合わせた文字はサポートされていませんが、その特定の省略は実際には問題ではありません。

1\usepackage[utf8]{inputenc}
2\usepackage{textcomp} % for Latin interpretation
3-----------------------------------------------
4German umlauts in UTF-8: ^^c3^^a4^^c3^^b6^^c3^^bc
5\par\inputencoding{latin1}% switch to Latin 1
6But interpreted as Latin 1: ^^c3^^a4^^c3^^b6^^c3^^bc

inputencパッケージでサポートされているUTF8

UTF8では、ASCII文字は自分自身を表し、ほとんどのラテン文字は2バイトで表されます。例のソースコードでは、UTF8のドイツのウムラウトの2バイト表現は、Texの16進表記に示されています。 UTF8を理解していないエディターでは、ラテン語1文字と解釈されるときに生成される出力に似ていると思われるでしょう。

その結果、より包括的なUTF8サポート(韓国語、中国語、日本のキャラクターのサポートを含む)を備えたパッケージは、そのセットアップがより複雑ですが、Dominique Unruhによって書かれた「UCS」パッケージです。 「入力」ソリューションがニーズをカバーしていない場合は、試してみることができます。

4.3。 「Fontenc」パッケージでフォントエンコーディングを選択します

ラテックスで使用するためにテキストフォントエンコードを有効にするには、前文またはドキュメントクラスにエンコードをロードする必要があります。より正確には、特定のエンコードを使用してフォント内のグリフにアクセスするための定義をロードする必要があります。これを行うための標準的な方法は、「Fontenc」パッケージを介して行われます。これは、パッケージオプションとしてフォントエンコーディングのコンマ分離リストを採用しています。これらのエンコーディングの最後は、デフォルトのドキュメントエンコードに自動的に行われます。キリルのエンコーディングがロードされている場合、「makeuppercase」と「\ makelowercase」の影響を受けるコマンドのリストが自動的に拡張されます。例えば、

1\usepackage[T2A,T1]{fontenc}

キリル文字「T2A」と「T1」エンコーディングに必要なすべての定義をロードし、後者をデフォルトのドキュメントエンコーディングに設定します。

通常のパッケージ動作とは異なり、このパッケージを\usepackageコマンドに異なるオプションで複数回ロードできます。これは、ドキュメントクラスが特定のエンコーディングセットをロードし、ユーザーがプリアンブルでさらに多くのエンコーディングをロードできるようにするために必要です。ドキュメントのデフォルトフォントエンコードを潜在的に変更する以外に、エンコードを副作用なしに複数回ロードすることが実行されます。

言語サポートパッケージ(たとえば、 * babel *システムを搭載したもの)がドキュメントで使用されている場合、必要なフォントエンコーディングはサポートパッケージによってすでにロードされている場合があります。

4.4。 tracefntパッケージでフォントの選択をトレースする方法

フォント選択システムの問題を検出するには、「tracefnt」パッケージを使用できます。画面およびトランスクリプトファイルにNFSSによって表示される情報の量をカスタマイズできるいくつかのオプションをサポートしています。

4.5。 nfssfont.texでフォントテーブルとサンプルを表示する方法

nfssfont.texというファイルを使用して、新しいフォントをテストし、すべての文字を示すフォントテーブルを作成し、フォントに関連する他の操作を実行できます。このファイルは、ラテックス分布で見つけることができます。このファイルをラテックスで実行すると、フォントの名前がテストされるように求められます。答えは、「cmr10」(コンピューターモダンローマ10pt)などの拡張機能のない外部フォント名です - 知っている場合、または空のフォント名。後者の場合、NFSSフォント仕様:エンコード名(デフォルト T1)、フォントファミリ名(デフォルト cmr)、フォントシリーズ(デフォルト m)、フォントシェイプ(デフォルト n)、フォントサイズ(デフォルト 10pt)が求められます。その後、プログラムはその分類に対応する外部ファイルをロードします。

次に、コマンドを入力するように求められます。最も重要なのはおそらく「\ table」で、以下のようなフォントチャートが生成されます。コマンド「\ text」も興味深いものです。また、より長いテキストサンプルを作成するため、興味深いものです。新しいテストフォントに切り替えるには、 \ initを入力します。テストを完了するには、「\ bye」または \ stopを入力します。他のすべての利用可能なテストについて学ぶには、「\ help」と入力します。

 1**********************************************
 2* NFSS font test program version <v2.2b>
 3*
 4* Follow the instructions
 5**********************************************
 6
 7Input external font name, e.g., cmr10
 8(or <enter> for NFSS classification of font):
 9
10\currfontname=cmr10
11Now type a test command (\help for help):)
12*\table
13
14*\newpage
15*\init
16Input external font name, e.g., cmr10
17(or <enter> for NFSS classification of font):
18
19\currfontname=
20*** NFSS classification ***
21
22Font encoding [T1]:
23
24\encoding=OT1
25(ot1enc.def)
26Font family [cmr]:
27
28\family=cmdh
29Font series [m]:
30
31\series=m
32Font shape [n]:
33
34\shape=n
35Font size [10pt]:
36
37\size=10
38(ot1cmdh.fd) Now type a test command (\help for help):
39*\text
40
41*\bye

CMR10のフォントチャート

OT1/CMDH/M/N/10のテキストサンプル

注意すべき点が2つあります。まず、nfssfont.tex プログラムは暗黙的に \init コマンドを発行するため、入力の最初の行にはフォント名を含めるか、NFSS 分類が続くことを示すために完全に空にする必要があります。次に、\init への入力は、他に何も記述せず(コメントも含めず)、独立した行として記述する必要があります。これは、行末が Font encoding[T1]: \encoding= のようなプロンプトへの応答の終了を示すためです。

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.