有一些额外的附件列表,它们是使用\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[…]
。