线路
i(x,y,z,t) = \delta(x-\ell_x(z)) \delta(y-\ell_y(z)) \hat{\imath}(\xi(z),t)
在我眼里,连续函数调用之间的间隔太小。很难从视觉上区分这三个调用。我猜根本原因是作为函数参数的表达式相对较长。为了比较,
i(x,y,z,t) = \delta(x) \delta(y) \hat{\imath}(\xi(z),t)
我认为已经好多了。
我知道我可以
- 使用等手动调整间距
\,
,包括定义自动执行此操作的宏的选项。 - 插入
\cdot
作为添加分隔空间的手段。
但是,我的问题是:是否有一种规范的方法(例如一个包)来处理这个问题?我想我不是第一个遇到这个问题的人……尽管如此,我还是找不到有用的、通用的解决方案。
一个可能的解决方案可能是
i(x,y,t) = \delta \funcargs{x-\ell_x(z)} \delta \funcargs{y-\ell_y(z)} \hat{\imath} \funcargs{\xi(z)}{t}
请注意,我发现的使用\cdot
不能令人满意,因为它会引入文档中的不一致(有时有点,有时没有,但含义相同)。
答案1
首先,让我从 TeXbook 中引用一段话来展示不同类型的数学原子之间的空间数量:
在哪里
Ord
包括诸如a
、\theta
以及里面的东西\mathord
或者只是简单{}
的;Op
包括诸如\sin
、\gcd
和 里面的东西\mathop
;Bin
包括诸如\pm
、\otimes
和 里面的东西\mathbin
;Rel
包括诸如\leq
、\mid
和 里面的东西\mathrel
;Open
包括诸如\langle
、(
和 里面的东西\mathopen
;Close
包括诸如\rangle
、)
和 里面的东西\mathclose
;Punct
包括诸如,
、.
和 里面的东西\mathpunct
;Inner
包括像\cdots
和 里面的东西\mathinner
。
以下是一个例子纯文本文档说明了几种不同的方法:
\let\funarg\mathinner
\def\funop#1{\mathop{{}#1}}
$$ i(x,y,z,t) = \delta(x-\ell_x(z)) \delta(y-\ell_y(z)) \hat\imath(\xi(z),t), $$
$$ i\funarg{x,y,z,t} = \delta\funarg{(x-\ell_x(z))} \delta\funarg{(y-\ell_y(z))} \hat\imath\funarg{(\xi(z),t)}, $$
$$ \funarg{i(x,y,z,t)} = \funarg{\delta(x-\ell_x(z))} \funarg{\delta(y-\ell_y(z))} \funarg{\hat\imath(\xi(z),t)}, $$
$$ \funop i(x,y,z,t) = \funop\delta(x-\ell_x(z)) \funop\delta(y-\ell_y(z)) \funop{\hat\imath}(\xi(z),t), $$
\bye
所以正如您所看到的,您可能希望使用原子\mathop
作为函数“名称”的最后一个选项。
使用 LaTeX,可以定义如下(下面的第二行显示原始代码的输出):
\documentclass{article}
\newcommand\funop[1]{\mathop{{}#1}}
\begin{document}
$i(x,y,z,t) = \funop\delta(x-\ell_x(z)) \funop\delta(y-\ell_y(z)) \funop{\hat\imath}(\xi(z),t)$
vs.
$i(x,y,z,t) = \delta(x-\ell_x(z)) \delta(y-\ell_y(z)) \hat{\imath}(\xi(z),t)$
\end{document}
(我没有在命令中包含括号的原因是我觉得测量参数以决定栅栏的大小会花费太多精力。我认为使用等手动定义高度更简单\bigl(
,并且在手稿中看到括号而不是{}
's 会更好)
答案2
\,
在乘法因子之间插入一个细空格 ( ) 应该有效。\cdot
在这些位置插入也应该有效。您还可以结合使用细空格,使外括号比内括号稍大(通过使用\bigl(
和\bigr)
)。下面说明了三种可能性:
\documentclass{article}
\begin{document}
$i(x,y,z,t) = \delta(x-\ell_x(z)) \, \delta(y-\ell_y(z)) \, \hat{\imath}(\xi(z),t)$
$i(x,y,z,t) = \delta(x-\ell_x(z)) \cdot \delta(y-\ell_y(z)) \cdot \hat{\imath}(\xi(z),t)$
$i(x,y,z,t) = \delta\bigl(x-\ell_x(z)\bigr) \, \delta\bigl(y-\ell_y(z)\bigr) \,
\hat{\imath}\bigl(\xi(z),t)\bigr)$
\end{document}
可以通过创建如下宏来自动化第三种方法
\def\myfunc#1{\bigl(#1\bigr)\,}
然后输入
$i(x,y,z,t) = \delta\myfunc{x-\ell_x(z)} \delta\myfunc{y-\ell_y(z)}
\hat{\imath}\myfunc{\xi(z),t)}$