在数学模式中很容易找到如何正确嵌入文本的方法,但反过来却很难。这让我觉得,我的问题有点奇怪,或者没人把它当成问题。
我在方程式中使用了许多符号,在文本中也是如此。这就是为什么我创建了带有新命令的单独文件,例如:
\newcommand{\sabc}{A_{\mathrm{b}}^c}
\newcommand{\mabc}{$\sabc$}
以 开头的命令\s
用于方程式,\m
's 用于文本中,仅用于获取数学符号。我的问题始于第二个命令。当在文本中使用时,例如\mabc xyz
我的符号和 xyz 文本之间没有空格。可以这样解决:
\newcommand{\mabc}{$\sabc$~}
但是,如果使用逗号或点(例如\mabc, xyz
),符号和逗号之间就会出现不必要的空格。是的,~
每次需要时我都可以使用字符,但是有没有办法\mabs
像我想要的那样处理命令后的正常空格?
PS 我也尝试过使用它\ensuremath
来简化我的命令(用一个命令而不是两个),但最终得到的结果相同。
我的序言:
\documentclass[twoside,titlepage]{article}
\usepackage[polish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[a4paper,inner=3.5cm,outer=2.0cm,top=2.0cm,bottom=2.0cm]{geometry}
\usepackage{fancyhdr}
\usepackage{multicol}
\usepackage[titletoc,title]{appendix}
\usepackage{enumitem}
\usepackage[table]{xcolor}
\usepackage{tabulary}
\usepackage{multirow}
\usepackage[fleqn]{mathtools}
\usepackage{relsize}
\usepackage[%
% font=small,
labelfont=bf,
% tableposition=top
]{caption}
\usepackage{subcaption}
\input{commands} % that's my file with additional commands, as described above
答案1
在我看来,使用两个不同的命令不会给你带来任何好处:只需说
This is some text with \(\sabc\) and a formula \(\sabc+x\).
如果你想节省一些击键,请使用
This is some text with $\sabc$ and a formula $\sabc+x$.
数学应该总是数学。使用两个命令,您几乎肯定会使用错误的命令,并且编辑会很痛苦。
另一种方法可能是
\usepackage{xspace}
\newcommand{\sabc}{\ensuremath{A_{\mathrm{b}}^c}\xspace}
在文本和数学中都使用\sabc
。但是使用前一种方法,您将获得正确的语法突出显示的好处(如果您的编辑器可以做到这一点)。
答案2
在我看来,您提到的最大问题是:
我的符号和 xyz 文本之间没有空格
当您输入 时\mabc xyz
。
问题是,当 LaTeX 解析文本并找到宏时\mabc
,它会按照惯例忽略尾随空格。为了防止这种情况,您必须提供左括号和右括号,如下所示,以便不会忽略尾随空格:
\mabc{} xyz