将文本置于整个数学表达式之下

将文本置于整个数学表达式之下

我想将文本放在整个多变量表达式下,就像使用\underbrace,但不使用括号一样。我希望它具体描述表达式中的第一个变量,但文本要跨越整个表达式。我搜索了网络,发现都是关于将文本放在单个符号或命令下。例如,\underset\smashoperator\limits似乎无法与多个命令或变量一起使用,即使我在命令行周围使用括号。

我用这个得到了我想要的东西:

    \begin{align*}
      N_{e}(r)\, =\, \sum_{u, v, w}\; &n_{e}\,(\overrightharp{\text{r}}\, -\,  u\overrightharp{\text{a}}\, -\, v\overrightharp{\text{b}}\, -\,  w\overrightharp{\text{c}}) \\[-.4cm]
       & \lcurvearrownw \text{\footnotesize{electron density per}}\\[-.2cm]
       &\; \; \; \; \; \; \; \text{\footnotesize{primitive unit cell.}}
    \end{align*}

但我想知道是否有一种不那么坑爹的方法。我希望我的客户在我完成后能够方便地编辑他们的文档。换句话说,我希望他们知道这里发生了什么。

答案1

您可以使用\parbox来编写文本;使用\mathrclap(来自mathtools包),\raisebox您可以将放置\parbox在所需的位置;这是一个使用定义的命令的简单示例,该命令\Desc带有两个强制参数(框宽度和文本)和一个控制垂直移动的可选参数:

\documentclass{article}
\usepackage{mathtools,MnSymbol,harpoon}

\newcommand\Harp[1]{%
  \overrightharp{\textrm{#1}}}
\newcommand\Desc[3][-2.5ex]{%
  \mathrlap{\raisebox{#1}{$\lcurvearrownw$ \parbox[t]{#2}{\footnotesize #3}}}}

\begin{document}

\[
N_{e}(r) = \sum_{\mathclap{u, v, w}}\, n\Desc{3cm}{electron density per \\ primitive unit cell.}_{e}(\Harp{r} - u\Harp{a} - v\Harp{b} - w\Harp{c}) 
\]

\end{document}

在此处输入图片描述

由于您正在使用该命令,\lcurvearrownw我假定您正在加载该MnSymbol包;该包更改了许多符号。

相关内容