索引的默认运算符大小较小

索引的默认运算符大小较小

我正在寻找一种方法来减少作为索引出现的加号和减号的默认大小。

这是一个 dirty tex 示例:

One has the following commutation relations:
\[  \left\{ \, \begin{aligned}
    \partial_k \, \partial_p &= \partial_{p-1} \, \partial_k  
        & \mathrm{if} & \quad k < p \\
    \partial_k \, \partial_p &= \partial_p \, \partial_{k+1}  
        & \mathrm{if} & \quad k \geq p
\end{aligned} \right. \]

其结果为:

enter image description here

我的问题是,+和符号比和索引-占用更多空间。如果我能得到像之前的代码等宽字体一样好看的东西,我会非常欣慰。 pk

有谁知道我怎样才能实现这个目标?

完整的 MWE:

\documentclass{article}
\begin{document}
\[ \partial_k \partial_p = \partial_{p-1}\partial_k
    \quad \mathrm{if} \quad k < p \]
\[ \partial_k \partial_p = \partial_p\partial_{k+1}
    \quad \mathrm{if} \quad k \geq p \]
\end{document}

答案1

以下基于 LuaLaTeX 的解决方案可能会让您感兴趣。该解决方案包括 (a) 一个名为 的 Lua 函数smaller_plus_minus,它扫描所有输入行以查找-+的出现位置里面下标或上标组,如果找到,则用相关符号的较小版本替换这些出现的情况,以及 (b) LaTeX 宏来激活和停用 Lua 函数。每个下标或上标组允许有多个-实例+

这里的主要工作假设是,下标和上标内容始终由一对匹配的花括号({})分隔,例如a_{p-q}b^{u+v}。Lua 函数将不是a_-对或的实例进行操作b^+。我相信这不是什么限制。

Lua 函数当前设置为对所有输入进行操作,包括可能位于逐字类环境中的材料。这大概是不可取的。如果您的文档包含逐字类材料,我建议您在\DeactivateSmallerPlusMinus相关材料开始之前运行 - 并\ActivateSmallerPlusMinus在逐字类材料结束之后运行。

enter image description here

老实说,我认为减小下标和上标材料的+尺寸不是一个好主意。-

% !TeX program = lualatex
\documentclass{article}
\usepackage{mathtools} % for "dcases" env.

%% Lua-side code
\usepackage{luacode}
%% Lua-side code
\usepackage{luacode}
\begin{luacode}
local function sub_to_tiny ( u , v )
  return u .. v:gsub ( "[%+%-]" , "\\mathrel{\\vcenter{\\hbox{\\tiny$%0$}}}" ) 
end
function smaller_plus_minus ( s )
  return s:gsub ( "([_%^])%s-(%b{})" , sub_to_tiny ) 
end
\end{luacode}

%% LaTeX-side code
\newcommand\ActivateSmallerPlusMinus{\directlua{luatexbase.add_to_callback 
    ( "process_input_buffer", smaller_plus_minus, "smaller_plus_minus" )}}
\newcommand\DeactivateSmallerPlusMinus{\directlua{luatexbase.remove_from_callback 
    ( "process_input_buffer", "smaller_plus_minus" )}}
\AtBeginDocument{\ActivateSmallerPlusMinus} % activate lua function by default

\begin{document}
$\displaystyle\begin{dcases}
    \partial_k\partial_p = \partial_{p-1}\partial_k & \text{if $k < p$} \\
    \partial_k\partial_p = \partial_p\partial_{k+1} & \text{if $k \geq p$}
\end{dcases}$

\medskip
$\partial_{p-q}$, $\partial_{k+\ell}$, $a_{--}$, $b^{++}$
vs.\par
\DeactivateSmallerPlusMinus % remove lua function from callback
$\partial_{p-q}$, $\partial_{k+\ell}$, $a_{--}$, $b^{++}$
\end{document} 

相关内容