\mathellipsis в XeLaTeX с mathspec

\mathellipsis в XeLaTeX с mathspec

После решенийЗнаки препинания в математическом режиме в xetex/mathspecиПроблема с пунктуацией в XeTeX/mathspec, я вношу изменения в mathspec, чтобы заставить XeTeX использовать знаки препинания соответствующего шрифта. Однако, интервал между многоточиями не может быть выполнен правильно, если за ним следует запятая. У LaTeX, конечно, нет проблем. MWE (pdftex выдает ошибку на символах ^^^^, но это неважно; Old Standard — бесплатный шрифт):

\documentclass{article}
\usepackage{amsmath}
\usepackage{iftex}
\ifXeTeX
\usepackage{mathspec}
\defaultfontfeatures{Mapping=tex-text}
\setallmainfonts{Old Standard}
\makeatletter
\def\eu@MathPunctuation@symfont{Latin:m:n}
\DeclareMathSymbol{,}{\mathpunct}{\eu@MathPunctuation@symfont}{`,}
\DeclareMathSymbol{.}{\mathord}{\eu@MathPunctuation@symfont}{`.}
\XeTeXDeclareMathSymbol{^^^^2026}{\mathinner}%
        {\eu@MathPunctuation@symfont}{"2026}[\mathellipsis]
\makeatother
\fi
\begin{document}
$\left<i_1, i_2,\ldots,i_n\right>$
\end{document}

Есть ли у кого-нибудь предложения, что делать?

решение1

Возможно, это то, что вы ищете:

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathspec}
\usepackage{newunicodechar}

\defaultfontfeatures{Ligatures=TeX}% not needed with last version of fontspec
\setallmainfonts{Old Standard}

\makeatletter
\def\eu@MathPunctuation@symfont{Latin:m:n}
\DeclareMathSymbol{,}{\mathpunct}{\eu@MathPunctuation@symfont}{`,}
\DeclareMathSymbol{.}{\mathord}{\eu@MathPunctuation@symfont}{`.}
\XeTeXDeclareMathSymbol{^^^^2026}{\mathinner}%
        {\eu@MathPunctuation@symfont}{"2026}[\mathellipsis]
\AtBeginDocument{\renewcommand{\mathellipsis}{\mathinner…}}
\newunicodechar{…}{\ifmmode\mathinner…\else…\fi}
\makeatother

\begin{document}
Here… again

Here\ldots{} again

$\langle i_1, i_2,\ldots,i_n\rangle$

$\langle i_1, i_2,\dots,i_n\rangle$ % better!

$\langle i_1, i_2,…,i_n\rangle$

\end{document}

Обратите внимание, что не определено как \mathinner, тогда как \mathellipsisпросто определяет (по умолчанию). Поэтому я переопределяю \mathellipsisи также действие , поэтому оно должно быть правильным во всех случаях.

введите описание изображения здесь

Связанный контент