下列的先前这个问题,我的缩写词中的模式与我在 中定义的模式相同\newcommand\BS
。
但是,当我\ensuremath
在没有数学环境的情况下使用和输入我的首字母缩略词时,前后会出现明显的额外空格,而如果我将其置于数学模式下则没问题。
这与何时不应使用 \ensuremath 进行数学宏但即使我听从建议,{ }
在里面放一些额外的\ensuremath{}
空间来包围我的表情,我仍然会得到额外的空间。
注意:如果您告诉我“那么就将您的首字母缩略词放入数学模式中”,我会回答“好吧,我必须在我的 1500 页中这样做,那么我该如何避免呢?:)“并在文本中获得适当的间距?
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{acro}
%\usepackage{xspace}
% with extra {} inside \ensuremath{ }
\newcommand{\BS}[2]{ \ensuremath{ { \mathcal{#1}_{\mathcal{#2} } } } }
\DeclareAcronym{ki}{
short= \BS{K}{I},
long = Knock-In
}
\begin{document}
When I use \acs{ki} in text there is obviously extra space before and after my acronym.
When I use $\acs{ki}$ in math there is the right space before and after my acronym.
\printacronyms
\end{document}
答案1
您负责处理这些空格。我用!
有效空格和x
被忽略的空格来表示,因为它们是在数学模式下处理的:
\newcommand{\BS}[2]{ \ensuremath{ { \mathcal{#1}_{\mathcal{#2} } } } }
! x x x x x !
不要\ensuremath
在 的定义中使用 :与更清晰、更语义化的 相比,这样\BS
做对键入没有任何好处。还有无用的括号,最好删除。some \BS{K}{I} text
some $\BS{K}{I}$ text
\documentclass[12pt,a4paper]{article}
\usepackage{acro}
\newcommand{\BS}[2]{\mathcal{#1}_{\mathcal{#2}}}
\DeclareAcronym{ki}{
short= \ensuremath{\BS{K}{I}},
long = Knock-In
}
\begin{document}
When I use \acs{ki} in text
When I use $\acs{ki}$ in math
\printacronyms
\end{document}