我定义了以下命令:
\newcommand{\mymathrm}[1]{\operatorname{\mathrm{#1}}}
问题是$\mymathrm{A B}$
给出了类似的结果AB
,它没有排版A
和之间的空格B
。
有没有什么办法我可以修改的定义,\mymathrm
以便它能够排版空格,就像我写的一样\mymathrm{A\ B}
?
最后,如果命令自动一半A
和之间的空间B
帖子使数学模式遵循空格似乎相关,但我不知道如何catcode
在命令内部进行更改。
MWE(基于以下答案):
\documentclass[10pt]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{palatino}
\begin{document}
\newcommand{\mymathrm}[1]{\operatorname{\textrm{\spaceskip.15em#1}}}
$\mymathrm{max sup}$
\renewcommand{\mymathrm}[1]{\operatorname{\mathrm{\spaceskip.15em#1}}}
$\mymathrm{max sup}$
\end{document}
答案1
您可以使用\textrm
而不是\mathrm
,以便更轻松地控制空间。
\documentclass{article}
\usepackage{amsmath}
\newcommand{\mymathrm}[1]{\operatorname{\textrm{\spaceskip.15em#1}}}
\begin{document}
$\operatorname{max sup} x$
$\operatorname{\textrm{max sup}} x$
$\mymathrm{max sup} x$
\end{document}
在稍后添加的示例文档中,字体设置为有点令人惊讶的 palatino 文本和 computer modern math,因此和 之间存在很大的视觉差异\textrm
。\mathrm
但是,您可以指定在 中使用 OT1 Computer modern roman \text
:
\documentclass[10pt]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{palatino}
\begin{document}
\newcommand{\mymathrm}[1]{\operatorname{\text{\fontencoding{OT1}\fontfamily{cmr}\selectfont\spaceskip.15em#1}}}
$\mymathrm{max sup}$
\renewcommand{\mymathrm}[1]{\operatorname{\mathrm{\spaceskip.15em#1}}}
$\mymathrm{max sup}$
\end{document}
但是你可以考虑palatino
用
\usepackage{newpxtext,newpxmath}
使用更现代的 palatino 克隆设置并匹配文本和数学字体。