CLS ファイル形式とは?
.cls ファイルは LaTeX ドキュメントクラスファイルです。これは LaTeX ドキュメント の全体的な構造、レイアウト、およびタイポグラフィを決定するプレーンテキストのマクロ定義です。\documentclass{article} や \documentclass{beamer} で始まる .tex ソースを開くと、LaTeX は TEXMF ディレクトリツリーから article.cls または beamer.cls という名前の一致するファイルを検索し、コンテンツを処理する前にそれをロードします。
クラスファイルは、ページのジオメトリ、フォントの選択、セクションの階層、ランニングヘッダーとフッター、フロート、リスト環境など、グローバルなドキュメント設定を制御します。.cls ファイル内では、オプションは \DeclareOption で宣言され、パッケージの依存関係は \RequirePackage で、クラスの識別情報は \ProvidesClass{classname}[YYYY/MM/DD vX.Y description] で宣言されます。慣習的な開始行である \NeedsTeXFormat{LaTeX2e} は、互換性のない TeX エンジンによるロードを防ぎます。
標準クラス(article、book、report、letter)は、TeX Live や MiKTeX を含むすべての主要な TeX ディストリビューションに同梱されています。IEEE、ACM、Elsevier、Springer、AMS などの出版社は、著者がジャーナルや会議の投稿に使用しなければならないカスタムの .cls テンプレートを配布しています。
.cls ファイルは スタイルパッケージ (.sty) とは異なります。クラスはドキュメント全体のフレームワークを設定しますが、スタイルファイルはそれを補完するものです。クラスのソースコードは、展開可能な .cls を抽出するコンパニオン .ins インストーラーを備えた .dtx リテレートファイルとして配布されることがよくあります。プレーンテキストであるため、.cls ファイルはバージョン管理ワークフローにスムーズに統合されます。
セキュリティと安全性
リスク: LOWプレーンテキストのマクロファイルであり、オペレーティングシステムに対する直接的な実行リスクはありません。悪意のある LaTeX コードは理論的には \write18 シェルエスケープコマンドを介して可能ですが、悪用には被害者がシェルエスケープを有効にして .tex ドキュメントをコンパイルする必要があります。これはテンプレートとして配布される .cls ファイルにとって現実的な攻撃ベクトルではありません。
形式の詳細
概要- Visual Basic / Visual C++ クラスモジュール - VB6/VBA/VC++ IDE によって生成されるプレーンテキストのソースコードクラス定義。拡張子は同じですが、内容は異なります。
- Apex (Salesforce) クラスファイル - Salesforce プラットフォームの開発で使用されるオブジェクト指向の Apex 言語クラスファイル。
- AutoCAD / ArcGIS カラー分類ファイル - カラーランプやジオコーディング設定のために ArcGIS および AutoCAD で使用される分類スキームファイル。
CLS ファイルを開くプログラム
技術的詳細
詳細仕様| MIME タイプ | text/plain; application/x-tex としても認識されます |
| 文字エンコーディング | ASCII または UTF-8。広範な TeX エンジン互換性のために純粋な ASCII を推奨 |
| バイナリシグネチャ | なし - マジックバイトのないプレーンテキストファイル。拡張子とコンテンツパターンのみで識別されます |
| クラス宣言コマンド | \ProvidesClass{name}[YYYY/MM/DD vX.Y description] がクラス名、日付、バージョン文字列を埋め込みます |
| 形式互換性ガード | 慣習的な最初の行としての \NeedsTeXFormat{LaTeX2e} が、互換性のない TeX 形式によるロードを防止します |
| オプションメカニズム | \DeclareOption で宣言され、\ProcessOptions または \ProcessOptions* を介して実行されるオプション |
| 依存関係のロード | \RequirePackage{pkgname}[min-date] が、オプションの最小日付ガード付きで .sty パッケージを取り込みます |
| クラスの継承 | \LoadClass{parentclass} により、クラスが別のクラスを拡張し、選択した定義のみを上書きできます |
| 一般的なファイルサイズ | 2 KB - 200 KB。単純なスケルトンクラスから完全なジャーナル出版社テンプレートまで |
| ロードメカニズム | 任意の .tex ドキュメントの最初のコマンドとして \documentclass[options]{classname} によって呼び出されます |
| ファイル検索パス | LaTeX は TEXMF ツリーを通じて classname.cls を特定します。kpsewhich classname.cls で解決されたパスが表示されます |
| 互換性のある TeX エンジン | pdfLaTeX、XeLaTeX、LuaLaTeX、およびクラシック LaTeX (DVI モード)。エンジン固有のガードには \ifXeTeX、\ifLuaTeX を使用します |
| 標準組み込みクラス | article、book、report、letter、slides がすべての LaTeX2e ディストリビューションに同梱されています |
| 出版社エコシステム | IEEE、ACM、Elsevier、Springer、AMS がジャーナルや会議の投稿用に独自の .cls テンプレートを配布しています |
| ソース配布形式 | クラスソースは、コンパニオン .ins インストーラーによって抽出される .dtx リテレートファイルとしてパッケージ化されることが多いです |
| リリース日 | 1985 (LaTeX 2.09); .cls extension standardized with LaTeX2e, June 1994 |
| 最新バージョン | LaTeX2e (current; periodic dated releases, e.g. 2023-06-01) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.latex-project.org |
CLS の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。CLS ファイルについて最初の質問をしてみましょう。