有没有办法镜像像 这样的符号\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}
需要声明大量的这些。