\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{empheq}
\makeatletter
\newcommand*{\pmzerodot}{%
\nfss@text{%
\sbox0{$\vcenter{}$}% math axis
\sbox2{0}%
\sbox4{0\/}%
\ooalign{%
0\cr
\hidewidth
\kern\dimexpr\wd4-\wd2\relax % compensate for slanted fonts
\raise\dimexpr(\ht2-\dp2)/2-\ht0\relax\hbox{%
\if b\expandafter\@car\f@series\@nil\relax
\mathversion{bold}%
\fi
$\cdot\m@th$%
}%
\hidewidth
\cr
\vphantom{0}% correct depth of final symbol
}%
}%
}
\makeatother
\begin{document}
\begin{empheq}{align}
0 + 1 = 1
\end{empheq}
\end{document}
\pmzerodot
方程式に番号を追加するにはどうすればいいですか?
答え1
次の例では、 を定義しています\dotarabic
。これは、 と同様に、\arabic
によってゼロが交換されたカウンタのアラビア語形式を出力します\pmzerodot
。 は、の代わりに\theequation
を使用するように再定義されています (または、すべてのカウンタ出力でドット付きのゼロを使用する必要がある場合は、 を再定義できます)。\dotarabic
\arabic
\arabic
さらに、は/システムの影響を受ける\pmzerodot
ため、堅牢になります。脆弱なコマンドは、内部の定義中に破損します。\the<counter>
\label
\ref
\@currentlabel
完全な例:
\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{empheq}
\makeatletter
\DeclareRobustCommand*{\pmzerodot}{%
\nfss@text{%
\sbox0{$\vcenter{}$}% math axis
\sbox2{0}%
\sbox4{0\/}%
\ooalign{%
0\cr
\hidewidth
\kern\dimexpr\wd4-\wd2\relax % compensate for slanted fonts
\raise\dimexpr(\ht2-\dp2)/2-\ht0\relax\hbox{%
\if b\expandafter\@car\f@series\@nil\relax
\mathversion{bold}%
\fi
$\cdot\m@th$%
}%
\hidewidth
\cr
\vphantom{0}% correct depth of final symbol
}%
}%
}
\newcommand*{\dotarabic}[1]{%
\expandafter\@dotarabic\csname c@#1\endcsname
}
\newcommand*{\@dotarabic}[1]{%
\expandafter\dotarabic@scan\number #1\relax
}
\newcommand*{\dotarabic@scan}[1]{%
\ifx\relax#1%
\expandafter\@gobble
\else
\expandafter\@firstofone
\fi
{%
\ifnum#1=0 %
\ifincsname
0%
\else
\pmzerodot
\fi
\else
#1%
\fi
\dotarabic@scan
}%
}
\makeatother
\renewcommand*{\theequation}{\dotarabic{equation}}
\begin{document}
\addtocounter{equation}{9}
\begin{empheq}{align}
\label{eq:test}
\pmzerodot + 1 = 1
\end{empheq}
\end{document}