Logo - MyWebsolution.de
User gesamt  :  2316725
User online  :  1
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Interessantes » LaTeX - eigene Klassen (.cls )und Pakete (.sty) erstellen

Seite: 1 Posts pro Seite: 5 10 20
Autor Thread
03.11.2009 17:54 Uhr LaTeX - eigene Klassen (.cls )und Pakete (.sty) erstellen
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Hey,
ich benutze seit einiger Zeit LaTeX zur Erstellung meiner ausbildungs- und studiumsrelevanten Dokumente, da Word gerade beim Drucken größerer Dokumente teilweise das Layout kaputt machen. Außerdem erreicht man mit LaTeX dank der Einbindung von Packages und der Verwendung der gleichen Präambel ein wunderbar einheitliches Aussehen, dass sich auch im Nachhinein leicht anpassen lässt. Allerdings wurde es mir mit der Zeit etwas zu umständlich, jedes Mal die komplette Präambel (~100 Zeilen) für meine Dokumente erneut in jedem neuen Dokument zu speichern, weshalb ich eine einfache Möglichkeit suchte, diese Zeilen in einer eigenen Datei zusammenzufassen und einzubinden (sowas wie ein .css File in HTML).

Mit LaTex erreicht man das, indem man eigene Klassen (.cls-Dateien) oder Pakete (.sty-Dateien) erstellt. Diese werden dann einfach mit \documentclass für Klassen und \usepackage für Pakete eingebunden. Allerdings hatte ich ein paar Probleme dabei, Informationen darüber zu finden, wie denn die .cls bzw. .sty Dateien genau aufgebaut sind und wie man sie dann im eigentlichen Dokument (also der .tex Datei) aufruft bzw. einbindet (Stichwort: Pfadangabe). Deshalb also hier dieser Eintrag mit Minimalbeispielen und einer Beschreibung, wo die Klassen/Pakete abgelegt und wie sie eingebunden werden können.

Klassen

Dateiname: meineklasse.cls

Code:
\ProvidesClass{meineklasse}[2009/11/03 v 0.1 Meine Klasse]
\LoadClassWithOptions{article}

% Packagesyphenation
\usepackage[ngerman]{babel}
% enable german hyphenation in the \hyphenation command
\usepackage[T1]{fontenc}
%- display german umlauts
\RequirePackage[ansinew]{inputenc}

\ProvidesClass liefert den Namen der Klasse, aber ich werde sie später über einen absoluten Pfad einbinden, deshalb ist das eigentlich zweitrangig
\LoadClassWithOptions läd eine andere Dokumentklasse
\usepackage und \RequirePackage lassen sich (scheinbar) synonym benutzen um andere Pakete einzubinden, zumindest konnte ich keinen unterschied Feststellen.

Packages

Dateiname: meinStyle.sty

Code:
\ProvidesPackage{meinStyle}[2009/11/03 v0.1 Styledefinitionen]

%-set lineheight to 1.3 instead of 1.0
\linespread{1.3}

% Itemize line space
\let\olditemize=\itemize
\def\itemize{\olditemize\setlength{\itemsep}{-0.5ex}}


\ProvidesPackage liefert den Namen des Pakets, aber ich werde es später über einen absoluten Pfad einbinden, deshalb ist das eigentlich zweitrangig

Danach kann sämtliche Style-Definitionen, Variablen-Deklarationen, etc... folgen, die man in der Präambel drin hat. Also simply Copy & Paste ;)

Einbinden in das Hauptdokument

Es gibt 2 Möglichkeiten, die eben erstellten Dateien einzubinden. Bei der einen Möglichkeit müsste man die "Registry" der Textengine updaten und die Klasse/das Paket so bekannt machen. Allerdings hat das bei mir nicht so ganz hingehauen, während die zweite Möglichkeit auf anhieb funktioniert hat. Dabei wird einfach der komplette Pfadname zur jeweiligen Datei angegeben. Angenommen, die Dateien liegen in C://Latex/Klassen/meineKlasse.cls und C://Latex/Pakete/meinStyle.sty, dann können sie im Hauptdokument wie folgt eingebunden werden:

Code:
\documentclass{C://Latex/Klassen/meineKlasse.cls}

\usepackage{C://Latex/Pakete/meinStyle.sty}

% Start Content
% =============
\begin{document}
%...


Das war's auch schon. Bitte beachtet, dass dieser Artikel keineswegs vollständig ist! Ich habe nur versucht eine Step by Step Anleitung für diejenigen zu schreiben, die sich nicht ausführlicher mit der Thematik auseinadersetzen wollen, sondern auf einfachstem Wege etwas mehr Übersicht in ihre Dokumente bringen wollen ;)

Keywords:
Eigene Klassen und Pakete mit Latex erstellen
Latex Pakete erstellen und einbinden
Latex packages erstellen und einbinden
Latex .sty erstellen und einbinden
Latex Klassen erstellen und einbinden
Latex .cls erstellen und einbinden
Latex Präambel zusammenfassen

Dieser Beitrag wurde am 03.11.2009 um 18:13:27 Uhr von Flitze zum 2. Mal editiert.


Profil ansehen Mail senden
Seite: 1 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik