我已经通过 定义了几个数学分隔符\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
如果您可以从数学字体切换XITS
到Stix 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
: