Speichern meiner „Standard-Float-Ausrichtung“ in einem Makro

Speichern meiner „Standard-Float-Ausrichtung“ in einem Makro

Beim Schreiben einiger Makros zum Umschließen von Float-Umgebungen bin ich beim Speichern von Float-Spezifizierern auf einen Fehler bei der Makroerweiterung gestoßen (zumindest glaube ich das).

main.tex:

\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage{myfig}

\begin{document}
\section{Dummy section}

%\begin{myfig}[b!]
\begin{myfig}
  Yadda yadda yadda
\end{myfig}

\end{document}

myfig.sty:

\ProvidesPackage{myfig}
\makeatletter
\newcommand{\@std@float@align}{p!}
%\newenvironment{myfig}[1][t!]{
\newenvironment{myfig}[1][\@std@float@align]{
  \begin{figure}[#1]
}{
  \end{figure}
}
\makeatother

Beim Kompilieren mit xetexerhalte ich:

./main.tex:10: LaTeX Error: Unknown float option `\'.

Ich habe versucht, es mit der in 3. von vorgeschlagenen Strategie zum Laufen zu bringendiese Antwort, versuchentexErweiterung verstehen. Dem Posten dieser Frage nach zu urteilen, habe ich versagt. Wie kann ich meinen Float-Spezifizierer in einem Makro speichern und verwenden?

Antwort1

Sie sollten niemals !routinemäßig verwenden. !Mittelignorierendie (vom Benutzer angegebenen) Einschränkungen bei der Float-Platzierung. Es ist also besser, die gewünschten Einschränkungen festzulegen, als sie immer zu ignorieren.

Die Standardabbildungsplatzierung ist\fps@figure

Um die Standardeinstellung festzulegen, bmüssen Sie nur

\makeatletter
\renewcommand\fps@figure{b}
\makeatother

Eine Neudefinition der Figurenumgebung ist nicht erforderlich.

verwandte Informationen