如何在数学环境中将所有罗马大写字母设为 mathroman

如何在数学环境中将所有罗马大写字母设为 mathroman

我希望数学环境中的所有大写罗马字母都变成 mathroman。我的意思是,例如$\mathrm{K}$在编写时获取$K$

答案1

一个奇怪的请求[[编辑:我写那个的时候已经很晚了——我已经忘记了法语数学的用法;我应该更了解的]]。

这是一个简短的例子,演示了如何做到这一点:

\documentclass{article}
\DeclareMathSymbol{A}{\mathalpha}{operators}{`A}
\DeclareMathSymbol{B}{\mathalpha}{operators}{`B}
\begin{document}
\[a+b+A+B\]
\end{document}

显然,您需要复制相应的线条来覆盖所有大写字母。

一次性完成所有这些作业的一个简单方法可能是

\makeatletter
\count@=`A \advance\count@\m@ne
\@whilenum\count@<`Z\do{%
  \advance\count@\@ne
  \begingroup\uccode`a=\count@
  \uppercase{\endgroup\DeclareMathSymbol{a}}{\mathalpha}{operators}{\count@}%
}
\makeatother

完整的示例,带有\mi简写,以防\mathnormal您在某处需要数学斜体。

\documentclass{article}

\makeatletter
\count@=`A \advance\count@\m@ne
\@whilenum\count@<`Z\do{%
  \advance\count@\@ne
  \begingroup\uccode`a=\count@
  \uppercase{\endgroup\DeclareMathSymbol{a}}{\mathalpha}{operators}{\count@}%
}
\makeatother
\newcommand{\mi}[1]{\mathnormal{#1}}

\begin{document}

$ABCDEFGHIJKLM$

$NOPQRSTUVWXYZ$

$\mi{A}+A$

\end{document}

在此处输入图片描述

答案2

您可能对以下方面感兴趣数学文本包。但请注意,此包将使用直立字形而不是斜体字形来排版小写和大写拉丁字母。


附录:感谢您澄清您需要所谓的“法语”数学风格,其中大写拉丁字母 - 但不是小写拉丁字母——用直立字形排版。我能想到实现这一目标的几种方法:

  • 使用 pdfLaTeX,加载字体系列 - 例如kpfonts- 提供以下选项frenchstyle

    在此处输入图片描述

    \documentclass{article}
    \usepackage[frenchstyle]{kpfonts}
    \begin{document}
    $A+B+\mathrm{A}+\mathrm{B}+a+b$
    \end{document}
    

    另外三个提供此排版选项的基于 pdfLaTeX 的字体包是

    • mathdesign

      \usepackage[uppercase=upright]{mathdesign}
      
    • fourier

      \usepackage[upright]{fourier}
      
    • newtxmath

      \usepackage[frenchmath]{newtxmath}
      

    (我非常感谢@Bernard 指出这另外三种可能性。)

  • 如果可以选择使用 LuaLaTeX 而不是 pdfLaTeX,只需unicode-math使用以下选项加载包math-style=french

    在此处输入图片描述

    \documentclass{article}
    \usepackage[math-style=french]{unicode-math}
    \begin{document}
    $A+B+\mathrm{A}+\mathrm{B}+a+b$
    \end{document}
    

相关内容