我如何编写命令\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 的缺点。