매크로에 '표준 부동 정렬' 저장

매크로에 '표준 부동 정렬' 저장

부동 소수점 환경을 둘러싸기 위해 몇 가지 매크로를 작성하는 동안 부동 소수점 지정자를 저장할 때 매크로 확장이 실패하는 것을 우연히 발견했습니다(적어도 제 생각에는 그렇습니다).

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

로 컴파일하면 xetex다음이 제공됩니다.

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

3에서 제안한 전략을 적용해 보았습니다.이 답변, 하려고tex확장 이해. 이 질문을 게시한 것으로 판단하면 실패했습니다. 부동 소수점 지정자를 매크로에 저장하고 사용하려면 어떻게 해야 합니까?

답변1

절대로 일상적으로 사용해서는 안 됩니다 !. !수단무시하다부동 소수점 배치에 대한 (사용자 지정) 제약 조건. 따라서 제약사항을 항상 무시하는 것보다 원하는 제약사항을 설정하는 것이 좋습니다.

기본 그림 배치는 다음과 같습니다.\fps@figure

따라서 기본값을 설정하려면 b다음이 필요합니다.

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

Figure 환경을 재정의할 필요가 없습니다.

관련 정보