![\centering が有効になっていることをどのように検出できますか?](https://rvso.com/image/461882/%5Ccentering%20%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E6%A4%9C%E5%87%BA%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
ユーザーがコマンドの前に \centering を入力したかどうかを検出する必要があります。現在、次のコードで検出しています。見逃しているエッジ ケースはありますか? もっと良い方法はありますか? また、コードを改善するための skip_compare:nNnTF l3 関数の作成を手伝ってくれる人はいますか?
\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}
答え1
\centering でブール値を設定します:
\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}