参考

参考

几乎无处不在的电动力学本科参考书,David Griffiths 所著的《电动力学导论》,大量使用了脚本 r 符号,其定义如下\vector{\scriptr} \equiv \vector{r} - \vector{r}^{\prime}

脚本

虽然如何在 LaTeX 中生成这样的符号是一个相当常见的问题,但我还没有找到令人满意的解决方案。我找到的最接近的解决方案来自包physymb并使用 Calligra 字体:

在此处输入图片描述

遗憾的是,这个字没有粗体版本,而且比我想要的草书要多得多。因此我想知道是否有更好的仿制版本。

答案1

我想进一步讨论Mateen 的回答。首先,可以将 的选择限制calligra为仅小写r,其次,可以使用 PDF 文字实​​现粗体。所有这些都是使用虚拟字体完成的。因此,首先,我们创建虚拟字体,它只是 输出的精简版和调整版tftopl `kpsewhich callig15.tfm`。特别是,字形的边界框被放大,字形向左移动了一点。最重要的是,我们添加了一些SPECIAL语句来稍微平移字符,因为 Calligra 字体比 Griffiths 的字体更具草书性。

正常字体变体:griffm.vpl

(FAMILY GRIFF)
(CODINGSCHEME FONTSPECIFIC)
(DESIGNSIZE R 10.0)
(MAPFONT D 0 (FONTNAME callig15))
(FONTDIMEN
   (SLANT R 0.0)
   (SPACE R 0.332987)
   (STRETCH R 0.165994)
   (SHRINK R 0.109996)
   (XHEIGHT R 0.195992)
   (QUAD R 0.798967)
   )
(CHARACTER C r
   (CHARWD R 0.23)
   (CHARHT R 0.23)
   (CHARDP R 0.0095)
   (MAP
      (SPECIAL pdf: q 1 0 -.5 1 0 0 cm)
      (PUSH)
      (MOVELEFT R 0.02)
      (SELECTFONT D 0)
      (SETCHAR C r)
      (POP)
      (SPECIAL pdf: Q)
      )
   )

在粗体字体变体中,我们SPECIAL在字符周围添加了额外的说明,通过加粗轮廓笔画来使其变粗:griffb.vpl

(FAMILY GRIFF)
(CODINGSCHEME FONTSPECIFIC)
(DESIGNSIZE R 10.0)
(MAPFONT D 0 (FONTNAME callig15))
(FONTDIMEN
   (SLANT R 0.0)
   (SPACE R 0.332987)
   (STRETCH R 0.165994)
   (SHRINK R 0.109996)
   (XHEIGHT R 0.195992)
   (QUAD R 0.798967)
   )
(CHARACTER C r
   (CHARWD R 0.23)
   (CHARHT R 0.23)
   (CHARDP R 0.0095)
   (MAP
      (SPECIAL pdf: q 1 0 -.5 1 0 0 cm 2 Tr 0.4 w)
      (PUSH)
      (MOVELEFT R 0.02)
      (SELECTFONT D 0)
      (SETCHAR C r)
      (POP)
      (SPECIAL pdf: 0 Tr 0 w Q)
      )
   )

这两个虚拟字体是使用

vptovf griffm.vpl
vptovf griffb.vpl

然后它们就可以在 LaTeX 文件中使用了。我们只需要输入正确的 NFSS 指令。为了轻松访问粗体变体,我使用了包bm并定义了快捷方式\brcurs(如 Griffiths)。

\documentclass{article}

\usepackage{bm}
\DeclareFontFamily{U}{griff}{}
\DeclareFontShape{U}{griff}{m}{n}{<-> s*[2.2] griffm}{}
\DeclareFontShape{U}{griff}{b}{n}{<-> s*[2.2] griffb}{}
\DeclareSymbolFont{griff}{U}{griff}{m}{n}
\SetSymbolFont{griff}{bold}{U}{griff}{b}{n}
\DeclareMathSymbol{\rcurs}{\mathalpha}{griff}{"72}
\DeclareBoldMathCommand{\brcurs}{\rcurs}
\newcommand*\hrcurs{\hat{\brcurs}}

\begin{document}

\[
  \mathbf{E}(\mathbf{r}) = \frac{1}{4 \pi \epsilon_0} \int\limits_{\mathcal{V}} \frac{\rho(\mathbf{r}')}{\rcurs^2} \hrcurs d \tau'
\]

\end{document}

在此处输入图片描述

参考

答案2

您可能希望查阅 David J. Griffiths 博士的网页:http://academic.reed.edu/physics/faculty/griffiths.html

在页面底部,他提供了一个链接“在 TeX 中创建 script-r:”

编辑:字形后面的空白通常有点太多。如果要减少空白,可以使用这些宏来裁剪它,而不是使用 Griffiths 建议的宏:

\def\rcurs{{\mbox{$\resizebox{.09in}{.08in}{\includegraphics[trim= 1em 0 14em 0,clip]{ScriptR}}$}}}
\def\brcurs{{\mbox{$\resizebox{.09in}{.08in}{\includegraphics[trim= 1em 0 14em 0,clip]{BoldR}}$}}}

答案3

如果您愿意使用lualatexunicode-math。至少您可以获得免费的脚本字体,XITSAsana。它们都有脚本字体及其粗体版本。

rsfs是免费的脚本字体。但似乎没有粗体版本。

无论如何,XITS和中的字形Asana并不完全符合您的要求。但如果您只想要粗体版本的脚本字体,而不是完全重现该书中的外观,它们应该可以工作。

\documentclass{article}
\usepackage{amsmath}
\usepackage{unicode-math}
\setmathfont{XITS Math}

\def\az{abcdefghijklmnopqrstuvwxyz}
\def\AZ{ABCDEFGHIJKLMNOPQRSTUVWXYZ}

\begin{document}
  \begin{gather*}
    \mathscr{\az} \\
    \mathscr{\AZ} \\
    \mathbfscr{\az} \\
    \mathbfscr{\AZ}
  \end{gather*}
\end{document}

XITS 脚本

答案4

Free Serif 中有一个脚本 r

脚本 r

但不幸的是它不能以粗体显示。您可以使用 XeLaTeX 编译以下scriptr.tex文件(TeX Live 中包含免费 Serif)

\documentclass{standalone}
\usepackage{fontspec}
\setmainfont{Free Serif}
\begin{document}
\char"1D4C7
\end{document}

获取一个scriptr.pdf文件,然后使用

\newcommand{\scriptr}{\includegraphics{scriptr}}

在您的文档中。可能需要进行一些转变。

相关内容