Seite 1 von 1

Fehler im Befehl?

Verfasst: So 28. Feb 2016, 11:10
von Fehler462
Minimalbeispiel
\documentclass[a4paper,11pt]{article} 

\usepackage{color}

\newcommand*{\A}[2]{\textsf {#1} \textcolor{red}{#2}}

\begin{document}

\A{Hier sollte sowohl die Schrift als auch die Farbe anders sein}

\end{document}
Habe ich die Argumente im Befehl nicht richtig gesetzt oder wo ist sonst der Fehler? Einzeln Funktionieren die Befehle aber ich möchte Sie in einem Befehl zusammenziehen

Verfasst: So 28. Feb 2016, 11:36
von Johannes_B
Du definierst einen Befehl mit zwei Argumenten, das erste wird serifenlos gesetzt, das zweite farbig.
Du suchst wahrscheinlich
\documentclass[a4paper,11pt]{article}

\usepackage{color}

\newcommand*{\A}[2]{\textsf {#1} \textcolor{red}{#2}}
\newcommand*{\B}[1]{\textsf{\textcolor{red}{#1}}}

\begin{document}

\A{Hier sollte sowohl die Schrift als auch die Farbe anders
sein}{Wombat}\par
\B{Hier sollte sowohl die Schrift als auch die Farbe anders sein}

\end{document}

Verfasst: So 28. Feb 2016, 11:55
von AIaufDroge
Die Argumente gibt nicht an wie viele Befehle ich verwende sondern die Anzahl an {} die nach \A folgen und in jeder weiteren {} werden die vorherigen Befehle ebenfalls berücksichtigt.

Das heisst in \A{1} wird Argument 1

Befehl 1 gilt für erste {} und Befehl 2 gilt für {}

Also mache ich

\A{}{}

Und in der ersten Klammer wird das erste Argument angewendet in der zweiten Das erste und das zweite und so weiter.

Richtig?

Verfasst: So 28. Feb 2016, 13:46
von iTob
Die Zahl gibt einfach an, wie viele Argumente dein Befehl haben soll (max. 9) und in der Definition des Befehl kannst du dann mit #1 bis #9 mit diesen Argumenten veranstalten was du willst. Ob jetzt in deiner Definition zwei oder zwanzig Befehle vorkommen spielt keine Rolle. Außerdem kannst du in der Definition die Argumente auch in beliebiger Reihenfolge benutzen.

Stell dir einfach vor, wenn du \A{Argument eins}{mein zweites Argument} eingibst, tut LaTeX so, als ob du
\textsf {Argument eins} \textcolor{red}{mein zweites Argument}
eingeben hättest.