如何從不同的預定義集中建立具有小寫和大寫字母的數學字母表?

如何從不同的預定義集中建立具有小寫和大寫字母的數學字母表?

我目前使用 rsfs 字母作為 caligriphic 符號。但沒有對應的小寫字母,所以我開始嘗試其他的。有沒有一種方法可以讓我可以寫作$\mathscr{Ker}$,而不是$\mathscr{K}\mathcal{er}$像我一直在做的那樣?

答案1

這是一種基於字母表txfonts.sty的做法的方法\varmathbb。由於您沒有提供任何細節,我認為小寫字母來自 Chancery 字體(代號pzc)。當然,正如 Ker 中的不良間距所示,兩者根本不能很好地結合在一起,因此您必須根據您的需求調整程式碼:

程式碼的結果

\documentclass{article}

\DeclareSymbolFont{mathscrUC}{U}{rsfs}{m}{n}  % Formal Script for uppercase
\DeclareSymbolFont{mathscrLC}{OT1}{pzc}{m}{n} % Chancery for lowercase

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatletter
%%%%%%%%%%%%%%%%%% code from txfonts.sty (for \varmathbb) %%%%%%%%%%%%%%%%%
\DeclareRobustCommand*{\mathscr}[1]{\gdef\F@ntPrefix{mathscr@char@}%
  \@EachCharacter #1\@EndEachCharacter}
\long\def\DoLongFutureLet #1#2#3#4{% 
   \def\@FutureLetDecide{#1#2\@FutureLetToken
      \def\@FutureLetNext{#3}\else
      \def\@FutureLetNext{#4}\fi\@FutureLetNext}
   \futurelet\@FutureLetToken\@FutureLetDecide}
\def\DoFutureLet #1#2#3#4{\DoLongFutureLet{#1}{#2}{#3}{#4}}
\def\@EachCharacter{\DoFutureLet{\ifx}{\@EndEachCharacter}%
   {\@EachCharacterDone}{\@PickUpTheCharacter}}
\def\m@keCharacter#1{\csname\F@ntPrefix#1\endcsname}
\def\@PickUpTheCharacter#1{\m@keCharacter{#1}\@EachCharacter}
\def\@EachCharacterDone \@EndEachCharacter{}

%%%%%%%%%%%%%%%%%% defining each individual symbols %%%%%%%%%%%%%%%%%%%%%%%
\DeclareMathSymbol{\mathscr@char@A}{\mathord}{mathscrUC}{`A}
\DeclareMathSymbol{\mathscr@char@B}{\mathord}{mathscrUC}{`B}
\DeclareMathSymbol{\mathscr@char@C}{\mathord}{mathscrUC}{`C}
\DeclareMathSymbol{\mathscr@char@D}{\mathord}{mathscrUC}{`D}
\DeclareMathSymbol{\mathscr@char@E}{\mathord}{mathscrUC}{`E}
\DeclareMathSymbol{\mathscr@char@F}{\mathord}{mathscrUC}{`F}
\DeclareMathSymbol{\mathscr@char@G}{\mathord}{mathscrUC}{`G}
\DeclareMathSymbol{\mathscr@char@H}{\mathord}{mathscrUC}{`H}
\DeclareMathSymbol{\mathscr@char@I}{\mathord}{mathscrUC}{`I}
\DeclareMathSymbol{\mathscr@char@J}{\mathord}{mathscrUC}{`J}
\DeclareMathSymbol{\mathscr@char@K}{\mathord}{mathscrUC}{`K}
\DeclareMathSymbol{\mathscr@char@L}{\mathord}{mathscrUC}{`L}
\DeclareMathSymbol{\mathscr@char@M}{\mathord}{mathscrUC}{`M}
\DeclareMathSymbol{\mathscr@char@N}{\mathord}{mathscrUC}{`N}
\DeclareMathSymbol{\mathscr@char@O}{\mathord}{mathscrUC}{`O}
\DeclareMathSymbol{\mathscr@char@P}{\mathord}{mathscrUC}{`P}
\DeclareMathSymbol{\mathscr@char@Q}{\mathord}{mathscrUC}{`Q}
\DeclareMathSymbol{\mathscr@char@R}{\mathord}{mathscrUC}{`R}
\DeclareMathSymbol{\mathscr@char@S}{\mathord}{mathscrUC}{`S}
\DeclareMathSymbol{\mathscr@char@T}{\mathord}{mathscrUC}{`T}
\DeclareMathSymbol{\mathscr@char@U}{\mathord}{mathscrUC}{`U}
\DeclareMathSymbol{\mathscr@char@V}{\mathord}{mathscrUC}{`V}
\DeclareMathSymbol{\mathscr@char@W}{\mathord}{mathscrUC}{`W}
\DeclareMathSymbol{\mathscr@char@X}{\mathord}{mathscrUC}{`X}
\DeclareMathSymbol{\mathscr@char@Y}{\mathord}{mathscrUC}{`Y}
\DeclareMathSymbol{\mathscr@char@Z}{\mathord}{mathscrUC}{`Z}
\DeclareMathSymbol{\mathscr@char@a}{\mathord}{mathscrLC}{`a}
\DeclareMathSymbol{\mathscr@char@b}{\mathord}{mathscrLC}{`b}
\DeclareMathSymbol{\mathscr@char@c}{\mathord}{mathscrLC}{`c}
\DeclareMathSymbol{\mathscr@char@d}{\mathord}{mathscrLC}{`d}
\DeclareMathSymbol{\mathscr@char@e}{\mathord}{mathscrLC}{`e}
\DeclareMathSymbol{\mathscr@char@f}{\mathord}{mathscrLC}{`f}
\DeclareMathSymbol{\mathscr@char@g}{\mathord}{mathscrLC}{`g}
\DeclareMathSymbol{\mathscr@char@h}{\mathord}{mathscrLC}{`h}
\DeclareMathSymbol{\mathscr@char@i}{\mathord}{mathscrLC}{`i}
\DeclareMathSymbol{\mathscr@char@j}{\mathord}{mathscrLC}{`j}
\DeclareMathSymbol{\mathscr@char@k}{\mathord}{mathscrLC}{`k}
\DeclareMathSymbol{\mathscr@char@l}{\mathord}{mathscrLC}{`l}
\DeclareMathSymbol{\mathscr@char@m}{\mathord}{mathscrLC}{`m}
\DeclareMathSymbol{\mathscr@char@n}{\mathord}{mathscrLC}{`n}
\DeclareMathSymbol{\mathscr@char@o}{\mathord}{mathscrLC}{`o}
\DeclareMathSymbol{\mathscr@char@p}{\mathord}{mathscrLC}{`p}
\DeclareMathSymbol{\mathscr@char@q}{\mathord}{mathscrLC}{`q}
\DeclareMathSymbol{\mathscr@char@r}{\mathord}{mathscrLC}{`r}
\DeclareMathSymbol{\mathscr@char@s}{\mathord}{mathscrLC}{`s}
\DeclareMathSymbol{\mathscr@char@t}{\mathord}{mathscrLC}{`t}
\DeclareMathSymbol{\mathscr@char@u}{\mathord}{mathscrLC}{`u}
\DeclareMathSymbol{\mathscr@char@v}{\mathord}{mathscrLC}{`v}
\DeclareMathSymbol{\mathscr@char@w}{\mathord}{mathscrLC}{`w}
\DeclareMathSymbol{\mathscr@char@x}{\mathord}{mathscrLC}{`x}
\DeclareMathSymbol{\mathscr@char@y}{\mathord}{mathscrLC}{`y}
\DeclareMathSymbol{\mathscr@char@z}{\mathord}{mathscrLC}{`z}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

$\mathscr{AaBbCcDdEeFfGgHhIiJjKkLlMm}$

$\mathscr{NnOoPpQqRrSsTtUuVvWwXxYyZz}$

$\mathscr{Ker}$

\end{document}

答案2

解決該問題的另一種方法:用給定的字體建立虛擬字體,然後將其用作數學字母表。這是虛擬字體的入門:如何建立虛擬字體?

相關內容