l3draw를 사용하여 \cplus 다시 만들기

l3draw를 사용하여 \cplus 다시 만들기

다음 MWE를 고려하십시오.

여기에 이미지 설명을 입력하세요

\documentclass{article}
\usepackage{amsmath}
\usepackage{l3draw,xparse}
\ExplSyntaxOn
%---------------------------------------------------------
\box_new:N \default_math_plus
\hbox_set:Nn \default_math_plus {$+$}

\box_new:N \cplus_box


\dim_new:N \l__default_math_plus_width
\dim_set:Nn \l__default_math_plus_width { \box_wd:N \default_math_plus}

\fp_new:N \l__expl_cplus_fp

\cs_new_protected:Nn \expl_cplus:
 {
  \draw_begin:
  \draw_linewidth:n { \l__expl_cplus_fp }
  \draw_cap_round:
  \draw_join_round:
  \draw_path_moveto:n { 0.5\l__default_math_plus_width , 0.0\l__default_math_plus_width }
  \draw_path_lineto:n { 0.5\l__default_math_plus_width , 1.0\l__default_math_plus_width }
  \draw_path_use_clear:n { stroke }
  \draw_path_moveto:n { 0.0\l__default_math_plus_width , 0.5\l__default_math_plus_width }
  \draw_path_lineto:n { 1.0\l__default_math_plus_width , 0.5\l__default_math_plus_width }
  \draw_path_use_clear:n { stroke }
  \draw_path_circle:nn { 0.5\l__default_math_plus_width , 0.5\l__default_math_plus_width } {0.25\l__default_math_plus_width}
  \draw_path_use_clear:n { stroke }
  \draw_end:
 }
\NewDocumentCommand{\explcplus}{}
 {
  \mathbin
   {
    \fp_set:Nn \l__expl_cplus_fp { 0.08ex }
    \hbox_set:Nn \cplus_box { $\mspace{1mu}$ \expl_cplus: $\mspace{1mu}$ }
    \box_move_down:nn  { \box_dp:N \default_math_plus }{ \box_use:N \cplus_box }
   }
 }
 

%---------------------------------------------------------
\ExplSyntaxOff

\begin{document}
$a+b\explcplus c_{+\explcplus}$

$a\explcplus b+c_{+\explcplus}$

\medskip

% test for larger size

{\LARGE$a\explcplus b+c_{+\explcplus}$}
\end{document}

나는 @egreg가 다음에 대한 답변에서 무엇을 했는지 재현하려고 노력하고 있습니다.https://tex.stackexchange.com/a/397806/10898 하지만 정확한 수학 공간과 깊이를 얻을 수 없는 것 같습니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까? 아니면 치수를 어떻게 정확하게 계산할 수 있습니까 +?

마지막 이미지의 스케일링은 꺼져 있으며 ex적절하게 스케일링되도록 정의되지 않은 것 같습니다.

관련 정보