安装 TeX Live 版本后,可能会审查该问题。
我希望有一个命令可以根据内容拉伸公共分隔符。\sin\left(
众所周知,该标准的间距不好,包https://ctan.org/pkg/mathtools和https://ctan.org/pkg/mleftright以及提议的https://tex.stackexchange.com/a/136767/128553间距方面存在不同的问题。我认为这可能与漂亮的字体有关https://ctan.org/pkg/libertinus-fonts经过https://tex.stackexchange.com/users/729. 该项目需要LuaLaTeX
。
XeLaTeX
使用和 时不会发生此问题。使用和 时Latin Modern
也Libertinus Math
不会发生此问题。这两个引擎都可以在 MWE 中使用。LuaLaTeX
Latin Modern
以下 MWE 显示了一些示例。
\documentclass[a1paper,DIV=50,12pt,landscape]{scrartcl}
%\usepackage{lua-visual-debug}
%\usepackage{amsmath,mathtools,mleftright,xparse}
%\usepackage{fontspec,unicode-math}
\usepackage{xparse}
\usepackage{fontspec}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{unicode-math}
\usepackage{mleftright}
\ifcase0
\setmainfont{LibertinusSerif-Regular.otf}
\setmathfont{LibertinusMath-Regular.otf}[Scale=MatchUppercase,math-style=ISO,bold-style=ISO]
\else
\setmainfont{lmroman12-regular}
\setmathfont{latinmodern-math}[Scale=MatchUppercase,math-style=ISO,bold-style=ISO]
\fi
\ExplSyntaxOn%see https://tex.stackexchange.com/a/136767/128553
\DeclareDocumentCommand{\KDeclarePairedDelimiter}{mm}
{
\__egreg_delimiter_clear_keys: % reset to the default
\keys_set:nn { egreg/delimiters } { #2 }
\use:x % we want to expand the values of the token variables set with the keys
{
\exp_not:n {\NewDocumentCommand{#1}{sO{}m} }
{
\exp_not:n { \IfBooleanTF{##1} }
{
\exp_not:N \egreg_paired_delimiter_expand:nnnn
{ \exp_not:V \l_egreg_delimiter_left_tl }
{ \exp_not:V \l_egreg_delimiter_right_tl }
{ \exp_not:n { ##3 } }
{ \exp_not:V \l_egreg_delimiter_subscript_tl }
}
{
\exp_not:N \egreg_paired_delimiter_fixed:nnnnn
{ \exp_not:n { ##2 } }
{ \exp_not:V \l_egreg_delimiter_left_tl }
{ \exp_not:V \l_egreg_delimiter_right_tl }
{ \exp_not:n { ##3 } }
{ \exp_not:V \l_egreg_delimiter_subscript_tl }
}
}
}
}
\keys_define:nn { egreg/delimiters }
{
left .tl_set:N = \l_egreg_delimiter_left_tl,
right .tl_set:N = \l_egreg_delimiter_right_tl,
subscript .tl_set:N = \l_egreg_delimiter_subscript_tl,
}
\cs_new_protected:Npn \__egreg_delimiter_clear_keys:
{
\keys_set:nn { egreg/delimiters } { left=.,right=.,subscript={} }
}
\cs_new_protected:Npn \egreg_paired_delimiter_expand:nnnn #1 #2 #3 #4
{% Fix the spacing issue with \left and \right (D. Arsenau, P. Stephani and H. Oberdiek)
\mathopen{}
\mathclose\c_group_begin_token
\left#1
#3
\group_insert_after:N \c_group_end_token
\right#2
\tl_if_empty:nF {#4} { \c_math_subscript_token {#4} }
}
\cs_new_protected:Npn \egreg_paired_delimiter_fixed:nnnnn #1 #2 #3 #4 #5
{
\mathopen{#1#2}#4\mathclose{#1#3}
\tl_if_empty:nF {#5} { \c_math_subscript_token {#5} }
}
\ExplSyntaxOff
\DeclareMathOperator{\mtool}{mtl}
\DeclareMathOperator{\plain}{pl}
\DeclareMathOperator{\lr}{rl}
\DeclareMathOperator{\mlr}{mrl}
\DeclareMathOperator{\egl}{egl}
\newcommand{\argdot}{{\hspace{0.16667em}\cdot\hspace{0.16667em}}}
\KDeclarePairedDelimiter{\knorm}{left=\lVert,right=\rVert}
\KDeclarePairedDelimiter{\kabs}{left=\lvert,right=\rvert}
\KDeclarePairedDelimiter{\kbracket}{left=(,right=)}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\bracket}{(}{)}
\newcommand{\checkLetter}[1]{
f\abs*{#1}
\plain\lvert{}#1\rvert
-\mtool\abs{#1}
+\mtool\abs*{#1}
\#\egl\kabs*{#1}
\times\lr\left\lvert{}#1\right\rvert
*\mlr\mleft\lvert{}#1\mright\rvert
\quad \plain(#1)
-\mtool\bracket{#1}
+\mtool\bracket*{#1{}}
\#\egl\kbracket*{#1{}}
\times\lr\left(#1\right)
*\mlr\mleft(#1\mright)
}
\newcommand{\checkLetterSingle}[1]{
\checkLetter{#1}
&=\checkLetter{\int #1}\allowdisplaybreaks\\
}
\begin{document}
\begin{align*}
% {{\dot\Gamma_{r}}}_{1}^{2}\\
\checkLetterSingle{\argdot}
\checkLetterSingle{\argdot_{}^{}}
%
1\checkLetterSingle {f}
1u\checkLetterSingle {f_{}}
1a\checkLetterSingle {f^{}}
1au\checkLetterSingle {f_{}^{}}
1h\checkLetterSingle {f\hspace{1pt}}
%%
% 2\checkLetterSingle F
% 2h\checkLetterSingle {F\hspace{1pt}}
% 2a\checkLetterSingle {F^{}}
% 2u\checkLetterSingle {F_{}}
% 2au\checkLetterSingle {F_{}^{}}%
%%
% 6\checkLetterSingle \omega
% 7\checkLetterSingle {f_\sum}
% 7a\checkLetterSingle {{f_\sum}^{}}
% 7u\checkLetterSingle {{f_\sum}_{}}
% 7au\checkLetterSingle {{f_\sum}_{}^{}}
\end{align*}
\end{document}
整个图片的细节:(pl
没有任何东西)、mtl
(mathtools
)、egl
(egreg 的提议)、rl
(\left
)、和url
(mleftright
)。
这个问题可以通过尝试手动添加 hspace 来解决,但我不太喜欢这样做。我认为这是一种肮脏的解决方案,因为它既耗时又不一致。
拉丁现代语中这个问题不太突出或者根本不存在(我不知道这是否是故意的):
https://tex.stackexchange.com/users/3929注意到这不是字距调整但间距问题。谢谢。他不再是字体的维护者,请参阅https://github.com/alerque/libertinus/issues/328。