»\hangindent« 项目中有更多空间

»\hangindent« 项目中有更多空间

有一些额外的附件列表,它们是使用\hangindent我从某处复制的定义实现的(咳咳,没有理解它)。

我只是需要在数字后面留出更多空间(参见下面的 MWE,“1.2”,“1.2.3.4”)。我想对齐文本的开头。不幸的是,我无法重新定义列表生成的整个机制。

\documentclass{article}

\makeatletter % unless in a .cls or .sty file
\newcommand*{\hangfrom}[1]{%
  \setbox\@tempboxa\hbox{{#1}}%
  \hangindent \wd\@tempboxa
  \noindent\box\@tempboxa}
\makeatother  % unless in a .cls or .sty file


\begin{document}

\hangfrom{1.2.3.4} some text

\hangfrom{1.2} some more text


\end{document}

答案1

您可以向正在创建的框中添加额外的空间,也可以在打印框后删除所有空间:

\documentclass{article}

\makeatletter % unless in a .cls or .sty file
\newcommand*{\hangfrom}[1]{%
  \setbox\@tempboxa\hbox{{#1\hspace{2em}}}%
  \hangindent \wd\@tempboxa
  \noindent\box\@tempboxa\ignorespaces}
\makeatother  % unless in a .cls or .sty file

\usepackage{blindtext}

\begin{document}

\hangfrom{1.2.3.4} some text

\hangfrom{1.2} \blindtext

\end{document}

在此处输入图片描述

如果缩进应该对所有都相同项目你可以使用\makebox

\documentclass{article}

\makeatletter % unless in a .cls or .sty file
\newcommand*{\hangfrom}[1]{%
  \setbox\@tempboxa\hbox{\makebox[4em][l]{#1\hfill}}%
  \hangindent \wd\@tempboxa
  \noindent\box\@tempboxa\ignorespaces}
\makeatother  % unless in a .cls or .sty file

\usepackage{blindtext}

\begin{document}

\hangfrom{1.2.3.4} some text

\hangfrom{1.2} \blindtext


\end{document}

在此处输入图片描述

然而在我看来,最好使用真实的列表,例如enumitem。应该很容易\begin{…}在列表之前和\end{…}之后添加,并\hangfrom{…}用替换\item[…]

相关内容