如何正确插入 Ɐ (2C6F) 或任何未定义的 unicode

如何正确插入 Ɐ (2C6F) 或任何未定义的 unicode

使用 xelatex 我尝试了这个:

\usepackage{graphicx}
\newcommand{\Vol}{\rotatebox[origin=c]{180}{\ensuremath{A}}}

\begin{document}
\Vol
\end{document}

我知道有,\forall但这显然不是答案。但问题是当我尝试这样做时:

\documentclass{article}
\usepackage{graphicx}
\usepackage{commath}
\usepackage{amsmath}
\newcommand{\Vol}{\rotatebox[origin=c]{180}{\ensuremath{A}}}
\begin{document}
$E_v=-\frac{\dif p}{\frac{\dif \Vol}{\Vol}}$
\end{document}

微分算子和体积得到不同的大小:

   微分算子与体积具有不同的尺寸。

答案1

以下解决方案基于\mathpalette允许检测当前的数学样式:

\documentclass{article}
\usepackage{graphicx}
\usepackage{commath}
\usepackage{amsmath}

\makeatletter
\newcommand{\Vol}{%
  \mathpalette\@Vol{}%
}
\newcommand*{\@Vol}[2]{%
  % #1: math style
  % #2: unused
  \rotatebox[origin=c]{180}{$\m@th#1A$}%
}
\makeatother

\begin{document}
$E_v=-\frac{\dif p}{\frac{\dif \Vol}{\Vol}}$
\end{document}

结果

以下变体使用\text来自包amsmath或的amstext

\documentclass{article}
\usepackage{graphicx}
\usepackage{commath}
\usepackage{amsmath}

\makeatletter
\newcommand{\Vol}{%
  \text{\rotatebox[origin=c]{180}{$\m@th A$}}
}
\makeatother

\begin{document}
$E_v=-\frac{\dif p}{\frac{\dif \Vol}{\Vol}}$
\end{document}

在这两种情况下,当在文本框中设置数学时,\m@th确保为零,以避免在数学符号周围产生额外的空间。\mathsurround

答案2

Heiko 解决方案的一个变体,主要是为了警告不要使用commath;参见

举一些例子说明原因。

我还添加了,\newunicodechar以便您可以直接输入字符。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\usepackage{amsmath}
\usepackage{graphicx}

\makeatletter
\DeclareRobustCommand{\reverseletter}[1]{\mathpalette\reverse@letter{#1}}
\newcommand{\reverse@letter}[2]{%
  \rotatebox[origin=c]{180}{$\m@th#1#2$}%
}
\makeatother

\newcommand{\Vol}{\reverseletter{A}}
\newunicodechar{Ɐ}{\Vol}

\newcommand{\dif}{\mathop{}\!\mathrm{d}} % much better than commath's

\begin{document}

$E_v=-\frac{\dif p}{\frac{\dif \Vol}{\Vol}}$

$E_v=-\frac{\dif p}{\frac{\dif Ɐ}{Ɐ}}$

\end{document}

在此处输入图片描述

相关内容