如何在数学等式中放置直引号?
我想使用直引号将使用 显示的字符串类型的数据括起来\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
做会出错。