在数学模式下使用 schwa

在数学模式下使用 schwa

我正在研究一个自动机,并尝试在数学模式下使用 \textschwa 或 \schwa,但最终得到的只是一个 & 符号。有人知道如何在数学模式下实现这一点吗?我使用的代码如下,我想要放置 schwa 的区域位于边缘 (7) 的矩阵中。谢谢。

\begin{tikzpicture}[shorten >=1pt,node distance=4cm,on grid,auto]
   \node[state] (0) {$q_0$};
   \node[state] (1) [below right=of 0] {$q_1$};
   \node[state] (2) [below left=of 1] {$q_2$};
   \node[state] (3) [below right=of 2] {$q_3$};
   \node[state] (4) [right=of 3] {$q_4$};
   \node[state] (5) [above right of=4] {$q_5$};
   \node[state] (6) [below right of=5] {$q_6$};
   \node[state] (7) [below left of=6] {$q_7$};
   \path[->]
    (0) edge     node {\textschwa:R} (1)
    (0) edge [loop above]   node {B:\textschwa} (0)
    (1) edge     node {\textschwa:R} (2)
    (1) edge [loop left]   node {B:\textschwa} (1)
    (2) edge    node {B:0:$R_2$} (3)
    (3) edge    node {B:0:$L_2$} (4)
    (4) edge [loop above] node{1:R} (4)
    (4) edge node {0:0} (5)
    (5) edge    [loop above] node{$\begin{matrix}0:$R_2$\\1:$R_2$\end{matrix}$}  (5)
    (5) edge [bend left] node{B:1:L} (6)
    (6) edge [loop right] node{B:$L_2$} (6)
    (6) edge [bend left] node{$x$:E:R} (5)
    (6) edge node{\textschwa:R} (7)
    (7) edge [loop below] node{$\begin{matrix}0:$R_2$\\1:$R_2$\\x:$R_2$\\ {\textschwa}:$R_2$\end{matrix}$} (7)
    (7) edge node{B:0:$L_2$} (4)
    
\end{tikzpicture}

在此处输入图片描述

答案1

数学字体切换是一种与文本字体切换不同的机制,并且符号的管理方式也不同。\textschwa将字符 ə 表示为@ipa 字体中的字符 64 ( ),这就是您得到意外字符的原因。获取结果的最简单方法是暂时退出数学模式以使用例如\textschwa\mbox{\textschwa}另一种方法是采用更难的方法,即定义一个新的数学字母表并声明一个命令\mathschwa以允许直接在数学模式下使用 ə,但 TeX 对允许的数学字母表数量的限制使这个选择不那么有吸引力。

答案2

好问题,但将来请包含一个可编译的 MWE。我不得不尽力猜测你在这里的意思。

在 LuaLaTeX 或 XeLaTeX 中,您可以定义\textschwa使用 Unicode 字符 ə (U+0259)。在 PDFTeX 中,\textschwa在包中定义tipa

如果您的字体不支持该字符,则可以\rotatebox{180}{e}graphicx包中使用替代方法。

\documentclass{article}
\usepackage{iftex}
\usepackage{tikz}
\usetikzlibrary{automata,positioning}

\iftutex
  \usepackage{unicode-math}
  \usepackage{newcomputermodern}
  \DeclareTextSymbol{\textschwa}{\UnicodeEncodingName}{"0259}
\else
  \usepackage[T1]{fontenc}
  \usepackage{tipa}
  \usepackage{amsmath}
\fi

\newcommand\mathschwa{\mathalpha{\textnormal{\textschwa}}}

\begin{document}
\begin{tikzpicture}[shorten >=1pt,node distance=4cm,on grid,auto]
   \node[state] (0) {$q_0$};
   \node[state] (1) [below right=of 0] {$q_1$};
   \node[state] (2) [below left=of 1] {$q_2$};
   \node[state] (3) [below right=of 2] {$q_3$};
   \node[state] (4) [right=of 3] {$q_4$};
   \node[state] (5) [above right of=4] {$q_5$};
   \node[state] (6) [below right of=5] {$q_6$};
   \node[state] (7) [below left of=6] {$q_7$};
   \path[->]
    (0) edge     node {\textschwa:R} (1)
    (0) edge [loop above]   node {B:\textschwa} (0)
    (1) edge     node {\textschwa:R} (2)
    (1) edge [loop left]   node {B:\textschwa} (1)
    (2) edge    node {B:0:$R_2$} (3)
    (3) edge    node {B:0:$L_2$} (4)
    (4) edge [loop above] node{1:R} (4)
    (4) edge node {0:0} (5)
    (5) edge    [loop above] node{\(\begin{matrix}0:R_2 \\ 1: R_2 \end{matrix}\)}  (5)
    (5) edge [bend left] node{B:1:L} (6)
    (6) edge [loop right] node{B:$L_2$} (6)
    (6) edge [bend left] node{$x$:E:R} (5)
    (6) edge node{\textschwa:R} (7)
    (7) edge [loop below] node{\(\begin{matrix}0: R_2 \\ 1:R_2 \\ x:R_2 \\ {\textschwa:R_2} \end{matrix}\)} (7)
    (7) edge node{B:0:$L_2$} (4);
\end{tikzpicture}
\end{document}

TikZ 示例

在此示例中,我似乎不需要数学模式版本,但{\textnormal{\textschwa}}应该可以工作。如果您希望将其斜体化,可以尝试\textit{\textschwa}\textnormal{\itshape\textschwa}

相关内容