DeclarePairedDelimiter 的间距问题(重叠)

DeclarePairedDelimiter 的间距问题(重叠)

我已经通过 定义了几个数学分隔符\DeclarePairedDelimiter,但它们似乎在某些字体的间距方面造成了一些问题。例如,以下代码导致 P 和左括号之间出现重叠。

在此处输入图片描述

有没有办法修复这样的定义\DeclarePairedDelimiter,以便我可以立即在所有文档中使用它?

% !TeX TS-program = lualatex
\documentclass{article}
\usepackage{mathtools,unicode-math,xparse}
\unimathsetup{math-style=ISO,bold-style=ISO,sans-style=italic}
\setmathfont{XITS Math}

\DeclarePairedDelimiter\parens{\lparen}{\rparen}

\newcommand{\powerset}[1]{\mathcal{P}\parens*{#1}}
\newcommand{\powersetlr}[1]{\mathcal{P}\left(#1\right)}

\begin{document}
    \begin{align}
        \powerset{XX}\\
        \powersetlr{XX}
    \end{align}
\end{document}

答案1

如果您可以从数学字体切换XITSStix Two数学字体,字距调整问题将自动消除。Stix Two文本和数学字体不会随 TeXlive 自动分发,但可以从 stixfonts.org 免费下载。

在此处输入图片描述

% !TeX TS-program = lualatex
\documentclass{article}
\usepackage{mathtools,mleftright,unicode-math} 
% "Stix Two" text and math fonts: see http://stixfonts.org/
\setmathfont{Stix Two Math}[math-style=ISO,StylisticSet=1]

\DeclarePairedDelimiter\parens()
\newcommand{\powerset}[1]{\mathcal{P}\parens*{#1}}
\newcommand{\powersetlr}[1]{\mathcal{P}\mleft(#1\mright)}

\begin{document}
    \begin{align*}
        &\mathcal{P}(XX)\\
        &\mathcal{P}\parens{XX}\\
        &\powerset{XX}\\
        &\powersetlr{XX}
    \end{align*}
\end{document}

答案2

LuaLaTeX 对斜体校正的处理有所不同。您可以通过添加 来恢复“旧”斜体(LaTeX 期望的)\mathoption old 1

\documentclass{article}
\usepackage{mathtools,unicode-math,xparse}
\unimathsetup{math-style=ISO,bold-style=ISO,sans-style=italic}
\setmathfont{XITS Math}

\DeclarePairedDelimiter\parens{\lparen}{\rparen}

\newcommand{\powerset}[1]{\mathcal{P}\/\parens*{#1}}
\newcommand{\powersetlr}[1]{\mathcal{P}\left(#1\right)}

\mathoption old 1

\begin{document}
    \begin{align}
        \powerset{XX}\\
        \powersetlr{XX}
    \end{align}
\end{document}

在此处输入图片描述

答案3

您可以\powerset使用 来定义\DeclarePairedDelimiterXPP,它允许在 分隔符之前和之后使用pre-code和。post-code

此代码与 配合得很好xelatex,但与 配合得不是很好lualatex,也许是由于@Mico 提到的字距调整问题:

\documentclass{article}
\usepackage{mathtools,unicode-math,xparse}%
\unimathsetup{math-style=ISO,bold-style=ISO,sans-style=italic}
 \setmathfont{XITS Math}
\DeclarePairedDelimiterXPP\powerset[1]{\mathcal{P}}\lparen\rparen{}{#1}
\newcommand{\powersetlr}[1]{\mathcal{P}\left(#1\right)}

\begin{document}

    \begin{align}
        \powerset*{X^{X^2}}\\
        \powersetlr{XX}
    \end{align}

\end{document}

xelatex

在此处输入图片描述

lualatex

在此处输入图片描述

相关内容