我想在数学模式中生成一个公式,如下所示
\pi_{film_title}(\sigma_{release_year > 2006}(film))
其中film_title
,,release_year
和film
是逐字逐句的,到目前为止,我一直在使用该alltt
包,但广受好评的包\sb
只会在通常的数学模式字体中产生下标。
有什么建议吗?
答案1
您应该能够使用\_
它来获取_
(实际外观取决于字体,除非您重新定义\_
为使用规则,但无论哪种方式标记都是:
\pi_{\mathtt{film\_title}}
答案2
我不会alltt
为此使用环境。最简单的方法是放弃_
下标字符并使用\sb
其代替:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\AtBeginDocument{\catcode`\_=12 \mathcode`\_=\string"715F }
\DeclareMathAlphabet{\mathtt}{\encodingdefault}{\ttdefault}{m}{n}
\begin{document}
\(\pi\sb\texttt{film_title}(\sigma\sb\texttt{release_year > 2006}(\texttt{film}))\)
\(\pi\sb\mathtt{film_title}(\sigma\sb\mathtt{release_year > 2006}(\mathtt{film}))\)
\end{document}
使用amsmath
和\texttt
或\mathtt
可确保下标的大小正确。您可以在此处看到结果:不同之处在于您对数学符号的处理方式:使用 ,\texttt
您将获得>
打字机类型的符号,并且保留空格;使用 ,\mathtt
您将获得>
普通数学字体的符号。
答案3
用于\( ... \)
内联数学模式
\begin{alltt}
\( \pi\sb{film_title}(\sigma\sb{release_year > 2006}(film)) \)
\end{alltt}
或者使用正确的字体大小设置
\documentclass{article}
\usepackage{alltt,amsmath}
\begin{document}
\begin{alltt}
\( \pi\sb{\text{film_title}}(\sigma\sb{\text{release_year > 2006}}(film)) \)
\end{alltt}
\end{document}
或者没有alltt
,然后像 David 建议的那样\_