Wat is het CLS-bestandsformaat?
Een .cls-bestand is een LaTeX document class-bestand - een macrodefinitie in platte tekst die de algemene structuur, lay-out en typografie van een LaTeX-document bepaalt. Wanneer u een .tex-bronbestand opent dat begint met \documentclass{article} of \documentclass{beamer}, zoekt LaTeX in zijn TEXMF-mapstruct naar een bijbehorend bestand met de naam article.cls of beamer.cls en laadt dit voordat de inhoud wordt verwerkt.
Het class-bestand beheert de globale documentinstellingen: paginageometrie, lettertypekeuzes, sectiehiërarchie, kop- en voetteksten, floats en lijstomgevingen. Binnen een .cls-bestand worden opties gedeclareerd met \DeclareOption, pakketafhankelijkheden met \RequirePackage, en de klasse-identiteit met \ProvidesClass{classname}[YYYY/MM/DD vX.Y description]. De conventionele openingsregel \NeedsTeXFormat{LaTeX2e} voorkomt het laden door een incompatibele TeX-engine.
Standaardklassen - article, book, report, letter - worden meegeleverd met elke grote TeX-distributie, inclusief TeX Live en MiKTeX. Uitgevers zoals IEEE, ACM, Elsevier, Springer en de AMS distribueren aangepaste .cls-sjablonen die auteurs moeten gebruiken voor inzendingen voor tijdschriften of conferenties.
Een .cls-bestand verschilt van een stijlpakket (.sty): een klasse bepaalt het volledige documentkader, terwijl een stijlbestand dit aanvult. De broncode van een klasse wordt vaak gedistribueerd als een .dtx literate-bestand met een bijbehorend .ins-installatieprogramma dat de inzetbare .cls uitpakt. Omdat het platte tekst is, kunnen .cls-bestanden probleemloos worden geïntegreerd in versiebeheer-workflows.
Beveiliging & veiligheid
RISICO: LOWMacrobestand in platte tekst; vormt geen direct uitvoerbaar risico voor het besturingssysteem. Kwaadaardige LaTeX-code is theoretisch mogelijk via \write18 shell-escape commando's, maar misbruik vereist dat het slachtoffer een .tex-document compileert met shell-escape ingeschakeld - geen realistisch aanvalsvector voor .cls-bestanden die als sjablonen worden gedistribueerd.
Formaatdetails
in een notendop- Visual Basic / Visual C++ Class Module - Klassedefinitie in broncode in platte tekst gegenereerd door VB6/VBA/VC++ IDE; zelfde extensie, andere inhoud.
- Apex (Salesforce) Class-bestand - Objectgeoriënteerd Apex-taalklassebestand gebruikt bij de ontwikkeling van het Salesforce-platform.
- AutoCAD / ArcGIS Kleurclassificatiebestand - Classificatieschemabestand gebruikt door ArcGIS en AutoCAD voor kleurverloop- en geocoderingsinstellingen.
Programma's die CLS-bestanden openen
Technische details
diepe specificaties| MIME-type | text/plain; ook herkend als application/x-tex |
| Tekstcodering | ASCII of UTF-8; pure ASCII aanbevolen voor de breedste compatibiliteit met TeX-engines |
| Binaire handtekening | Geen - plat tekstbestand zonder magic bytes; alleen geïdentificeerd door extensie en inhoudspatroon |
| Klasse-declaratiecommando | \ProvidesClass{name}[YYYY/MM/DD vX.Y description] bevat de klassenaam, datum en versiestring |
| Formaatcompatibiliteitscontrole | \NeedsTeXFormat{LaTeX2e} als conventionele eerste regel voorkomt laden door incompatibele TeX-formaten |
| Optiemechanisme | Opties gedeclareerd met \DeclareOption en uitgevoerd via \ProcessOptions of \ProcessOptions* |
| Laden van afhankelijkheden | \RequirePackage{pkgname}[min-date] laadt .sty-pakketten met optionele controles op minimale datum |
| Klasse-overerving | \LoadClass{parentclass} stelt een klasse in staat een andere uit te breiden, waarbij alleen geselecteerde definities worden overschreven |
| Typische bestandsgrootte | 2 KB - 200 KB; van een eenvoudige basisklasse tot een volledig sjabloon van een tijdschriftuitgever |
| Laadmechanisme | Aangeroepen door \documentclass[options]{classname} als het eerste commando in elk .tex-document |
| Zoekpad voor bestanden | LaTeX vindt classname.cls via de TEXMF-structuur; kpsewhich classname.cls toont het gevonden pad |
| Compatibele TeX-engines | pdfLaTeX, XeLaTeX, LuaLaTeX en klassieke LaTeX (DVI-modus); engine-specifieke controles gebruiken \ifXeTeX, \ifLuaTeX |
| Standaard ingebouwde klassen | article, book, report, letter en slides worden meegeleverd met elke LaTeX2e-distributie |
| Ecosysteem van uitgevers | IEEE, ACM, Elsevier, Springer en AMS distribueren eigen .cls-sjablonen voor tijdschrift- en conferentie-inzendingen |
| Bronverspreidingsformaat | De broncode van een klasse wordt vaak verpakt als een .dtx literate-bestand, uitgepakt door een bijbehorend .ins-installatieprogramma |
| Uitgebracht | 1985 (LaTeX 2.09); .cls extension standardized with LaTeX2e, June 1994 |
| Laatste versie | LaTeX2e (current; periodic dated releases, e.g. 2023-06-01) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.latex-project.org |
CLS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over CLS-bestanden.