数学方程式中的直引号?

数学方程式中的直引号?

如何在数学等式中放置直引号?

我想使用直引号将使用 显示的字符串类型的数据括起来\mathtt。单引号或双引号对我来说都可以接受。

此代码

\documentclass{article}
\begin{document}

$fn(\mathtt{"a"})$

\end{document}

将生成花括号。

答案1

如果在数学公式中使用",则定义它以便它总是产生直引号是有意义的:

\documentclass{article}
\usepackage{amsmath}
\usepackage{textcomp}

\DeclareMathSymbol{\mathdblquotechar}{\mathalpha}{letters}{`"}

\newcommand{\mathdblquote}{\mathtt{\mathdblquotechar}}
\begingroup\lccode`~=`"\lowercase{\endgroup
  \let~\mathdblquote
}
\AtBeginDocument{\mathcode`"="8000 }

\begin{document}

$\mathit{fn}(\mathtt{"a"})$

$\mathit{fn}(\texttt{"a"})$

And $"a"$

\end{document}

当然,\texttt{"a"}会更容易一些。

在此处输入图片描述

对于单引号,最简单的策略是定义一个新的符号字体并使用 TS1 编码字体。但是我会使用反引号,以免'在数学中覆盖用法。

\documentclass{article}
\usepackage{amsmath}
%\usepackage{textcomp}

\DeclareSymbolFont{textcomp}{TS1}{\ttdefault}{m}{n}
\DeclareMathSymbol{`}{\mathord}{textcomp}{39}

\DeclareMathSymbol{\mathdblquotechar}{\mathalpha}{letters}{`"}

\newcommand{\mathdblquote}{\mathtt{\mathdblquotechar}}
\begingroup\lccode`~=`"\lowercase{\endgroup
  \let~\mathdblquote
}
\AtBeginDocument{\mathcode`"="8000 }

\begin{document}

$\mathit{fn}(\mathtt{"a"})$ and $\mathit{fn}(\mathtt{`a`})$

$\mathit{fn}(\texttt{"a"})$ and $\mathit{fn}(\texttt{'a'})$

And $"a"$ and $`a`$

\end{document}

在此处输入图片描述

请注意,这样\texttt做会出错。

答案2

您可以将引号声明为像字符一样的变量,但如果在 \mathXX-fonts 之外使用它们,则会产生副作用:

\documentclass{article}

\DeclareMathSymbol{"}{\mathalpha}{letters}{`"}
\begin{document}

$"a" \quad \mathtt{"a"}$

\end{document}

在此处输入图片描述

相关内容