Skip to content

Mehr als 10 Spalten in LaTeX Matrizen

Möchte man Matrizen mit mehr als 10 Spalten in LaTeX erstellen muss man die Folgende Zeile vor \begin{document} einfügen:

\setcounter{MaxMatrixCols}{20}

Für 20 kann man jeden anderen beliebigen Wert eingeben (Dieser gibt an wie viele Spalten man maximal angeben kann).

More than 10 columns in LaTeX matrices

If you want to print more than 10 columns in LaTeX matrices you have to add the following line before \begin{document}:

\setcounter{MaxMatrixCols}{20}

You can set this to every desired value.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

gtkmm mit Eclipse unter Max OS X

Ich möchte in dieser Anleitung erklären, wie man unter Mac OS X mit Eclipse C++ Programme mit GTK erstellen kann.
Um überhaupt ein C/C++ Programm auf dem Mac kompilieren zu können braucht man die Compiler GCC und G++. Diese lassen sich leider nur über Umwege durch XCode installieren. Wenn man Apples eigene Entwicklungsumgebung noch nicht installiert hat, kann man dies über den Mac App Store nachholen (einfach nach Xcode suchen).
003
Nachdem Xcode erfolgreich installiert wurde kann man es einfach aus dem Programme-Verzeichnis starten (und anschließend eventuelle Begrüßungsmeldungen wegdrücken). Nun kann GCC und G++ installiert werden, dazu begibt man sich im Xcode-Menü zu Xcode -> Preferences, anschließend wählt man in diesem Fenster den Reiter Downloads und wählt in der Liste Command Line Tools zu Installation aus mit install.
005
Nachdem die Installation der Command Line Tools abgeschlossen wurde, sollte man im Terminal prüfen ob die Installation erfolgreich war. Ein Terminal kann man öffnen, indem man im Programme-Verzeichnis das Verzeichnis Dienstprogramme öffnet und dort das Programm Terminal startet. Anschließend gibt man nacheinander folgendes ein:

g++
gcc

Die Ausgabe sollte so aussehen:
008

Da Mountain Lion kein xquartz mehr mit an Bord hat muss man es händisch nachinstallieren (xquartz wird benötigt damit die grafische Oberfläche GTK unter Mac OS X gestartet werden kann). xquartz kann man unter der folgenden Adresse herunterladen: http://xquartz.macosforge.org/landing/
Um xquartz zu installieren muss man einfach das *.dmg öffnen und mit ein paar Klicks das Paket installieren. Nach der Installation von xquartz sollte man den Computer neustarten.

Nun kommt der schwierigste und längste Teil der Einrichtung, den es muss das Programm fink installiert werden. Hierzu läd man sich zuerst den Quellcode von fink runter, unter: http://sourceforge.net/projects/fink/ (hier nimmt man die derzeit aktuellste Version fink-0.34.7.tar.gz).
Das tar.gz-Archiv lässt sich anschließend mit einem Doppelklick im Download-Verzeichnis entpacken. Nachdem man das Archiv entpackt hat, muss man sich wieder in ein Terminal begeben und mit dem folgenden Befehl in das soeben entpackte fink-Verzeichnis wechseln.

cd ~/Downloads/fink-0.34.7

Wenn man sich im Verzeichnis befindet kann man fink über das Terminal installieren mit:

sudo ./bootstrap

Am Anfang fragt das Kommando sudo das Benutzerpasswort ab, dies sollte man eingeben ansonsten kann die Installation nicht ausgeführt werden. Danach werden dem Benutzer einige Fragen gestellt, diese sollte man sich durchlesen, aber meistens reicht ein einfaches ENTER-drücken für die Bestätigung der default-Werte.
Wenn die fink Installation abgeschlossen ist muss man noch die Pfade für fink im System setzen mit (Ich gehe hier davon aus, dass man sich während der Installation für das default-Verzeichnis /sw entschieden hat):

sudo /sw/bin/pathsetup.sh

Danach muss man noch eine Konfigurationsdatei ändern mit:

sudo nano ~/.bash_profile

Hier wird der Editor nano geöffnet. Mit den Pfeiltasten begibt man sich nun zum Ende der Datei und ergänzt die folgende Zeile:

source /sw/bin/init.sh

Mit drücken von [ctrl]+[o] wird die Datei gespeichert. Anschließend kann man nano wieder über drücken von [ctrl]+[x] verlassen. Damit die Änderungen an der Konfigurationsdatei wirksam werden muss man das Terminal schließen mit [cmd]+[q].

Nun kann ein neues Terminal geöffnet werden in welchem man fink verwenden kann. Als erstes sollte man ein Update der fink-Datenbank durchführen mit:

sudo fink selfupdate

(Das kann je nach Verbindungsgeschwindigkeit eine Weile dauern).
Wenn das Update erfolgreich beendet wurde, kann nun das Paket gtkmm2.4-gtk-dev installiert werden mit:

sudo fink install gtkmm2.4-gtk-dev

Nun werden alle benötigten Pakete für gtkmm heruntergeladen und kompiliert, das kann schonmal 1-2 Stunden dauern.

Nachdem die Installation von gtkmm abgeschlossen wurde, muss man noch einen Link im Dateisystem setzen damit später das Programm pkg-config aufgerufen werden kann. Dies macht man mit dem folgenden Befehl:

sudo ln -s /sw/bin/pkg-config /usr/bin

Nun kann das Terminal geschlossen werden.

Als nächstes fährt man mit der Installation von Eclipse fort. Eclipse kann man unter der folgenden Adresse herunterladen: http://www.eclipse.org/downloads/
Hier wählt man am besten Eclipse IDE for Java EE Developers (Juno 64Bit). Anschließend entpackt man das tar.gz-Archiv und zieht man das entpackte Verzeichnis eclipse in das Programme-Verzeichnis. Eclipse lässt sich starten über Eclipse (violette Kugel im Verzeichnis eclipse). Beim ersten Start wird man nach dem workspace gefragt, hier gibt man einfach ein Verzeichnis in welches Eclipse alle Daten ablegen soll (zB Dokumente/workspace). Anschließend sieht man eine Willkommensnachricht, diese kann man einfach ignorieren und schließen.
Nun muss das CDT-Plugin installiert werden, mit welchem Eclipse einem eine Umgebung für C/C++ Programme zur Verfügung stellt. Um dieses Pulgin zu installieren begibt man sich innerhalb von Eclipse zu: Help -> Install New Software...
010
Anschließend muss man im erscheinenden Dialog auf den Button Add... drücken und eine neue Downloadseite hinzufügen.
Name: CDT
Location: http://download.eclipse.org/tools/cdt/releases/juno
020
Mit drücken von OK wird die neue Downloadseite in die Datenbank eingetragen. Danach sucht wählt man CDT bei Work with aus, und setzt einen Haken bei CDT Main Features. Und drück auf Next.
030
Im Anschluss muss man nochmals auf Next drücken und zum Schluss müssen die Lizenzvereibarungen akzeptiert werden. Mit Finish wird das CDT-Plugin installiert.
040
Wenn die Installation erfolgreich war muss man Eclipse neustarten damit die Änderungen wirksam werden.

Nachdem Neustart kann die C/C++ Oberfläche aktiviert werden, dazu begibt man sich im Eclipse-Menü zu: Window -> Open Perspective -> Other....
080
Im folgenden Dialog wählt man C/C++ aus und beendet die Abfrage mit OK.
090
Nun kann man ein neues C++ Projekt anlegen mit: File -> New -> C++ Project.
100
Im folgenden Dialog muss man dem Projekt einen Namen geben (hier GtkTest) und unter Project Type: Makefile project -> Empty Project auswählen. Unter Toolchains wählt man MacOSX GCC aus. Die Erstellung des Projekts schließt man mit Finish ab.
110
Nun erscheint links im Project Explorer eine neues Projekt mit dem Namen GtkTest. Bevor man etwas programmieren kann muss noch der Pfad zu gtkmm-2.4 zum Projekt hinzugefügt werden, dazu begibt man sich im Eclipse-Menü zu: Project -> Properties.
120
Im Properties-Dialog navigiert man auf der linken Seite zu: C/C++ General -> Paths and Symbols. Anschließend wählt man im Reiter Includes unter Languages den Punkt GNU C++ aus.
130
Hier kann nun der Pfad zu gtkmm-2.4 über drücken von Add... hinzugefügt werden. Bei Directory gibt man folgendes ein: /sw/include/gtkmm-2.4/
140
Mit drücken von OK wird der Pfad dem Projekt hinzugefügt. Anschließen kann man den Properties-Dialog schließen mit OK. Der Hinweis kann mit drücken von Yes geschlossen werden.

Nachdem alle Einstellungen für das Projekt vorgenommen wurden, kann das Source File erstellt werden. Mit einem Rechtsklick auf den Projektname im Project Explorer wählt man New -> Source File.
160
Im folgenden Dialog gibt man der Datei den Namen main.cpp und schließt die Erstellung mit drücken von Finish ab.
170
Die Datei erhält den folgenden Inhalt:

#include <gtkmm.h>
 
int main(int argc, char *argv[]) {
	Gtk::Main kit(argc, argv);
	Gtk::Window window;
	Gtk::Main::run(window);
}

(Eclipse wird alles rot unterstreichen, aber das verschwindet nach ein paar Sekunden wenn GTK gefunden wurde.)

Zuletzt braucht man noch ein Makefile. Dieses erstellt man mit einem Rechtsklick auf den Projektnamen und anschließend wählt man: New -> File.
180
Im folgenden Dialog gibt man der Datei den Namen Makefile und schließt die Erstellung der Datei mit Finish ab.
190
Das Makefile bekommt im Anschluss folgenden Inhalt:

all: main.cpp
	g++ -v `pkg-config gtkmm-2.4 --cflags` -O0 -g3 -Wall -c -o main.o main.cpp
	g++ -v -o main.exe main.o `pkg-config gtkmm-2.4 --libs`
clean:
	rm -f main.exe main.o

(Es werden keine Hochkommata verwendet sondern Backticks: `).

Nun sind alle Dateien angelegt und das Programm kann kompiliert werden mit drücken des kleinen Hammers im Eclipse-Menü. 200
Anschließend kann man das Programm starten mit drücken des Run-Buttons:
220
Nun sollte im Dock ein X erscheinen und kurz darauf das Fenster des soeben erstellen Programms.
240

Diese Anleitung wurde mit Tims Unterstützung erstellt (http://podcastination.de/).

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Mit shell_exec() bash ausführen statt sh (php)

Der php-Befehl shell_exec() führt unter Linux Befehle in einer shell aus, hierfür verwendet php die Bourne-Shell (sh). Die Standard-Shell der meisten Linux Distributionen ist aber die bash (Bourne-Again-Shell), dementsprechend hat man sich an die Vorzüge dieser gewöhnt. Zum Beispiel kann man in der bash mehrere Befehle mit logischen Operatoren verkünpfen (&&). Dies bietet die sh leider nicht. Möchte man nun die bash mit shell_exec verwenden bietet es sich an eine eigene Funktion für diese zu schreiben die wie folgt aussehen kann:

function bash_exec($cmd) {
	return shell_exec("/bin/bash -c \"".$cmd."\"");
}


Run bash in shell_exec() instead of sh (php)

The php function shell_exec() executes your Linux command within a shell. php uses the Bourne shell (sh) to executes your commands but the standard shell in most Linux distributions is bash (Bourne Again shell), because of this you are used to use the advantages of it. E.g. it is possible to chain two commands with &&. Unforunatly, this isn’t possible this sh. To use bash instead of sh you can create a wrapper function like this:

function bash_exec($cmd) {
	return shell_exec("/bin/bash -c \"".$cmd."\"");
}

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

awstats: top level domain (tld) und second level domain filtern

Möchte man in seiner awstats Auswertung Eine Tabelle anzeigen lassen die alle Zugriffe nach second level domain und top level domain (zB Host: http://subdomain.exmaple.de -> example.de) aufschlüsselt muss die folgendee Zeilen ans Ende seiner awstats.SERVERNAME.conf hinzufügen.

ExtraSectionName1="Provider"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1=""
ExtraSectionFirstColumnTitle1="Provider"
ExtraSectionFirstColumnValues1="HOST,(([\-a-z]+)\.([a-z]+))$"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=PHB
MaxNbOfExtra1=50
MinHitExtra1=1

Anschließend wird am Ende der Auswertung eine weitere Tabelle angezeigt.



awstats: filter top level domain (tld) and second level domain

If you want to filter all accesses by top level (tld) and second level domain (e.g. http://subdomain.exmaple.de -> example.de), you have to put the following lines to the end of your awstats.SERVERNAME.conf file.

ExtraSectionName1="Provider"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1=""
ExtraSectionFirstColumnTitle1="Provider"
ExtraSectionFirstColumnValues1="HOST,(([\-a-z]+)\.([a-z]+))$"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=PHB
MaxNbOfExtra1=50
MinHitExtra1=1

Then you can see a new table at the end of your analysis.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

awstats ExtraSection mit Zugriffen aus dem eigenen Netzwerk

Das Open Source Webserver-Statistik-Tool awstats (http://www.awstats.org/) bietet eine Vielzahl von Möglichkeiten. So ist es auch möglich gewisse IP-Adressbereiche bei der Auswertung herauszufiltern. Möchte man alle Zugriffe auf einen Webserver anzeigen lassen die aus dem Adressbereich 192.168.1.0192.168.1.255 in einer eigenen Tabelle anzeigen lassen muss man folgende Zeilen an das Ende der gewünschten awstats.SERVERNAME.conf anhängen:

ExtraSectionName1="intern"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="HOST,^192\.168\.1\."
ExtraSectionFirstColumnTitle1="intern"
ExtraSectionFirstColumnValues1="HOST,^(.*)$"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=PHB
MaxNbOfExtra1=50
MinHitExtra1=1

Anschließend wird am Ende der Auswertung eine Liste mit alle Zugriffen aus dem gewünschten Adressbereich ausgegeben.




awstats ExtraSection for local network

The open source web server statistics tool awstats (http://www.awstats.org/) provides a huge amount of possibilities. Because of this it is possible to filter certain IP ranges within your analysis, for example all connections form your local network 192.168.1.0192.168.1.255. To show all these IPs in a seperate table, just add these lines to the end of your awstats.SERVERNAME.conf file:

ExtraSectionName1="intern"
ExtraSectionCodeFilter1="200 304"
ExtraSectionCondition1="HOST,^192\.168\.1\."
ExtraSectionFirstColumnTitle1="intern"
ExtraSectionFirstColumnValues1="HOST,^(.*)$"
ExtraSectionFirstColumnFormat1="%s"
ExtraSectionStatTypes1=PHB
MaxNbOfExtra1=50
MinHitExtra1=1

Then you can see a new table at the end of your analysis which shows all IPs from your local network.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Bei git push Versions/Build-Nummer hochzählen

Wenn man ein git repository auf einem entfernten Server hat kann es ganz nützlich sein, dass bei jedem push die Versions- bzw. Build-Nummer um eins erhöht wird. Dies lässt sich leicht mit einem hook realisieren. Wenn man sein git repository auf dem Server mit dem folgenden Befehl angelegt hat:

git init --bare REPO_NAME

Dann findet man im Verzeichnis REPO_NAME.git diese Struktur:

REPO_NAME.git/
├── branches
├── config
├── description
├── HEAD
├── hooks
├── info
├── objects
└── refs

Für das Hochzählen der Versions/Build-Nummer ist das Verzeichnis hooks interessant. Im Verzeichnis hooks legt man eine Datei mit dem Namen post-receive an, und gibt dieser Datei noch Ausführrechte:

touch post-receive
chmod a+x post-receive

Das Script post-receive wird nun jedesmal ausgeführt wenn ein git push erfolgt.

Nun muss man noch ein kleines bash Script erstellen (außerhalb des repositorys) mit dem Namen increase_version.sh und dem folgenden Inhalt:

#!/bin/bash
 
# get current version
VERSION=$( cat $1 )
 
# increase version number
VERSION=$(( ${VERSION} + 1 ))
 
# write new version to file
echo ${VERSION} > $1

In der Variable $1 ist der Dateiname enthalten welcher beim Aufruf als Kommandozeilen-Parameter übergeben wird gespeichert. Anschließend wird der Inhalt der Datei in der Variable VERSION gespeichert. Im nächsten Schritt wird VERSION um eins erhöht. Zum Schluss wird der Inhalt der Datei überschrieben mit der neuen Versionsnummer. Da man das Script auch ausführen möchte braucht es natürlich auch Ausführrechte:

chmod a+x increase_version.sh

Jetzt muss noch eine Datei erstellt werden in welcher die Versions/Build-Nummer gespeichert wird. Es bietet sich an das diese Datei mit dem innerhalb von REPO_NAME.git erstellt wird. In die Datei sollte nun noch die aktuelle Version eingetragen werden:

touch version.txt
echo 1 > version.txt

Zum Schluss muss man den Aufruf von increase_version.sh noch in post-receive eingetragen werden, dazu erhält post-receive den folgenden Inhalt:

#!/bin/bash
 
/path/to/increase_version.sh /path/to/REPO_NAME.git/version.txt

Hier wird der dem Script increase_version.sh als Parameter der Pfad zu version.txt übergeben.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Servlet als welcome-file (@WebServlet,web.xml)

Wenn man ein Servlet in einem JSP Projekt als welcome-file einstellen möchte kann man dies nicht direkt in der web.xml machen, sondern man muss einen kleinen Umweg gehen. Es soll folgendes Szenario gegeben sein: Es existiert ein Servlet mit dem Dateinamen Controller.java, diese Servlet soll die Anfragen auf den folgenden URLs entgegennehmen:

  • http://.../PROJEKTNAME/    (root)
  • http://.../PROJEKTNAME/login
  • http://.../PROJEKTNAME/show_dbs

Dazu gibt man folgendes bei @WebServlet ein:

@WebServlet(name="Controller", urlPatterns={"/index.html", "/login", "/show_dbs"})

Der Parameter name ist hierbei unabhängig vom Dateinamen des Servlets. Es sollte sichergestellt sein, dass die Datei mit dem Namen index.html nicht existiert.

In der web.xml (innerhalb des WEB-INF Verzeichnisses) wird nun das Folgende eingegeben:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
 
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
</web-app>

Nun werden alle Anfragen an http://.../PROJEKTNAME/ die URL http://.../PROJEKTNAME/index.html weitergeleitet und damit wird der das Servlet beim Aufruf des root-Verzeichnisses aufgerufen.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

JARs in Eclipse Projekt verwenden

Wenn man mit Java arbeitet benötigt man meistens die unterschiedlichsten JAR Dateien um dem Programm gewisse Funktionalitäten zur Verfügung zu stellen.
Zuerst erstellt man ein Java Projekt in Eclipse. Anschließend begibt man sich in sein Workspace-Verzeichnis in das Verzeichnis welches genauso heißt wie das soeben erstellte Java Projekt.

cd ~/home/workspace/PROJEKTNAME

Innerhalb des Projektverzeichnisses erstellt man ein neues Verzeichnis namens lib

mkdir lib

In das Verzeichnis lib werden nun alle benötigten JARs abgelegt. Anschließend begibt man sich wieder in Eclipse und aktualisiert das Projekt mit Rechtsklick -> Refresh
010
Nun sieht man das Verzeichnis lib innerhalb seines Projekts.
020
Danach öffnet man die Projekteinstellungen mit Rechtsklick -> Properties:
030
Innerhalb des Einstellungsdialog begibt man sich zu Java Build Path und dort zu Libraries
040
Nun wählt man Add JARs... und öffnet den Projektordner und innerhalb von diesem das Verzeichnis lib. Nun kann man die zuvor hinzugefügt JARs auswählen und bestätigen mit OK. Danach kann man den Einstellungsdialog wieder schließen und die JARs sind dem Classpath hinzugefügt.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Nexus 4 rooten unter Ubuntu

WARNUNG: Das rooten eines Android Telefons kann zum Garantieverlust oder irreparablen Schäden führen.

Das LG Nexus 4 lässt sich mit sehr geringem Aufwand unter Ubuntu rooten. Bevor es am Computer los geht muss man das Nexus 4 in den Entwicklermodus bringen und USB-Debugging aktivieren. Hierzu begibt man sich in die Einstellungen des Nexus 4s und scrollt bis ganz unten zum Menüpunkt Über das Telefon. Im Menü Über das Telefon scrollt man ein weiteres mal bis ganz nach unten zu Build Nummer. Nun muss man 7mal hintereinander schnell auf den Menüpunkt Build Nummer drücken. Dadurch wird das Nexus 4 in den Entwicklermodus gestellt.
004
Anschließend steht in den Einstellungen ein neuer Menüpunkt namens Entwickleroptionen zur Verfügung. In den Entwickleroptionen muss nun USB-Debugging aktiviert werden.
005
Jetzt sind alle Vorbereitungen am Nexus 4 abgeschlossen.
Damit das Programm zum rooten des Nexus 4s auf einem 64Bit-System ausgeführt werden kann, werden die Bibliotheken für 32Bit Programme benötigt. Die 32Bit Bibliotheken kann man einfach über apt-get installieren:

sudo apt-get install ia32-libs

Das Universal Nexus Linux Toolkit zum rooten des Nexus 4s läd man unter folgender Adresse herunter:http://forum.xda-developers.com/showthread.php?t=1999065.
Anschließend wechselt man in das Downloadverzeichnis und macht das Programm ausführbar.

sudo chmod a+x unltlauncher100.sh

Nun kann man das eingeschaltete Nexus 4 per USB an den Computer anschließen und das Universal Nexus Linux Toolkit starten mit:

sudo ./unltlauncher100.sh

Zu erst führt das Programm ein kleines Update durch und präsentiert nach dem Update folgendes Menü:
001
Hier wählt man die 1 für Nexus 4. Nun kann man zwischen dem automatischen und manuellen rooten wählen. Es empfiehlt sich die Prozedur automatisch durchzuführen.
002
Danach kann muss noch gewählt werden was man mit dem Nexus 4 machen will. Zum rooten wählt man die 3.
003
Der Rest läuft vollkommen automatisch. Nachdem das Nexus 4 gerootet wurde muss man es neustarten und hat fortan root-Zugriff auf dem Nexus 4.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.

Eigene LaTeX Klasse erstellen

Wenn man häufig LaTeX Dokumente erstellt, wird es irgendwann lästig immer wieder alle \usepackage{} Anweisungen zu kopieren. Hierfür bietet es sich an eine eigene LaTeX-Klasse zu erstellen.
Zu erst muss man eine neue Datei mit dem LaTeX-Editor seiner wahl erstellen. Diese neuerstellte Datei erhält aber nicht wie üblich die Endung *.tex sondern die Endung *.cls für class. In die ersten Zeilen der Klassendatei schreibt man folgendes:

1
2
3
4
\LoadClass[12pt,oneside,a4paper]{article}
 
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{my_own_class}

Hierbei ist darauf zu achten, dass man in der Zeile 1 die Elternklasse (article) läd sowie die Parameter (12pt,oneside,a4paper) an die Elternklasse übergibt.
In der Zeile 3 wird eingetragen welche LaTeX-Version für diese Klasse benötigt wird.
In der Zeile 4 wird noch der Name der Klasse angeben, dabei ist darauf zu achten dass der Name der Klasse sowie der Dateiname gleich sind, also my_own_class.cls als Dateiname und \ProvidesClass{my_own_class} in der Klassendatei.
Unterhalb von \ProvidesClass{my_own_class} können nun die \usepackage{} Anweisungen eingetragen werden, sowie die Definition weiterer Befehle mit \newcommand{} und alles andere was sich normalerweise über der \begin{document} Anweisung innerhalb der *.tex befindet.

5
6
7
8
9
10
\usepackage[left=2.5cm,right=2.5cm,top=1.5cm,bottom=2cm,includeheadfoot]{geometry}
 
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
 
\newcommand{\aufgabe}{\refstepcounter{aufgabe}{\noindent\large \bfseries Aufgabe~\arabic{aufgabe}}}

Die Klasse kann nun im Kopf der *.tex Datei oberhalb von \begin{document} aufgerufen werden über:

\documentclass{my_own_class}

In der Anweisung \documentclass{PATH} wird der absolute oder relative Pfad zur Klassendatei angegeben. Hierbei ist darauf zu achten dass man beim Name der Klasse am Ende das *.cls weglässt. Im obigen Beispiel befindet sich die Klassendatei my_own_class.cls selben Verzeichnis wie die *.tex Datei.

Wenn man nicht immer den Pfad zur Klassendatei angeben möchte kann man diese auch in das “Klassenverzeichnis” von LaTeX verschieben. Unter Linux lässt sich das Klassenverzeichnis leicht über den Befehl locate herausfinden, zuvor muss aber ein Suchdatenbank Update durchgeführt werden mit updatedb.

sudo updatedb
locate article.cls

In der obenstehenden Befehlsanweisung wird nach der Datei article.cls gesucht, diese Befindet sich im Klassenverzeichnis von LaTeX. Wenn man das Verzeichnis gefunden hat kann man seine eigenen Klassendateien in dieses Verzeichnis verschieben. Nachdem man die seine eigene Klasse in das Klassenverzeichnis verschoben hat, muss man noch das Programm texhash ausführen damit die Klasse beim kompilieren gefunden werden kann.

sudo texhash

Nun kann man die Klasse im *.tex Dokument nur mit dem Namen und ohne Pfadangabe über \documentclass{} aufrufen.

Creative Commons Lizenzvertrag
Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung-Nicht-kommerziell 3.0 Unported Lizenz.