optionale Option.../eigenes Paket

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Madridista
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 59
Registriert: Mo 22. Aug 2011, 14:50

optionale Option.../eigenes Paket

Beitrag 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
Madridista till I die!

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag 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}
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Madridista
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 59
Registriert: Mo 22. Aug 2011, 14:50

Beitrag 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.
Madridista till I die!

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag 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.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Madridista
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 59
Registriert: Mo 22. Aug 2011, 14:50

Beitrag 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?
Madridista till I die!

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag 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.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Madridista
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 59
Registriert: Mo 22. Aug 2011, 14:50

Beitrag 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...
Madridista till I die!

Besserwisser

Beitrag 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

Antworten