如何在不使用 `{}` 的情况下保留命令后面的空格

如何在不使用 `{}` 的情况下保留命令后面的空格

我如何编写命令\mycommand,使得如果该命令后使用空格,则在其后面打印一个空格,如果没有使用空格,则不打印空格(例如,使用标点符号时)没有在命令使用后使用{}。我知道这有点违反 LaTeX 语法的工作方式,但也许有办法解决这个问题。

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\newcommand{\mycommand}[1][i]{\ensuremath{\frac{#1}{2}}}
\begin{document}
This \mycommand[1] is \mycommand, \mycommand and \mycommand.
\end{document}

我明白了

在此处输入图片描述

但我想得到

在此处输入图片描述

而不必{}在第三个后面添加\mycommand

答案1

xspace包正是您所需要的:

\documentclass{article}

\usepackage{xspace}
\newcommand{\mycommand}[1][i]{\ensuremath{\frac{#1}{2}}\xspace}

\begin{document}

This \mycommand[1] is \mycommand, \mycommand and \mycommand.

\end{document}

但另请参阅xspace 的缺点

相关内容