Einführung in das Textsatzsystem L A TEX. Vorläufige Version

Ähnliche Dokumente
Eigene Befehle, Umgebungen und Klassen

L A TEX-Dokumentklasse zur Erstellung von Sitzungs-Protokollen

Was macht eigentlich...?

Briefe frankieren. & PDF-Galerien

Crashkurs L A T E X Teil 2

L A TEX Presentation Packages

Fremdsprachigkeit in LATEX-Dokumenten

Einführung in das Textsatzsystem (L A )TEX

Verwendung von L L mit XƎTEX

Juristische Hausarbeiten mit LATEX

Programmierung mit L A T E X

L A TEX HSD Struktur und Formatieren II. 13. Oktober Prof. Dr. Alexander Braun // Wissenschaftliche Texte mit LaTeX // WS 2015/16

FH Gießen-Friedberg SS Eugen Labun ****** Kurs "LaTeX für Erstsemester" Teil 2

Programmierung mit L A T E X

Will Robertson & Johannes Große (übersetzt von Gérome Bochmann und Christine Römer) wspr 81 at gmail dot com. 2009/0426 v0.6

L A TEX HSD Struktur und Formatieren II. 19. April Prof. Dr. Alexander Braun // Wissenschaftliche Texte mit LaTeX // SS 2016

Wissenschaftliche Arbeiten schreiben mit L A TEX

Beamer und Hohenheim 00004

Genug L A TEX für s Praktikum

JoergsL A TEXMode heute zu Gast bei der LUG Jena

Einführung in Javadoc

Genug L A TEX für s Praktikum

ecv Eine originelle Lebenslauf-Klasse

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Wissenschaftliches Arbeiten in CSE

L A TEX-Dokumente erzeugen mit dem Emacs Org-Mode

Textsatz mit L A T E X

L A T E X für Angeber. Teil 10: Briefe und Serienbriefe

Große Dokumente. LATEX-Kurs der Unix-AG. Thomas Fischer. 25. Juni 2008

Ein L A T E X 2ε-Bundle für Dokumente im neuen Corporate Design der Technischen Universität Dresden

Ein L A T E X 2ε-Bundle für Dokumente im neuen Corporate Design der Technischen Universität Dresden

Multiformat-Publishing mit Sphinx

Lebensläufe setzen mit L A TEX

L A TEX Workshop Düsseldorf SS14 Teil 10 Allerlei. Basis Befehle. Chemie Paket. Elemente & Co. \ce{ag} und \ce{h2so4} Ag und H 2 SO 4.

Mac OS X Consoliero Teil 11: Modifizieren von NetInstall Images

19. Mai 2015 L A TEX. Grafiken. Prof. Dr. Alexander Braun // Wissenschaftliche Texte mit LaTeX // WS 2014/15

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

L A TEX im Alltags-Gebrauch

Grafiken Teil 1. LATEX-Kurs der Unix-AG. Klemens Schmitt. 12. Mai 2014

Python SVN-Revision 12

xmltex Oder Wie bringt man XML und TeX zusammen? Daniel Radünz

31. März 2015 L A TEX Struktur und Formatieren

Kurzanleitung zu XML2DB

FensterHai. - Integration von eigenen Modulen -

Einführung in L A TEX

TOPAL ZERTIFIKAT MANAGER ANLEITUNG ZUR ERSTELLUNG VON ZERTIFIKATEN

Eclipse und Java Einheit 01: Einführung in Eclipse

... MathML XHTML RDF

Diagramme erstellen mit pgfplots

Projekt Weblog :: Integration

Geschäftsbriefe mit L A TEX2ε der g-brief und g-brief 2 1. Version 4.0.1

Einführung in L A T E X

Advolux Kanzleisoftware Dokumentation der Konfigurationsdatei luxclient.xml

L A T E X-Installation für MikT E X auf Windows

Grafiken für L A TEX. erstellen, bearbeiten und einbinden. Felix Koch L A TEX-User-Treffen Freiberg. 19. Juni 2011

Übungen zum L A TEX-Kurs 2015

A) Durchsuchen von Datenbanken im Internet durch Endnote

GeoMedia 6.1.7: WMS. OGC WMS Daten in der GeoMedia Welt

Adobe Reader X. Adobe Customization Wizard X. highsystem ag. Author(s): Paolo Sferrazzo. Version: 1.0 Erstellt am: Letzte Änderung: - 1 / 9

Literaturverwaltung in L A TEX

Das hyperref-paket. Eine Einführung von TOBI A S Iffland 7. Dezember 2005

Erste Schritte mit Eclipse

Die Projek*ools. Files, Git, Tickets & Time

Anja Freitag und Thomas Benkert. Bewerben mit LaTeX. Eine Einführung. 21. Juni L A TEX-Stammtisch Freiberg

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Ein erster Blick. Eclipse und Debugging. Anlegen von Projekten. Wissenswertes...

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung

Dingsda - Bedienungsanleitung unter Windows

Installationsanleitung Tivoli Storage Manager für Linux

check_cisco_voice Dokumentation

Software-Engineering Grundlagen des Software-Engineering

Aufgaben zu XPath und XQuery

Integration Billpay in Intershop 7

Die Klasse»TUBAFprotokoll« Thomas Benkert

Visualisierung der Eidolon Auswertung. VisEiA. Graphischer Client für das spiel Eidolon

English. Deutsch. niwis consulting gmbh ( manual NSEPEM Version 1.0

L A TEX-Kurs: Layout. Carl Georg Heise. 11. Oktober Technische Universität München. Technische Universität München 1 / 42. LAT E X-Kurs: Layout


WCF Services in InfoPath 2010 nutzen

VNUML Projektpraktikum

Anleitung Command Line Client Demo Client

Einführung in TexMaker

Das Textsatzsystem LATEX

Proseminar L A TEX Ausarbeitung zum Vortrag L A TEX in der Informatik

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

a.sign Client Lotus Notes Konfiguration

Übernahme von DXF-Daten in AutoCAD. Erläuterungen

Informationen zur Verwendung von Visual Studio und cmake

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Support-Tipp Mai Release Management in Altium Designer

Einrichten der TSM-Backup-Software unter dem Betriebssystem Ubuntu

ColdFusion 8 PDF-Integration

Bedeutung von i18n, L10n

1.1 Präambel Der Textteil Der Schlussteil Beispiel... 2

Abbildungsverzeichnis: Schnellstartanleitung. Inhalt

Java Einführung Packages

T5 Die Einsatzplanung inkl. Urlaub und Feiertagen

Schnell Importieren mit dem neuen ImportExport Modul

Transkript:

Einführung in das Textsatzsystem L A TEX Eigene Klassen und Pakete schreiben Moritz Brinkmann moritz.brinkmann@iwr.uni-heidelberg.de Vorläufige Version 10. Februar 2017

Übersicht 1 Paket schreiben Identifizierung Laden von Paketen Paketoptionen Befehle Errors, Warnings, Infos 2 Paket benutzen TEX-Directory-Structure 3 Paket verpacken Doc und DocStrip 2 / 16

Begrüßung \NeedsTeXFormat{ Format }[ Datum ] \ProvidesPackage{ Name }[ Datum weitere Infos ] \ProvidesClass{ Name }[ Datum weitere Infos ] \ NeedsTeXFormat { LaTeX 2e }[1996/12/01] \ ProvidesPackage { meinpaket }[ 2015/ 02/ 05 v 0.1 Dolles Paket ] 3 / 16

Pakete Laden \RequirePackage[ Paketoptionen ]{ Paket }[ Datum ] \LoadClass[ Klassenoptionen ]{ Klasse }[ Datum ] 4 / 16

Pakete Laden \RequirePackage[ Paketoptionen ]{ Paket }[ Datum ] \LoadClass[ Klassenoptionen ]{ Klasse }[ Datum ] Eigene Optionen an geladenes Paket weitergeben: \RequirePackageWithOptions{ Paket }[ Datum ] \LoadClassWithOptions{ Klasse }[ Datum ] Eine Klasse kann nur (einmal) von einer Klasse geladen werden \ RequirePackage [ hmargin =3 cm ]{ geometry } 4 / 16

Optionen Option definieren: \DeclareOption{ Option }{ Code } nicht definierte Optionen verwenden: \DeclareOption*{ Code } Optionen verarbeiten: \ProcessOptions innerhalb von \DeclareOprtion*: \CurrentOption \OptionNotUsed \ DeclareOption {a4 paper }{% \ setlength {\ paperheight }{297 mm}% \ setlength {\ paperwidth }{210 mm}% } \ DeclareOption *{\ OptionNotUsed } \ ProcessOptions 5 / 16

key=value-optionen Klassen/Paketoptionen mit Key-Value-Syntax lassen sich zum Beispiel mit kvoptions realisieren. \ SetupKeyvalOptions { family = meinpaket, prefix = mypkg@ } \ DeclareStringOption [ default ]{ mystring } \ DeclareBoolOption { mybool } \ ProcessKeyvalOptions { mypkg } 6 / 16

Makros Definieren Befehl definieren: \newcommand{ Befehl }[ Anzahl ][ Default ]{ Definition } Befehl umdefinieren: \renewcommand{ Befehl }[ Anzahl ][ Default ]{ Definition } Befehl nur definieren, falls er nicht existiert: \providecommand{ Befehl }[ Anzahl ][ Default ]{ Definition } Testen ob ein Befehl (genau so) definiert ist: \CheckCommand{ Befehl }[ Anzahl ][ Default ]{ Definition } 7 / 16

Makros Definieren Befehl definieren: \newcommand{ Befehl }[ Anzahl ][ Default ]{ Definition } Befehl umdefinieren: \renewcommand{ Befehl }[ Anzahl ][ Default ]{ Definition } Befehl nur definieren, falls er nicht existiert: \providecommand{ Befehl }[ Anzahl ][ Default ]{ Definition } Testen ob ein Befehl (genau so) definiert ist: \CheckCommand{ Befehl }[ Anzahl ][ Default ]{ Definition } Oder mit LATEX3-Syntax (expl3, siehe letzte Vorlesung) 7 / 16

Nützliche Befehle Code zu verschiedenen Zeitpunkten ausführen \AtBeginDocument{ Code } \AtEndDocument{ Code } \AtEndOfPackage{ Code } \AtEndOfClass{ Code } 8 / 16

Mit dem Nutzer sprechen \typeout{ Nachricht } \PackageInfo{ Paket }{ Nachricht } \PackageWarning{ Paket }{ Nachricht } \PackageWarningNoLine{ Paket }{ Nachricht } \PackageError{ Paket }{ Nachricht }{ Hilfetext } \ PackageInfo { meinpaket }{ Dies ist eine Info.} \ PackageError { meinpaket }{ Dies ist eine Warnung.} \ PackageError { meinpaket }{ Dies ist ein Fehler.}{ Fehler lässt sich nicht beheben.} 9 / 16

Paket einbinden Im Dokument: \usepackage{meinpaket} meinpaket.sty muss im selben Ordner liegen 10 / 16

Paket einbinden Im Dokument: \usepackage{meinpaket} meinpaket.sty muss im selben Ordner liegen Alternative: TEX durchsucht alle Ordner des TDS-Baums Lokale Pakete können in $TEXMFHOME abgelegt werdern 10 / 16

Pakete ausliefern Programm DocStrip kann aus einer Datei verschiedene Ausgabe-Dokumente erstellen. 1 Lösche alle Zeilen, die mit % anfangen sty oder cls 2 Lösche alle % die am Anfang der Zeile stehen pdf In Overleaf ausprobieren: http://polr.me/tex1400

Beispiel dtx 1/4 % \ iffalse meta - comment % Copyright ( C) 2015 by Lieschen Müller % \fi \ iffalse %<driver >\ ProvidesFile { meinpaket.dtx } %<package >\ NeedsTeXFormat { LaTeX 2e }[2007/07/20] %<package >\ ProvidesPackage { meinpaket }[2015/02/05 v0.1 Dolles Paket ] % <* batchfile > \ begingroup \ input { docstrip. tex } \ preamble Copyright ( C) 2015 by Lieschen Müller \ endpreamble \ askforoverwritefalse \ generate {\ file { meinpaket. sty }{\ from { meinpaket. dtx }{ package }}} \ endgroup % </ batchfile > 12 / 16

Beispiel dtx 2/4 % <* driver > \ documentclass { ltxdoc } \ usepackage [ ngerman, english ]{ babel } \ usepackage [T 1]{ fontenc } \ usepackage [ utf 8]{ inputenc } \ begin { document } \ DocInput { meinpaket. dtx } \end{ document } % </ driver > % \fi % \ CheckSum {0} % % \ changes {v 0.1}{2015/02/05}{ Initial version } % % \ GetFileInfo { meinpaket. dtx } % 13 / 16

Beispiel dtx 3/4 % \ title { Mein Paket \ thanks { Diese Anleitung bezieht sich auf Version \ fileversion }} % \ author { Lieschen Müller } % \ date {\ filedate } % \ maketitle % % \ begin { abstract } % \ noindent Dieses tolle Paket tut tolle Dinge. % \ end { abstract } % % \ tableofcontents % % \ section { Anleitung } % So funktioniert mein tolles Paket... % 14 / 16

Beispiel dtx 4/4 % \ section { Implementierung } % So habe ich mein Paket implementiert : % % \ iffalse % <* package > % \fi % \ begin { macrocode } \ providecommand {\ meinbefehl }{ Hier steht der eigentliche Inhalt des Pakets } % \ end { macrocode } % \ iffalse % </ package > % \fi % \ endinput 15 / 16

Weiterführende Literatur The LATEX3 Project. LATEX 2ε for class and package writers. texdoc clsguide Scott Pakin. How to Package Your LATEX Package. texdoc dtxtut Frank Mittelbach u. a. The DocStrip program. texdoc docstrip 16 / 16