我想展示a = b .+ 1
但它显示为a = b. + 1
(移动.
到b旁边)。
答案1
\newcommand{\periodplus}{\mathbin{{.}{+}}}
\( a=b\periodplus 1 \)
TeX(以及 LaTeX)不会解释数学公式代码中的空格,而是依赖于其预定义的规则。对于 TeX a
,.
和b
表示“普通”符号和+
二进制运算符号。
连续的普通符号之间没有任何空格,而是组合
普通二元运算普通
将在二进制运算符号周围设置空格。
任何子公式都可以使用 转换为二进制运算符号\mathbin{<subformula>}
。我将两个字符都放在括号中,以确保它们在子公式中被解释为普通符号(无论如何它们都会被解释)。
当然可以说
\( a = b \mathbin{.+} 1 \)
每次都会出现这种情况,但是如果它出现多次,最好有一个命令来解决这个问题。
答案2
如果这是 MATLAB 代码,而不是常规数学,那么lstinline
来自列表包会很有用:
\documentclass{article}
\usepackage{listings,xcolor}
\lstset{language=MATLAB,basicstyle=\ttfamily,stringstyle=\color{red}}
%\lstset{showstringspaces=false} % uncomment this if you don't want spaces in
% strings to get their own symbols
\newcommand{\periodplus}{\mathbin{{.}{+}}}
\begin{document}
The line of MATLAB code \lstinline|a = b .+ 1| should not look like the math
equation \( a=b\periodplus 1 \). And there's more difference between
\lstinline|s = sprintf('x = %d\n',x)| and
\(s = sprintf('x = \%d\backslash{}n',x) \).
\end{document}
我之所以提到这一点只是因为我从未见过.+
数学运算符,但它在 MATLAB 中一直被使用。