Ich habe einen neuen Befehl erstellt mit 4 Argumenten. Der Befehlt klappt auch super. Öffne in Overleaf
\newcommand{\insImage}[4] { \begin{figure}[hbt] \centering \includegraphics[width=#4\textwidth]{#1} \caption{#2} \label{fig:#3} \end{figure} } Nun möchte ich aber bei #4 eine Defaultwert setzen. z.B.: .5 . Öffne in Overleaf
\insImage{arg1}{arg2}{arg3}{.5} So dass ich nur, wenn ich einen anderen Wert brauche, diesen ersetzten kann. Ist das möglich? gefragt 28 Nov '17, 12:28 Mike_Rohsoft gast3 |
Öffne in Overleaf
\documentclass{article} \usepackage{graphicx} \usepackage{xparse} \NewDocumentCommand\insImage{mmmO{.5}}{% \begin{figure}[hbt] \centering \includegraphics[width=#4\textwidth]{#1} \caption{#2} \label{fig:#3} \end{figure}% } \begin{document} \insImage{example-image-a}{Example Image A}{ex-a} \insImage{example-image-b}{Example Image B}{ex-b}[.2] \end{document} beantwortet 28 Nov '17, 21:25 Henri Perfekt. Das ist genau das was ich gesucht habe. Werde nun mal ein wenig mit xparse "herumspielen" Dankeschoen Henri
(29 Nov '17, 13:12)
Mike_Rohsoft
|
Da Du nur ein optionales Argument benötigst, kannst Du auch einfach die Reihenfolge der Argumente ändern. Dabei würde ich dann als Voreinstellung des optionalen Arguments auch nicht Öffne in Overleaf
\documentclass{article} \usepackage{graphicx} \newcommand\insImage[4][width=.5\textwidth]{% \begin{figure}[hbt] \centering \includegraphics[#1]{#2} \caption{#3} \label{fig:#4} \end{figure}% } \begin{document} \insImage{example-image-a}{Example Image A}{ex-a} \insImage[width=5cm]{example-image-b}{Example Image B}{ex-b} \insImage[height=1cm]{example-image}{Example Image C}{ex-b} \end{document} |
Bitte wirf uns nicht nur einen Codeschnipsel wie dem Hund einen Knochen vor. Gibt immer ein vollständiges Minimalbeispiel an! Ohne das, kann ich nur darauf hinweisen, dass optionale Argumente per Konvention in eckige statt geschweifte Klammern gesetzt werden und dass
\newcommand
nur für das erste Argument die Möglichkeit eines optionalen Arguments mit Defaultwert bietet.xparse
dagegen bietet ein optionales Argument mit optionalem Defaultwert an beliebiger Stelle.Siehe auch »LaTeX / TikZ: Eigene Makros / Befehle mit mehr als zwei optionalen / zusätzlichen Parametern Angaben« und »Ist es möglich eigene Befehle mit mehr als einem optionalen Argument zu definieren?«