我希望数学环境中的所有大写罗马字母都变成 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}