看起来内部{varwidth}
悬挂缩进应用于段落的右侧,而不是左侧:
\documentclass{article}
\usepackage{varwidth}
\usepackage{lipsum}
\begin{document}
\noindent
\begin{minipage}{\linewidth}
\setlength{\hangindent}{15pt}
\lipsum[1]
\end{minipage}
\noindent
\begin{varwidth}{\linewidth}
\setlength{\hangindent}{15pt}
\lipsum[1]
\end{varwidth}
\end{document}
有什么解决办法吗?
答案1
varwidth
建立一个\vbox
然后将其拆除以测量最宽的线,以便稍后重新设置它。测量线条时,悬挂压痕的信息会丢失。
如果我说
\setbox0=\vbox{
\hangindent=15pt
\lipsum[1]
}{\showboxdepth=1 \showboxbreadth=1000 \showbox0 }
我进入日志
> \box0=
\vbox(138.94444+1.94444)x345.0
.\hbox(6.94444+1.94444)x345.0, glue set 0.85849 []
.\penalty 150
.\glue(\baselineskip) 3.11111
.\hbox(6.94444+1.94444)x330.0, glue set - 0.22638, shifted 15.0 []
.\glue(\baselineskip) 3.11111
.\hbox(6.94444+1.94444)x330.0, glue set 1.06665, shifted 15.0 []
.\glue(\baselineskip) 3.11111
.\hbox(6.94444+1.94444)x330.0, glue set 0.26152, shifted 15.0 []
.\penalty 100
.\glue(\baselineskip) 3.11111
.\hbox(6.94444+1.94444)x330.0, glue set - 0.24269, shifted 15.0 []
.\glue(\baselineskip) 3.11111
.\hbox(6.94444+1.94444)x330.0, glue set 0.34998, shifted 15.0 []
.\glue(\baselineskip) 3.11111
[...similar lines omitted...]
因此,您会看到悬挂式压痕是通过移动盒子而不是在其左侧添加胶水获得的。当您拥有这样的盒子并应用\lastbox
它时(这是varwidth
在测量阶段所做的),盒子移动的信息就会丢失,并且无法以任何方式恢复。
您可以使用 模拟悬挂缩进\leftskip
。但是,我不确定您为什么varwidth
在这种情况下使用。
\documentclass{article}
\usepackage{varwidth}
\usepackage{lipsum}
\begin{document}
\noindent
\begin{minipage}{\linewidth}
\setlength{\hangindent}{15pt}
\lipsum[1]
\end{minipage}
\medskip % to make barbara happier
\noindent
\begin{varwidth}{\linewidth}
\setlength{\leftskip}{15pt}
\hspace*{-15pt}\lipsum[1]
\end{varwidth}
\end{document}