镜像数学字母

镜像数学字母

有没有办法镜像像 这样的符号\mathcal{P},但又保持其正确的草书形式?使用\reflectbox{\mathcal{P}}会得到 的镜像版本,但\mathcal{P}倾斜方向错误。

答案1

这也使用了 pdf magic,以系统的方式设置。不幸的是,似乎每个字形都需要自己的自定义字距。但是,考虑到这一点,结果不会受到超出其边界问题的影响。

\documentclass{article}
\usepackage{mathtools,scalerel}
\newsavebox{\foobox}
\newcommand{\slantbox}[2][.5]{\mbox{%
        \sbox{\foobox}{#2}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\newcommand\rmathcal[2][0mu]{\ThisStyle{\reflectbox{\slantbox[-.55]{%
  $\SavedStyle\mathcal{\mkern#1#2\mkern-#1}$}}}}
\begin{document}
\fboxsep=1pt
\fbox{$\mathcal{P}\rmathcal[5mu]{P}\mathcal{P}$}

$\mathcal{Q}\rmathcal{Q}\mathcal{Q}$
\fbox{$\scriptstyle\mathcal{Q}\rmathcal{Q}\mathcal{Q}$}
$\scriptscriptstyle\mathcal{Q}\rmathcal{Q}\mathcal{Q}$

$\mathcal{Y}\rmathcal[4mu]{Y}\mathcal{Y}$
$\scriptstyle\mathcal{Y}\rmathcal[4mu]{Y}\mathcal{Y}$
\fbox{$\scriptscriptstyle\mathcal{Y}\rmathcal[4mu]{Y}\mathcal{Y}$}
\end{document}

在此处输入图片描述

答案2

您可以\mathpalette与一些 PDF magic 配对。这只适用于 pdfTeX。它没有经过微调,我只对字母进行了一些测试P。它在下标中看起来不太好,当您使用多个字母时会发生奇怪的事情,但您明白了。

\documentclass{article}

\makeatletter

\DeclareRobustCommand\mathcalr[1]{%
    \mathpalette\@mathcalr{#1}%
}

\newcommand\@mathcalr[2]{%
    \mskip2mu
    \pdfsave
    \pdfsetmatrix{-1 0 .633 1}%
    \hb@xt@\z@{\hss$\m@th#1\mathcal{#2}$\hss}%
    \pdfrestore
    \mskip12mu
}

\makeatother

\begin{document}
\fbox{$b\mathcal{P}a$}

\fbox{$a\mathcalr{P}b$}

\fbox{$_{a\mathcalr{P}b}$}

\fbox{$_{_{a\mathcalr{P}b}}$}

\fbox{$\mathcalr{ABC}$} % oops
\end{document}

在此处输入图片描述

答案3

使用unicode-math,可以使数学字体向左倾斜,并带有负值FakeSlant=,然后再反映出来。您仍然需要在 之前和 之后进行一些手动字距调整\reflectbox

\documentclass{article}
\usepackage{graphicx}
\usepackage{unicode-math}

\pagestyle{empty}

\setmathfontface{\mathleftslant}{Latin Modern Math}[FakeSlant=-0.6]
\newcommand\mirrorcalP{%
  \kern-0.25em%
  \reflectbox{%
  \(\mathleftslant{\mscrP}\)%
  }%
  \kern0.1em}

\begin{document}
\[ \mathcal{P}\mirrorcalP\mathcal{Q} \]
\end{document}

拉丁现代数学样本

虽然可以定义一个\mirrorcal{P}命令,但无论如何它都需要对每个符号进行单独的微调,而且您可能只需要其中的一两个。

但是,您可能会定义\mirrorcalP好像\@mirrorsym{\mscrP}{-2.5em}{0.1em}需要声明大量的这些。

相关内容