如何忽略此虚线的缩进

如何忽略此虚线的缩进
\documentclass{article}

\usepackage{amsmath,enumerate}

\usepackage{kantlipsum}
\makeatletter
\newlength\dottedlinefillheight
\setlength\dottedlinefillheight{.3in}

\def\fillwithdottedlines{%
  \begingroup
  \ifhmode
    \par
  \fi
  \hrule height \z@
  \nobreak
  \setbox0=\hbox to \hsize{\hskip \@totalleftmargin
          \vrule height \dottedlinefillheight depth \z@ width \z@
          \dotfill}%
  \cleaders \copy0 \vfill \hbox{}%
  \endgroup
}
\makeatother


\begin{document}

\begin{enumerate}[Q1.]
    \item test
        \begin{enumerate}[(a)]
            \item test test
            \fillwithdottedlines
            \item test test
            \fillwithdottedlines
        \end{enumerate}
    \item
        \begin{enumerate}[(a)]
            \item test
                \begin{enumerate}[(i)]
                    \item test
                    \fillwithdottedlines
                    \item test
                    \fillwithdottedlines
                    \item test
                \end{enumerate}
        \end{enumerate}
\end{enumerate}

\end{document}

\fillwithdottedlines是从该论坛的另一篇帖子复制而来的。

我怎样才能忽略缩进,以便行始终是文本宽度?

我认为这与之有关\@totalleftmargin,并且我尝试使用它\leftmargin,但结果似乎不太好。

使用结果\leftmargin如下:

在此处输入图片描述

1 – 它们没有对齐。2 – 仍然有一些缩进。

还有其他建议吗?

答案1

您明确添加了空格,只需删除(或像这里一样将其注释掉)

在此处输入图片描述

\documentclass{article}

\usepackage{amsmath,enumerate}

\usepackage{kantlipsum}
\makeatletter
\newlength\dottedlinefillheight
\setlength\dottedlinefillheight{.3in}

\def\fillwithdottedlines{%
  \begingroup
  \ifhmode
    \par
  \fi
  \hrule height \z@
  \nobreak
  \setbox0=\hbox to \hsize{%\hskip \@totalleftmargin
          \vrule height \dottedlinefillheight depth \z@ width \z@
          \dotfill}%
  \cleaders \copy0 \vfill \hbox{}%
  \endgroup
}
\makeatother


\begin{document}

\begin{enumerate}[Q1.]
    \item test
        \begin{enumerate}[(a)]
            \item test test
            \fillwithdottedlines
            \item test test
            \fillwithdottedlines
        \end{enumerate}
    \item
        \begin{enumerate}[(a)]
            \item test
                \begin{enumerate}[(i)]
                    \item test
                    \fillwithdottedlines
                    \item test
                    \fillwithdottedlines
                    \item test
                \end{enumerate}
        \end{enumerate}
\end{enumerate}

\end{document}

答案2

使用enumitem包代替enumerate,并使用wide选项进行第二级和第三级枚举:

\documentclass{article}

\usepackage{amsmath}
\usepackage[shortlabels]{enumitem}
\usepackage{kantlipsum}
\makeatletter
\newlength\dottedlinefillheight
\setlength\dottedlinefillheight{.3in}

\def\fillwithdottedlines{%
  \begingroup
  \ifhmode
    \par
  \fi
  \hrule height \z@
  \nobreak
  \setbox0=\hbox to \hsize{\hskip \@totalleftmargin
          \vrule height \dottedlinefillheight depth \z@ width \z@
          \dotfill}%
  \cleaders \copy0 \vfill \hbox{}%
  \endgroup
}
\makeatother


\begin{document}

\begin{enumerate}[Q1.]
    \item test
        \begin{enumerate}[(a)]
            \item test test
            \fillwithdottedlines
            \item test test
            \fillwithdottedlines
        \end{enumerate}
    \item
        \begin{enumerate}[(a)]
            \item test
                \begin{enumerate}[(i),wide = 0pt]
                    \item test
                    \fillwithdottedlines
                    \item test
                    \fillwithdottedlines
                    \item test
                \end{enumerate}
        \end{enumerate}
\end{enumerate}

\end{document} 

在此处输入图片描述

要使虚线具有完整文本宽度,请使用以下代码:

\begin{enumerate}[Q1., wide = 0pt]
    \item test
        \begin{enumerate}[(a), wide]
            \item test test
            \fillwithdottedlines
            \item test test
            \fillwithdottedlines
        \end{enumerate}
    \item
        \begin{enumerate}[(a)]
            \item test
                \begin{enumerate}[(i),wide, leftmargin =\dimexpr-\leftmargini + \labelsep-\fontdimen2\font]
                    \item test
                    \fillwithdottedlines
                    \item test
                    \fillwithdottedlines
                    \item test
                \end{enumerate}
        \end{enumerate}
\end{enumerate}

在此处输入图片描述

相关内容