PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [XaTeX] Platzhalter?



MoonKid
09-11-2012, 14:07
Ich bin als Einsteiger, noch nicht so vertraut, mit allen Konzepten. Daher ist meine Frage hier sehr grundlegend gemeint.

Ich definiere (für meinen Studiengang) eine eigene Titelseite in der titlepage-Umgebung. Aufgrund der Formatierungen ist der Code dort recht wust und unübersichtlich. Diesen Code würde ich gerne (z.B. in eine eigenen Unterdatei) verbergen. Wie das geht weiß ich.
Nun möchte ich für zukünftige Dokumente einfach nur Dinge angeben wie "Titel", "Dozent", "Modulbezeichnung", "Autor", "Matrikelnummer", "Lizenz", etc.

Kann man sowas über eine Art Platzhalter regeln?

Es soll ähnlich laufen, wie das \maketitle. Ich gebe dort ja auch nur \title, \subject, \author usw an und sage dann \maketitle. Der "wirre" Code dahinter bleibt verborgen.

Welche Möglichkeiten habe ich hier?

Pseudo-Code:


\begin{document}
title = Mein Titel
author = Mr. X
betreuer = Prof. Y
modul = F1 Modulname blabla
datum = ...

% include mit titlepage-environment drin
my_titlepage.tex

\end{document}

cgnieder
09-11-2012, 14:52
Das scheint mir ein Fall für eine eigene Klasse zu sein. Man könnte z.B. eine Klasse auf article oder scrartcl aufbauen und einen eigenen Code für den Titel hier einfügen, der dann entsprechend mit \maketitle arbeitet. Im Beispiel unten habe ich weitestgehend die Originaldefinition beibehalten.

myclass.sty:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}[2012/11/09 v0.1 Custom Class My Name]
% Optionen an `article' weiterreichen und `article' laden:
\DeclareOption*{\PassOptionsToClass{\CurrentOption }{article}}
\ProcessOptions\relax
\LoadClassWithOptions{article}
\def\@title{}
\def\title#1{\gdef\@title{#1}}
\def\@author{}
\def\author#1{\gdef\@author{#1}}
\def\@betreuer{}
\def\betreuer#1{\gdef\@betreuer{#1}}
\def\@modul{}
\def\modul#1{\gdef\@modul{#1}}
\def\@datum{\today}
\def\datum#1{\gdef\@datum{#1}}

\if@titlepage
% code für Option `titlepage'
\renewcommand*\maketitle{%
\begin{titlepage}%
\null\vfil
\vskip 60\p@
\begin{center}%
{\LARGE \@title \par}%
\vskip 3em%
{\large
\lineskip .75em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1.5em%
{\large \@datum \par}% % Set date in \large size.
\vskip 1.5em%
\begin{tabular}[t]{ll}
Modul: & \@modul \\
Betreuer: & \@betreuer
\end{tabular}
\end{center}\par
\vfil\null
\end{titlepage}%
\setcounter{footnote}{0}%
\global\let\maketitle\relax
\global\let\@author\@empty
\global\let\@datum\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\datum\relax
}
\fi
% code wenn keine `titlepage'
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@datum}%
\vskip 1.5em%
\begin{tabular}[t]{ll}
Modul: & \@modul \\
Betreuer: & \@betreuer
\end{tabular}
\end{center}%
\par
\vskip 1.5em}
\endinput

Diese würde man dann genau wie article verwenden:


\documentclass{myclass}

\title{Mein Titel}
\author{Mr. X}
\betreuer{Prof. Y}
\modul{F1 Modulname blabla}
\datum{9. November 2012}

\usepackage{lipsum}% für Dummy-Text

\begin{document}
\maketitle

\lipsum
\end{document}

Grüße

rstuby
09-11-2012, 14:59
Ich hatte mir so was für die Autoreninfo von Liedern gebaut: http://www.mrunix.de/forums/showthread.php?t=73562
Also je zwei Variablen definiert: eine, die den Inhalt enthält und nur intern benutzt wird, und die andere, die den Inhalt der ersten ändert, wenn man sie innerhalb des Dokumentes damit aufruft.

MoonKid
09-11-2012, 18:29
\NeedsTeXFormat{LaTeX2e}


Ui, das is aber heavy. Ich werde es mir im Detail anschauen. Vielen Dank schonmal dafür!

Aber ich sehe hier LaTeX2e! Geht das nicht auch mit XaTeX ?
Kann ich da bei NeedsTeXFormat einfach XaTeX einsetzen?

MoonKid
09-11-2012, 18:35
Ich hatte mir so was für die Autoreninfo von Liedern gebaut: http://www.mrunix.de/forums/showthread.php?t=73562

Das sieht mir fast einfacher aus. Was spricht für/gegen diese und die andere Klassenlösung?

rais
09-11-2012, 18:41
Moin moin,


Geht das nicht auch mit XaTeX ?

was genau ist `XaTeX'?
Mit XeLaTeX sollte das auch kein Problem sein.

@cgnieder: myclass.sty? Wirklich nicht .cls?

MfG

cgnieder
09-11-2012, 18:46
@cgnieder: myclass.sty? Wirklich nicht .cls?

Sorry, my bad! Es muss selbstverständlich »myclass.cls« heißen!

Gruß

MoonKid
09-11-2012, 19:06
was genau ist `XaTeX'?
Mit XeLaTeX sollte das auch kein Problem sein.

Ach ja, mein ick ja! ;)

cgnieder
09-11-2012, 19:46
Ui, das is aber heavy. Ich werde es mir im Detail anschauen. Vielen Dank schonmal dafür!

Aber ich sehe hier LaTeX2e! Geht das nicht auch mit XaTeX ?
Kann ich da bei NeedsTeXFormat einfach XaTeX einsetzen?

Nachdem jetzt klar ist, dass mit XaTeX XeLaTeX gemeint ist: das spielt für

\NeedsTeXFormat{LaTeX2e}
keine Rolle.

Grüße