文字付き循環小数点(上揃え)

文字付き循環小数点(上揃え)

ここに画像の説明を入力してください

写真は 100 語以上です。ドットを (自動的に) 正しく上部に揃えるにはどうすればよいでしょうか?

現在使用されているコードはここ:

\documentclass[12pt]{article}
%% packages
\usepackage{amsmath,multicol,graphics,enumerate}
\usepackage{graphicx}
\usepackage[margin=1cm]{geometry}

\makeatletter
\DeclareRobustCommand{\periodfl}[1]{\@periodflold#1\@nil\relax}
\def\@periodflold#1#2{%
  \ifx#2\relax
    \expandafter\@gobble
  \else
    \expandafter\@firstofone
  \fi
  {\@periodflold@i#1#2}%
}
\def\@periodflold@i#1#2{%
  \dot{#1}%
  \ifx#2\@nil
    \expandafter\@gobble
  \else
    \expandafter\@firstofone
  \fi
  {\@periodflold@ii#2}%
}
\def\@periodflold@ii#1#2{%
  \ifx#2\@nil
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {\dot{#1}}{#1\@periodflold@ii#2}%
}
\makeatother

\begin{document}
\pagestyle{empty}
\setlength{\parindent}{0pt}

Prove that $0.\periodfl{0x}=\frac{x}{99}$.

\end{document}

ありがとう!

答え1

\vphantom{0}次の 2 つのインスタンスに引数を追加するだけです\dot

\documentclass{article}

\makeatletter
\DeclareRobustCommand{\periodfl}[1]{\@periodflold#1\@nil\relax}
\def\@periodflold#1#2{%
  \ifx#2\relax
    \expandafter\@gobble
  \else
    \expandafter\@firstofone
  \fi
  {\@periodflold@i#1#2}%
}
\def\@periodflold@i#1#2{%
  \dot{\vphantom{0}#1}%
  \ifx#2\@nil
    \expandafter\@gobble
  \else
    \expandafter\@firstofone
  \fi
  {\@periodflold@ii#2}%
}
\def\@periodflold@ii#1#2{%
  \ifx#2\@nil
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {\dot{\vphantom{0}#1}}{#1\@periodflold@ii#2}%
}
\makeatother

\begin{document}

Prove that $0.\periodfl{0x}=\frac{x}{99}$.

Prove that $0.\periodfl{00x}=\frac{x}{999}$.

\end{document}

ここに画像の説明を入力してください

完全を期すために、このバージョンの修正は次のとおりですexpl3

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
%% Dots on the first and last digit
\NewDocumentCommand{\periodfl}{m}
 {
  \repdec_initial_final_dots:n { #1 }
 }

\seq_new:N \l__repdec_digits_seq
\tl_new:N \l__repdec_first_tl
\tl_new:N \l__repdec_last_tl

\cs_new_protected:Npn \repdec_initial_final_dots:n #1
 {
  \seq_set_split:Nnn \l__repdec_digits_seq {} { #1 }
  \seq_pop_left:NN \l__repdec_digits_seq \l__repdec_first_tl
  \seq_pop_right:NN \l__repdec_digits_seq \l__repdec_last_tl
  \quark_if_no_value:VF \l__repdec_first_tl { \dot{\vphantom{0}\l__repdec_first_tl} }
  \seq_use:Nn \l__repdec_digits_seq {}
  \quark_if_no_value:VF \l__repdec_last_tl { \dot{\vphantom{0}\l__repdec_last_tl} }
 }
\cs_generate_variant:Nn \quark_if_no_value:nF { V }
\ExplSyntaxOff

\begin{document}

Prove that $0.\periodfl{0x}=\frac{x}{99}$.

Prove that $0.\periodfl{00x}=\frac{x}{999}$.

\end{document}

関連情報