Seite 1 von 1
optionale Option.../eigenes Paket
Verfasst: Mo 9. Jul 2012, 16:38
von Madridista
Guten Tag,
ich möchte mir ein eigenes Paket erstellen, damit ich in Zukunft einige Definitionen, nicht in jede Präambel neu reinschreiben bzw. erst einmal aus anderen Dokumenten wieder heraus suchen muss.
Jedoch scheitere ich schon bei meinem ersten Befehl...
Bisher sieht das ganze so aus:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tudsty}[2012/07/09 Paket zum Mitschreiben von Vorlesungen]
\RequirePackage{dsfont}
\newcommand\rR{\ensuremath{\mathds{R}}}
Dies werde ich auch noch mit den anderen üblichen Buchstaben wiederholen. Jedoch möchte ich zusätzlich die Möglichkeit haben, in einer geschweiften Klammer zusätzlich eine Zahl oder einen Buchstaben einzugeben, welcher dann hochgestellt erscheint.
Mein Versuch dazu ist bisher
\newcommand\rR[1]{\ensuremath{\mathds{R}^{{#1}}}}
Jedoch muss ich nun in jedem Fall die geschweiften Klammern schreiben, auch wenn ich nur das \mathds{R} haben möchte. Ist es möglich eine Option zu definieren, welche nicht unbedingt angegeben werden muss. Ich habe da zum Beispiel an das ifthen-Paket gedacht, muss aber zugeben, dass ich aus der Anleitung nicht ganz schlau werde
Vielen Dank schon mal
Verfasst: Mo 9. Jul 2012, 16:48
von bloodworks
Hallo ich würde dir ja empfehlen den ganzen LaTeX2e Kram sein zu lassen und gleich in latex 3 (das Paket xparse !) zu machen, aber hier eine L2e Lösung:
\documentclass{book}
\usepackage{dsfont}
\begin{document}
\newcommand{\test}[1][default]{test: #1}
\test \\
\test[was anderes]
\newcommand\rR[1][1]{\ifnum #1 = 1
%
\ensuremath{\mathds{R}}
\else
\ensuremath{\mathds{R}^{#1}}
%
\fi
}
\rR[3]
\rR
\end{document}
Mit xparse sieht das ganze noch viel cooler aus:
\documentclass{book}
\usepackage{xparse}
\usepackage{dsfont}
\NewDocumentCommand\xrR{o}{
\IfNoValueTF {#1}
{
\ensuremath{\mathds{R}}
}
{\ensuremath{\mathds{R}^{#1}}
}
}
\begin{document}
\xrR[3]
\xrR
\end{document}
Verfasst: Mo 9. Jul 2012, 16:58
von Madridista
Danke für den Hinweis, dann werde ich mir das mal anschauen, auch vielen Dank für die Lösung.
Abgesehen davon, wie sähe das denn mit xparse aus?
EDIT: Gibt es noch eine Möglichkeit, es so zu ändern, dass auch Buchstaben zusätzlich angegeben werden können? Also R^2 sowie R^n.
Verfasst: Mo 9. Jul 2012, 17:02
von bloodworks
Naja viel cooler halt (s.o.). Ich persönlich finde die Art und Weise wie l3 das alles macht sehr angenehm. Paketoptionen einbauen etc. ist echt super leicht und intuitiv. Nur das mit den white-spaces an das muss man sich erst mal gewöhnen.
Verfasst: Mo 9. Jul 2012, 17:15
von Madridista
Aha, das werde ich mir auf jeden Fall mal näher ansehen.
Das macht auch gleich das mit den Buchstaben möglich^^
Hoffentlich letze Frage in der Hinsicht, jetzt entsteht ein relativ großer Abstand vor und nach dem Buchstaben (deutlich größer als ein Leerzeichen), ist es irgendwie möglich, dass noch zu ändern?
Verfasst: Mo 9. Jul 2012, 17:30
von bloodworks
Hallo hier nochmal alle Möglichkeiten. wie du siehst ist das umsetzen deiner Wünsche mit l3 tatsächlich am einfachsten Möglich.
\documentclass{book}
\usepackage{xparse}
\usepackage{dsfont, xcolor}
\NewDocumentCommand\xrR{o}{%
\IfNoValueTF {#1}%
{%
\ensuremath{\mathds{R}}%
}
{\ensuremath{\mathds{R}^{#1}}%
}%
}%
\newcommand\rR[1][1]{\ifnum #1 = 1%
%
\ensuremath{\mathds{R}}%
\else%
\ifnum #1 > 1%
\ensuremath{\mathds{R}^{#1}}%
\else%
\ensuremath{\mathds{R}^{n}}%
%
\fi \fi%
%
}%
\def\myn{n}
\newcommand\erR[1][1]{%
\def\tempopt{#1}%
\ifx\tempopt\myn%
\ensuremath{\mathds{R}^{n}}%
\else%
\ifnum #1 = 1%
\ensuremath{\mathds{R}}%
\else%
\ensuremath{\mathds{R}^{#1}}%
%
\fi%
\fi%
}
\begin{document}
\xrR[3]
\xrR
\xrR[n]
\color{green}
\rR[3]
\rR
\rR[0]
\color{red}
\erR[3]
\erR
\erR[n]
\end{document}
Zu den Abständen: wie du sicher weißt gibt es in LaTeX2e whitespace der was bedeutet und welchen der nichts bedeutet. Das muss man gerade bei so was sauber kontrollieren. In diesem Fall mit %. Wenn du ein Latex3 Paket schreibst, dann ist das egal, weil dort jeder white space keine Bedeutung hat.
Verfasst: Mo 9. Jul 2012, 17:35
von Madridista
Nochmals vielen, dass hatte ich gerade nicht bedacht.
Ich werde mich bestimmt demnächst wieder hier melden, versuche gerade Makros für eine Titelseite zu basteln...
Verfasst: Mo 9. Jul 2012, 18:03
von Besserwisser
Madridista hat geschrieben:Ich werde mich bestimmt demnächst wieder hier melden, versuche gerade Makros für eine Titelseite zu basteln...
Siehe
http://www.komascript.de/titlepage