initial commit
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
*~
|
||||||
|
.*.swp
|
||||||
|
.*.swo
|
||||||
|
build/*
|
||||||
|
.lock-waf_linux_build
|
||||||
36
README.md
Normal file
36
README.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Beispiel für einen Brief in LaTeX
|
||||||
|
|
||||||
|
Dieses Repository enthält ein Beispiel für einen Brief in LaTeX.
|
||||||
|
|
||||||
|
Um das Beispiel zu bauen, öffnest Du zunächst die Konsole.
|
||||||
|
|
||||||
|
Dann wechselst Du in ein Verzeichnis, in dem Du Deine Briefe
|
||||||
|
speichern möchtest, z.B. ```LatexÜbungen``` (nach jedem Befehl immer die Eingabetaste drücken!)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/LatexÜbungen
|
||||||
|
```
|
||||||
|
|
||||||
|
Danach kannst Du das Git-Repository auf Deinen Rechner herunterladen (der Fachmann sagt: Das
|
||||||
|
Repository "klonen"):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://git.orca-central.de/Examples/BeispielBriefInLaTeX.git
|
||||||
|
```
|
||||||
|
|
||||||
|
In dem Verzeichnis, in dem Du gerade bist, gibt es nun ein Unterverzeichnis namens
|
||||||
|
```BeispielBriefInLaTeX```. Da wechseln wir jetzt hinein:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd BeispielBriefInLaTeX
|
||||||
|
```
|
||||||
|
|
||||||
|
Hier angekommen, kannst Du nun das Dokument mit dem Befehl ```pdflatex main.tex``` erstellen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pdflatex main.tex
|
||||||
|
```
|
||||||
|
|
||||||
|
Im Anschluss befinden sich eine Menge neue Dateien in dem Verzeichnis. Eine davon heißt
|
||||||
|
```main.tex``` und enthält den Beispielbrief.
|
||||||
|
|
||||||
77
main.tex
Normal file
77
main.tex
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
% Dies ist ein Beispielbrief.
|
||||||
|
% Sofern Du eine funktionierende private.lco Datei hast,
|
||||||
|
% muss hier nichts als der Inhalt Deines Briefes stehen.
|
||||||
|
|
||||||
|
% Die Präambel
|
||||||
|
|
||||||
|
% Die Dokumentklasse scrlttr2 ist extra für deutschsprachige Briefes
|
||||||
|
% gedacht. Sie orientiert sich am Layout des Normbriefes nach DIN 5008.
|
||||||
|
\documentclass{scrlttr2}
|
||||||
|
|
||||||
|
% Mit diesem Befehl wird die Datei private.lco geladen. Sie ist für alle Briefe
|
||||||
|
% gleich und kann immer wieder zu einem Brief hinzukopiert werden.
|
||||||
|
\LoadLetterOption{private}
|
||||||
|
|
||||||
|
% Hier ist die Präambel zu Ende, und der Inhalt des Dokuments beginnnt.
|
||||||
|
% In LaTex wird das immer mit einem \begin{document} eingeleitet.
|
||||||
|
% Der letzte Befehl in einem Dokument ist entsprechend \end{document}.
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
% Die Variable 'subject' setzt den Betreff eines Briefes.
|
||||||
|
% Wird sie weggelassen hat der Brief keine Betreffzeile.
|
||||||
|
\setkomavar{subject}{Beispielbrief in \LaTeX}
|
||||||
|
|
||||||
|
% Als nächstes eröffnen wir den Inhalt des Briefes. In scrlttr2 passiert das,
|
||||||
|
% indem wir unseren Brief in eine 'letter'-Umgebung einefassen.
|
||||||
|
% Eine Umgebung in LaTeX ist ein Bereich, der eine betimmte Bedeutung hat.
|
||||||
|
% eine 'itemize'-Umgebung z.B. enthält eine unsortierte Liste, die 'letter'-Umgebung
|
||||||
|
% den Inhalt eines Briefes. Eine Umgebung fängt immer mit \begin{NameDerUmgebung} an,
|
||||||
|
% und endet mit \end{NameDerUmgebung}.
|
||||||
|
% Manche Befehle stehen nur innerhalb einer bestimmten Umgebung
|
||||||
|
% zur Verfügung. So würde der Befehl \opening, der die Anredeformel enthält, außerhalb eines
|
||||||
|
% Briefes nicht viel Sinn ergeben. Deswegen gibt es diesen Befehl nur innerhalb der 'letter'-
|
||||||
|
% Umgebung.
|
||||||
|
%
|
||||||
|
% Die Umgebung 'letter' kennt noch einen Parameter: Den Inhalt des Umschlagfensters.
|
||||||
|
% Normalerweise steht dort die Anschrift des Empfängers drin. Im Prinzip kann hier aber
|
||||||
|
% beliebier LaTeX code stehen. Der Befehl '\\' erzwingt einen Zeilenumbruch. Das ist wichtig,
|
||||||
|
% Da Zeilenumbrüche im Quelltext in der Regel von LaTeX ignoriert werden! Um die korrekte
|
||||||
|
% Zeilenformatierung kümmert sich LaTeX ja selber. Wenn du einen Umbruch erzwigen willst,
|
||||||
|
% musst Du LaTeX das daher explizit mitteilen.
|
||||||
|
\begin{letter}{
|
||||||
|
Example Maker GmbH \\
|
||||||
|
z.Hdn. Herrn Hampelmann \\
|
||||||
|
Beispielhof. 240 \\
|
||||||
|
10112 Königs-Musterhausen
|
||||||
|
}
|
||||||
|
|
||||||
|
% Der \opening-Befehl enthält die Anredeformel
|
||||||
|
\opening{Sehr geehrter Herr Hampelmann,}
|
||||||
|
|
||||||
|
% Das ist der Text unseres Briefes. Beachte, dass LaTeX den Zeilenumbruch nach der ersten
|
||||||
|
% Zeile ignoriert. Wir können mit solchen Umbrüchen den Quelltext lesbarer halten, ohne
|
||||||
|
% das dies Einfluß auf das Erscheinungsbild unseres Briefes hätte.
|
||||||
|
vielen Dank für Ihr Schreiben vom 14.03.2022.
|
||||||
|
Leider kann ich nicht erkennen, wie die von Ihnen gelieferten Beispiele unser Produkt verbessern
|
||||||
|
können.
|
||||||
|
|
||||||
|
% Um einen Absatz in LaTeX zu erzeugen, muss zwischen den Absätzen eine leere Zeile sein.
|
||||||
|
% Will man innerhalb eines Absatzes einen Zeilenumbruch erzwingen, nutzt man den oben schon
|
||||||
|
% gezeigten \\-Befehl.
|
||||||
|
Anstatt Ihre Beispiele mit Microsft Word zu schreiben, sollten Sie lieber \LaTeX verwenden. Dann
|
||||||
|
sind die Dokumente besser lesbar, und Ihre Beispiele lassen sich problemlos in nicht-Microsoft
|
||||||
|
Produkten verwenden.
|
||||||
|
|
||||||
|
% Die \closing-Anweisung ist das Gegenteil von \opening. Sie enthält die Grußformel am Ende des
|
||||||
|
% Briefes
|
||||||
|
\closing{mit freundlichen Grüßen}
|
||||||
|
|
||||||
|
% Ein Postscriptum, das nach der Grußformel mit P.S. an den Text angehängt wird.
|
||||||
|
\ps{Wenn Sie weiter so einen nutzlosen Schrott verkaufen, werde ich Sie verklagen.}
|
||||||
|
|
||||||
|
% mit \end{letter} beenden wir unseren Brief und schließen die Umgebung.
|
||||||
|
\end{letter}
|
||||||
|
|
||||||
|
% und endet das Dokument. Danach soll kein weiterer Code mehr folgen.
|
||||||
|
\end{document}
|
||||||
|
|
||||||
75
private.lco
Normal file
75
private.lco
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
% Die Dokumentenklasse scrlttr2 kommt mit einer Reihe von sehr schönen Hilfsfunktionen.
|
||||||
|
% Eine davon ist die lco-Datei:
|
||||||
|
% Um einen Brief zu erstellen, benötigen wir ja immer wiederkehrende Elemente.
|
||||||
|
% Zum Beispiel ist ja die Absenderadresse immer die gleiche. Damit man diese Daten nicht jedes
|
||||||
|
% mal neu eintippen muss, kann man sie in der lco-Datei ablegen. Wenn Du einen neuen Brief
|
||||||
|
% schreiben möchtest, kannst Du diese Datei einfach in Deinen Projektordner kopieren.
|
||||||
|
% Sie wird dann im Hauptdokument in der Präambel der Befehl \LoadLetterOption{private} angegben
|
||||||
|
% (die Dateiendung .lco kannst Du in dem Befehl weglassen).
|
||||||
|
% Dieser Befehl lädt dann alle Anweisungen aus der lco-Datei nach.
|
||||||
|
% Die Datei kann im Prinzip irgendwo auf der Festplatte liegen, ich habe es mir aber zur
|
||||||
|
% Angewohnheit gemacht, sie immer zu kopieren, wenn ich einen neuen Brief erstelle, weil dann
|
||||||
|
% alle Dateien in meinem Git-Repository eingecheckt sind.
|
||||||
|
% Du musst diese Datei nicht verstehen, um einen Brief schreiben zu können. Nur der letzte Teil,
|
||||||
|
% wo die Absenderadresse festgelegt wird.
|
||||||
|
|
||||||
|
% Als erstes kennzeichnen wir, dass es sich um eine lco-Datei handelt, und zu welchem
|
||||||
|
% Absender sie gehört (man kann mehrere Absender definieren).
|
||||||
|
% Der Befehl \ProvidesFile akzeptiert mehrere Parameter. In den
|
||||||
|
% geschweiften Klammern steht der Name der internen Klasse (private.lco). Dazu
|
||||||
|
% musst Du Dir nur merken, dass der immer gleich mit dem Namen der lco-Datei sein sollte.
|
||||||
|
% In den eckigen Klammern werden der Klasse 3 Parameter übergeben, dass Erstellungsdatum,
|
||||||
|
% der Typ (immer 'lco' und der Name des Absenders. Der Name steht in Klammern, damit
|
||||||
|
% LaTeX weiß, dass 'Max Mustermann' nur ein Parameter ist und zusammen gehört, obwohl da ein
|
||||||
|
% Leerzeichen drin steht.
|
||||||
|
\ProvidesFile{private.lco}[2022/03/22 lco (Max Mustermann)]
|
||||||
|
|
||||||
|
|
||||||
|
% Die folgenden Befehle, werden in die Präambel eingefügt. Im wesenlichen handelt es sich dabei
|
||||||
|
% um LaTeX-Pakete, die geladen werden sollen. Was diese Pakete tun, steht jeweils in dem Kommentar
|
||||||
|
% am Ende der Zeile.
|
||||||
|
\usepackage{cmap} % Sorgt dafür, dass pdf-Dateien durchsuchbar und kopierbar werden.
|
||||||
|
\usepackage[ngerman]{babel} % Stellt die Sprache des Textes auf deutsch. Damit kannst Du z.B
|
||||||
|
% Umlaute einfach eintippen, und LaTeX kennt die
|
||||||
|
% Silbentrennungsregeln. "ngerman" steht dabei für die neuen
|
||||||
|
% Rechtschreibregeln, "german" für die alten.
|
||||||
|
\usepackage[utf8]{inputenc} % Die Textdatei, in der wir schreiben ist eine Unicode-Datei.
|
||||||
|
\usepackage[T1]{fontenc} % Die PDF-Datei benutzt den Latin-1-Zeichensatz, der deutsche
|
||||||
|
% Umlaute enthält, und auch auf Computern funktioniert, die kein
|
||||||
|
% Unicode anzeigen können.
|
||||||
|
\usepackage{lmodern} % Verwendet die serifenlose Computer-Modern-Schrift statt Roman.
|
||||||
|
\usepackage{microtype} % Under Dokument soll in echtem Blocksatz gesetzt werden.
|
||||||
|
\usepackage{graphicx} % Wir wollen bei Bedarf Bilder einbinden können.
|
||||||
|
\usepackage{xcolor} % Erlaubt den Druck in Farbe.
|
||||||
|
\usepackage{pdfpages} % Einbinden von PDF Seiten aus einem PDF Dokument.
|
||||||
|
\usepackage{fixltx2e} % Verbessert einige Kernkompetenzen von LaTeX2e
|
||||||
|
\usepackage{ellipsis} % Korrigiert den Weißraum um Auslassungspunkte
|
||||||
|
|
||||||
|
% Hier werden ein paar Variablen gesetzt, damit die Absenderadresse und diverse Daten
|
||||||
|
% angezeigt werden.
|
||||||
|
\KOMAoptions{%
|
||||||
|
foldmarks=true, % Druckt die Faltmarkierungen für das Falten des Briefes.
|
||||||
|
backaddress=true, % Druckt die Absenderadresse in einer Zeile im Ausgabefenster
|
||||||
|
fromphone, % Druckt die Telefonnummer im Kopf
|
||||||
|
fromemail, % Druckt die E-Mail Adresse im Kopf
|
||||||
|
enlargefirstpage=true, % verkleinert den unteren Rand auf der erstens Seite.
|
||||||
|
% Stelle die Option auf 'false', wenn Du Briefpapier mit einem
|
||||||
|
% vorgedruckten Fußbereich benutzt.
|
||||||
|
paper=A4, % Das Papierformat ist DIN A4
|
||||||
|
fontsize=12pt, % Setzt die Schriftgröße für de Brieftext auf 12pt.
|
||||||
|
fromalign=left, % Die Absendersadresse im Briefkopf ist auf der linken Seite.
|
||||||
|
draft=false % Der Brief ist kein Testausdruck.
|
||||||
|
}
|
||||||
|
|
||||||
|
% Im letzten Abschnitt werden die Variablen gesetzt, die die tatsächlichen Absenderdaten enthalten.
|
||||||
|
\setkomavar{fromname}{Max Mustermann} % Der Name des Absenders
|
||||||
|
\setkomavar{fromaddress}{Musterstraße 11\\ % Die Absenderadresse. Das \\ fügt zwischen Staße und
|
||||||
|
21000 Musterhausen } % Ort einen Zeilenumbruch ein.
|
||||||
|
\setkomavar{fromphone}{0421 555222} % Die Telefonnummer des Absenders.
|
||||||
|
\setkomavar{fromemail}{max@mustermann.de} % die E-Mailadresse des Absenders.
|
||||||
|
\renewcommand*{\raggedsignature}{\raggedright} % Die Briefsignatur nicht im Blocksatz setzen.
|
||||||
|
\setkomavar{place}{Musterhausen} % Der Ort (wird bei Datumangaben benutzt: Bremen,
|
||||||
|
% den 22.03.2022)
|
||||||
|
|
||||||
|
%\@addtoplength[-1]{toaddrvpos}{20mm} % Optionale Abstände vor und nach den Adressen
|
||||||
|
%\@addtoplength[-1]{refvpos}{20mm}
|
||||||
207
wscript
Normal file
207
wscript
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# encoding: utf-8
|
||||||
|
# Created On: Tue 28 Aug 2012 11:44:05 CEST
|
||||||
|
# Last Modified: Sun 08 Apr 2018 10:46:32 pm CEST
|
||||||
|
# MAKEFILE for compiling LaTeX Files
|
||||||
|
|
||||||
|
VERSION='1.1.0'
|
||||||
|
APPNAME='MAKEFILE FOR LaTeX'
|
||||||
|
|
||||||
|
top='.'
|
||||||
|
out='build'
|
||||||
|
chapterpath='./chapters'
|
||||||
|
|
||||||
|
# query the options that are possible outputs
|
||||||
|
def options(ctx):
|
||||||
|
ctx.add_option('--form',action='store',default='pdflatex',help='Specify the output format. Allowed values are: pdflatex, latex, htlatex, odt, epub, handlatex')
|
||||||
|
ctx.add_option('--cover',action='store',default='images/cover.png',help='Specify an image as cover for ePubs.\nOnly works with --form=epub')
|
||||||
|
ctx.add_option('--infile',action='store',help='Specify the tex file to use as input file.\nIf not given, all files in the top level directory will be compiled.')
|
||||||
|
ctx.add_option('--css',action='store',default='css/epub.css',help='Specifiy a style sheet to design an ebook')
|
||||||
|
ctx.add_option('--spellckpath',action='store',help='Specify the path in which to look for the content files for spellcheck.\nDefault is ./chapters',default=chapterpath);
|
||||||
|
|
||||||
|
# configure script
|
||||||
|
def configure(ctx):
|
||||||
|
# local functions to configure the selected element
|
||||||
|
def find_tex_files(path):
|
||||||
|
import os
|
||||||
|
ret = []
|
||||||
|
for name in os.listdir(path):
|
||||||
|
if os.path.isfile(os.path.join(path,name)):
|
||||||
|
if (name.endswith('.tex')) or (name.endswith('.ltx')):
|
||||||
|
ret.append(name)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def conf_tex(ctx):
|
||||||
|
ctx.load('tex')
|
||||||
|
|
||||||
|
def conf_htlatex(ctx):
|
||||||
|
ctx.find_program('mk4ht',var='TEX')
|
||||||
|
ctx.env.TEXINPUT = ctx.path.abspath() + '//'
|
||||||
|
|
||||||
|
def conf_epub(ctx):
|
||||||
|
ctx.find_program('pandoc',var='EPUB')
|
||||||
|
ctx.env.TEXINPUT = ctx.path.abspath() + '//'
|
||||||
|
|
||||||
|
def conf_odt(ctx):
|
||||||
|
ctx.find_program('pandoc',var='ODT')
|
||||||
|
ctx.env.TEXINPUT = ctx.path.abspath() + '//'
|
||||||
|
|
||||||
|
def conf_handlatex(ctx):
|
||||||
|
ctx.find_program('handlatex',var='TEX')
|
||||||
|
ctx.env.TEXINPUT = ctx.path.abspath() + '//'
|
||||||
|
|
||||||
|
# define a structure to assign the functions to the parameters
|
||||||
|
conf_output = {'pdflatex' : conf_tex,
|
||||||
|
'latex' : conf_tex,
|
||||||
|
'htlatex' : conf_htlatex,
|
||||||
|
'odt' : conf_odt,
|
||||||
|
'epub' : conf_epub,
|
||||||
|
'handlatex' : conf_handlatex
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# set the selected mode
|
||||||
|
if ctx.options.form:
|
||||||
|
ctx.env.FORM = ctx.options.form
|
||||||
|
conf_output[ctx.env.FORM](ctx)
|
||||||
|
else:
|
||||||
|
ctx.fatal('Output format is not set!')
|
||||||
|
|
||||||
|
# set a cover image
|
||||||
|
if ctx.options.cover:
|
||||||
|
ctx.env.COVER = ctx.options.cover
|
||||||
|
else:
|
||||||
|
ctx.env.COVER = ''
|
||||||
|
|
||||||
|
# set the css style
|
||||||
|
if ctx.options.css:
|
||||||
|
ctx.env.CSS = ctx.options.css
|
||||||
|
else:
|
||||||
|
ctx.env.CSS = ''
|
||||||
|
|
||||||
|
# find the aspell program
|
||||||
|
ctx.find_program('aspell',var='ASPELL')
|
||||||
|
|
||||||
|
# set a default path to look for spellck sources
|
||||||
|
if ctx.options.spellckpath:
|
||||||
|
ctx.env.SPELLCK = ctx.options.spellckpath
|
||||||
|
|
||||||
|
# Set a list of all files to use
|
||||||
|
if ctx.options.infile:
|
||||||
|
sf = []
|
||||||
|
sf.append(ctx.options.infile)
|
||||||
|
ctx.env.SOURCEFILES = sf
|
||||||
|
else:
|
||||||
|
ctx.env.SOURCEFILES = find_tex_files(top)
|
||||||
|
|
||||||
|
|
||||||
|
def build(ctx):
|
||||||
|
import os.path
|
||||||
|
# metadata parameters
|
||||||
|
def build_metadata(fileName,cover):
|
||||||
|
ret = ''
|
||||||
|
if os.path.isfile(fileName):
|
||||||
|
ret += '--css="' + fileName + '"'
|
||||||
|
if os.path.isfile(cover):
|
||||||
|
ret += ' --epub-cover="' + cover + '"'
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
# local functions to control the build process
|
||||||
|
def build_tex(ctx):
|
||||||
|
import os
|
||||||
|
for f in ctx.env.SOURCEFILES:
|
||||||
|
ctx(features = 'tex',
|
||||||
|
type = ctx.env.FORM,
|
||||||
|
source = f,
|
||||||
|
prompt = 0
|
||||||
|
)
|
||||||
|
if ctx.cmd == 'install':
|
||||||
|
outExt = '.dvi'
|
||||||
|
if ctx.env.FORM == 'pdflatex':
|
||||||
|
outExt = '.pdf'
|
||||||
|
fileName, fileExt = os.path.splitext(f)
|
||||||
|
ctx.install_files('${PREFIX}',fileName + outExt)
|
||||||
|
|
||||||
|
def build_htlatex(ctx):
|
||||||
|
for f in ctx.env.SOURCEFILES:
|
||||||
|
ctx(rule='TEXINPUTS=${TEXINPUT}: ${TEX} ${FORM} ${SRC} >/dev/null',source=f)
|
||||||
|
if ctx.cmd == 'install':
|
||||||
|
fileName, fileExt = os.path.splitext(f)
|
||||||
|
ctx.install_files('${PREFIX}',fileName + '.html')
|
||||||
|
|
||||||
|
def build_epub(ctx):
|
||||||
|
import os
|
||||||
|
for f in ctx.env.SOURCEFILES:
|
||||||
|
if os.path.isfile(ctx.env.COVER) :
|
||||||
|
ctx.env.META = build_metadata(ctx.path.find_resource(ctx.env.CSS).abspath(),ctx.path.find_resource(ctx.env.COVER).abspath())
|
||||||
|
else:
|
||||||
|
ctx.env.META = build_metadata(ctx.path.find_resource(ctx.env.CSS).abspath(),'')
|
||||||
|
fileName, fileExt = os.path.splitext(f)
|
||||||
|
ctx(rule='TEXINPUTS=${TEXINPUT}: ${EPUB} ${META} -t epub ${SRC} -o ${TGT} >/dev/null',source=f, target=fileName + '.epub')
|
||||||
|
if ctx.cmd == 'install':
|
||||||
|
ctx.install_files('${PREFIX}',fileName + '.epub')
|
||||||
|
|
||||||
|
def build_odt(ctx):
|
||||||
|
import os
|
||||||
|
for f in ctx.env.SOURCEFILES:
|
||||||
|
fileName, fileExt = os.path.splitext(f)
|
||||||
|
ctx(rule='TEXINPUTS=${TEXINPUT}: ${ODT} -t odt ${SRC} -o ${TGT} >/dev/null',source=f,
|
||||||
|
target=fileName + '.odt')
|
||||||
|
if ctx.cmd == 'install':
|
||||||
|
ctx.install_files('${PREFIX}',fileName + '.odt')
|
||||||
|
|
||||||
|
def build_handlatex(ctx):
|
||||||
|
import os
|
||||||
|
for f in ctx.env.SOURCEFILES:
|
||||||
|
ctx(rule='TEXINPUTS=${TEXINPUT}: ${TEX} ${SRC} >/dev/null && rm -f ../*.h*',source=f)
|
||||||
|
if ctx.cmd == 'install':
|
||||||
|
fileName, fileExt = os.path.splitext(f)
|
||||||
|
ctx.install_files('${PREFIX}',fileName + outExt)
|
||||||
|
|
||||||
|
|
||||||
|
# define a structure to assign the functions to the parameters
|
||||||
|
build_output = {'pdflatex' : build_tex,
|
||||||
|
'latex' : build_tex,
|
||||||
|
'htlatex' : build_htlatex,
|
||||||
|
'odt' : build_odt,
|
||||||
|
'epub' : build_epub,
|
||||||
|
'handlatex' : build_handlatex
|
||||||
|
}
|
||||||
|
|
||||||
|
# call the configured build method
|
||||||
|
build_output[ctx.env.FORM](ctx)
|
||||||
|
|
||||||
|
|
||||||
|
# Custom command to spellcheck all
|
||||||
|
def spellck(ctx):
|
||||||
|
|
||||||
|
# Search for all possible TEX files
|
||||||
|
def find_tex_files(path):
|
||||||
|
import os
|
||||||
|
ret = []
|
||||||
|
for root, dirs, files in os.walk(path):
|
||||||
|
for name in files:
|
||||||
|
if (name.endswith('.tex')) or (name.endswith('.ltx')):
|
||||||
|
ret.append(os.path.join(root,name))
|
||||||
|
return ret
|
||||||
|
|
||||||
|
# Set a list of input files to use
|
||||||
|
if ctx.options.infile:
|
||||||
|
sf = []
|
||||||
|
sf.append(ctx.options.infile)
|
||||||
|
ctx.env.SOURCEFILES = sf
|
||||||
|
else :
|
||||||
|
ctx.env.SOURCEFILES = find_tex_files(ctx.env.SPELLCK)
|
||||||
|
|
||||||
|
# run aspell
|
||||||
|
from os import system
|
||||||
|
for f in ctx.env.SOURCEFILES :
|
||||||
|
system(ctx.env.ASPELL[0] + ' -c ' + f)
|
||||||
|
system('rm ' + f + '.' +'bak')
|
||||||
|
|
||||||
|
# Class declarartion to bind the build context to the spellck command
|
||||||
|
from waflib.Build import BuildContext
|
||||||
|
class spck(BuildContext):
|
||||||
|
cmd='spellck'
|
||||||
|
fun='spellck'
|
||||||
Reference in New Issue
Block a user