我希望定义挂在被定义的符号(在本例中是东西)的右侧$\chi...$
。这是我写的:
\documentclass{amsart}
\begin{document}
{%
\leftskip=\parindent\rightskip=\parindent%
\parindent=0pt%
\setbox0=\hbox{$\chi^*(H, w) =$ }%
\hangindent=\wd0\hangafter1%
\advance\hangindent by1pt%
$\chi^*(H, w) =$ minimum of~$\lambda_1 + \cdots + \lambda_k$,
where~$\lambda_1$, \dots,~$\lambda_k \geq 0$ and there are
independent sets~$I_1$, \dots,~$I_k$ such
that~$\lambda_1 \chi_{I_1} + \cdots + \lambda_k \chi_{I_k} = w$.
}
\end{document}
如果没有advance\hangindent by1pt
上述内容,第二行的起始位置就会比应在的位置稍左一些。我觉得造成这种情况的原因是单词之间的空格中存在拉伸粘连,但我已经尝试过阻止这种情况,但无济于事。有什么想法吗?
答案1
问题在于,公式中的空格会因为对齐而拉伸或收缩,而在框中测量悬挂缩进时,这些空格是固定的。
您需要“冻结”这些空间,我建议为此类事物定义一个环境。
\documentclass{amsart}
\usepackage{lipsum}
\newlength{\explainformulawidth}
\newenvironment{explainformula}[1]
{%
\par\addvspace{\topsep}
\leftskip=\parindent
\rightskip=\parindent
\parindent=0pt
\settowidth{\explainformulawidth}{$#1={}$}%
\hangindent=\explainformulawidth
\hangafter=1
${#1={}}$\ignorespaces
}
{\par\addvspace{\topsep}}
\begin{document}
\lipsum[1][1-4]
\begin{explainformula}{\chi^*(H, w)}
minimum of~$\lambda_1 + \cdots + \lambda_k$,
where~$\lambda_1$, \dots,~$\lambda_k \geq 0$ and there are
independent sets~$I_1$, \dots,~$I_k$ such
that~$\lambda_1 \chi_{I_1} + \cdots + \lambda_k \chi_{I_k} = w$.
\end{explainformula}
\lipsum[2][1-4]
\end{document}
注意,排版时公式是用括号输入的,等号后的空格由 提供{}
。