对齐数学模式下的点填充

对齐数学模式下的点填充

我希望能够在数学 \begin{align*} 模式下制作 \dotfill

这是我的代码

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\begin{align*}
& M=E-e \sin E \makebox[5cm]{\dotfill} \tag{1}\\
& A=B+C
\end{align*}

\end{document}

但这不管用。我希望点像旧版印刷一样移动到标签 (1)。我还希望点不会移动方程式。我还希望点自动填充到标签之前的空间。感谢您的帮助

更新 29/10/2022

我现在有一个宏,可以只设置点序列的长度。但我想以自动化的方式完成它。

\newcommand{\jdot}[1]{ \rlap{\makebox[#1]{\dotfill} }}

现在我的 LateX 代码变成了

\documentclass{article}
\usepackage{amsmath}
\newcommand{\jdot}[1]{ \rlap{\makebox[#1]{\dotfill} }}
\begin{document}

\begin{align*}
 M&=E-e \sin E \jdot{4.4cm} \tag{1}\\
 A&=B+C
\end{align*}

\end{document}

由于 rlap,点序列不会移动方程式,但我仍然需要手动定义序列的长度。挑战是以自动化的方式找到这个长度。

答案1

我从中学到了一个解决方案CTeX-org 论坛经过少许修改,代码如下:

\documentclass{article}
\usepackage{amsmath}
\usepackage{zref-savepos}

\makeatletter
\ExplSyntaxOn

\zref@require@unique

\NewDocumentCommand { \dotstag } { O{} m }
  {
    \mode_if_math:TF
      { \@@_math_cdotfill:n { (#2) } }
      { \__examzh_cdotfill: (#2) }
    \mode_if_math:F
      {
        \par \noindent \ignorespaces
      }
  }
% 仿照 latex.ltx, line 651 的 \dotfill
\cs_new:Npn \__examzh_cdotfill:
  {
    \mode_leave_vertical:
    \cleaders \hb@xt@ .44em {\hss $\cdot$ \hss} \hfill
    \kern\z@
  }

\cs_new_protected:Npn \@@_math_cdotfill:n #1
  {
    \stepcounter { zref@unique }
    \hbox_overlap_right:n
      {
        \zsaveposx { \thezref@unique L }
        \zref@ifrefundefined { \thezref@unique R }
          { }
          {
            \cleaders
              \hbox_to_wd:nn { .44em } { \hss $\cdot$ \hss }
              \skip_horizontal:n
                {
                    \zposx { \thezref@unique R } sp
                  - \zposx { \thezref@unique L } sp
                }
          }
      }
    \tag * { \zsaveposx { \thezref@unique R } #1 }
  }

\ExplSyntaxOff
\makeatother

\begin{document}

Test with \verb|\dotstag{}|:
\begin{align*}
    M & = E - e \sin E \dotstag{1} \\
    A & = B + C \dotstag{2}
\end{align*}

\end{document}

注意,你需要编译两次才能得到想要的结果。顺便说一下,这个\dotstag命令也可以在文本模式下使用!

在此处输入图片描述

相关内容