Wie kann ich feststellen, ob \centering aktiv ist?

Wie kann ich feststellen, ob \centering aktiv ist?

Ich muss feststellen, ob der Benutzer vor einem Befehl ein \centering eingegeben hat. Derzeit erkenne ich dies mit dem folgenden Code: Gibt es einen Sonderfall, den ich übersehe? Gibt es einen besseren Weg und kann jemand helfen, eine skip_compare:nNnTF l3-Funktion zu erstellen, um den Code zu verbessern?

\documentclass{article}
\begin{document}
\centering
%\raggedright
%\raggedleft
\ExplSyntaxOn
\bool_new:N \centering_bool
\skip_if_eq:nnTF{\rightskip+\rightskip}{0pt plus 2.0fil}{\bool_set_true:N\centering_bool}{\bool_set_false:N\centering_bool}

\bool_if:NTF\centering_bool{TRUE}{FALSE}

\ExplSyntaxOff

\end{document}

Antwort1

Ich würde den Booleschen Wert in \centering setzen:

\documentclass{article}

\ExplSyntaxOn
\bool_new:N \l_yannis_centering_bool
\AddToHook{cmd/centering/before}{\bool_set_true:N\l_yannis_centering_bool}
\ExplSyntaxOff

\begin{document}

\ExplSyntaxOn

\bool_if:NTF \l_yannis_centering_bool{centering}{no~centering}\par

{\centering \bool_if:NTF 
\l_yannis_centering_bool{centering}{nocentering}\par} 

\ExplSyntaxOff
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen