重新定义“$\mu$m”中的“mu”作为单位(直立的 \mu 而不是斜体的 \mu)

重新定义“$\mu$m”中的“mu”作为单位(直立的 \mu 而不是斜体的 \mu)

我有一篇 300 多页的论文,我经常使用$\mu$,它以斜体格式展示 mu。现在我的导师希望我将其更正为非斜体。我不想逐一更改,因此想到使用以下方法重新定义它:\newcommand{\mu}{\ensuremath{\textrm{\mu}}}

但当然我不能这样做,因为\mu它已经定义了。我怎样才能重新定义它,使它在我的等式中不以斜体显示,而不逐一更改所有内容?但数学格式中的某些内容$$应该保持斜体显示。

% !TEX TS-program = pdflatex
   
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,width=150mm,top=25mm,bottom=25mm]{geometry}
    
\begin{document}
5 $\mu$
\end{document}

答案1

根据您的评论,您使用“mu”来表示“微”,例如百万分之一某些科学单位。鉴于这种情况,您需要立即放弃尝试定义自己的微符号。相反,请使用包siunitx及其\unit\qty宏来排版科学单位和相关数量。宏\unit\qty可以在文本和数学模式下使用。

在此处输入图片描述

请注意,印刷正确的“micro”字形有衬线,与 和 都有很大不同$\mu$$\upmu$还请注意,\qty还会在数字和相关单位之间自动插入印刷正确的(不可中断)空格。

% !TEX TS-program = pdflatex
\documentclass[11pt]{article}
%%\usepackage[utf8]{inputenc} % that's the default nowadays
\usepackage[a4paper,width=150mm,vmargin=25mm]{geometry}
\usepackage{siunitx,upgreek}

\begin{document}
\unit{\micro\meter}, $\unit{\micro\farad}$, \unit{\micro\second}

$\qty{4}{\micro\meter}$, \qty{5}{\micro\farad}, $\qty{6}{\micro\second}$
\end{document}

附录:该siunitx包提供了快捷宏\ug\um\us\umol\uA\uV\uL分别表示百万分之一克、米/米、秒、摩尔、安培、伏特和升。因此,上述环境主体中的第一行document也可以简洁地写成\unit{\um}, $\unit{\uF}$, \unit{\us}

答案2

我想现在输入正确已经太晚了。您可以使用upgreek并重新定义\mu为来解决您的问题\upmu

\documentclass{article}
\usepackage{upgreek}

\renewcommand{\mu}{\upmu}

\begin{document}

$\mu$ but $\pi\alpha\beta$

\end{document}

在此处输入图片描述

答案3

一般来说,斜体希腊字母不会通过\mathrm或来呈现直立\textrm。在这里,我推荐答案直立希腊字体适合计算机现代对于 pdflatex 来说,它允许取消任何字形的倾斜。

然后,我将斜体 mu 另存为\itmu\mu根据它重新定义。\itmu如果需要斜体 mu,仍然可以调用。

\documentclass[a4paper]{article}
\newsavebox{\foobox}
\newcommand{\slantbox}[2][0]{\mbox{%
        \sbox{\foobox}{#2}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\newcommand\unslant[2][-.25]{\slantbox[#1]{$#2$}}

\let\itmu\mu
\renewcommand\mu{\ensuremath{\unslant\itmu}}

\begin{document}
5 \mu m.  If needed italic in math mode, $\alpha\itmu$.
\end{document}

在此处输入图片描述

答案4

您可以使用任何选项从这里。您可能需要siunitx软件包或\textmicrometer来自 latex 内核的软件包。如果您可以重新定义\mu,那么您也可以进行搜索和替换。

\newcommand但是,使用 可以非常简单地解决您遇到的问题\DeclareRobustCommand。对于由于各种原因而延迟定义的某些包,您可能需要\AtBeginDocument{\DeclareRobustCommand\mu{\textup{\textmicrometer}}}

相关内容