
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 xetex
erhalte 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, versuchentex
Erweiterung 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, b
müssen Sie nur
\makeatletter
\renewcommand\fps@figure{b}
\makeatother
Eine Neudefinition der Figurenumgebung ist nicht erforderlich.