我想定义一个开关,显示某些文本(包含公式)中的附加注释。如下所示,通过将 设置showString
为true
,效果很好。但是,当我将其设置为 时false
,句号前会有一些剩余空间。我尝试使用 来“忽略”它\ignorespaces
,但 仍然包含单词“text”后面的一个空格。如何避免这种情况?
一种解决方案是在#1
in之前插入一个空格\mystring
,并在示例中使用“This is just some text\mystring{here}”(从而删除命令前的空格)。有没有更优雅的解决方案?
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[american,ngerman]{babel}
\usepackage{ifthen}
\usepackage{amsmath}
\newboolean{showString}
\setboolean{showString}{false}% use true/false
\newcommand*{\mystring}[1]{\ifthenelse{\boolean{showString}}{\text{\bfseries #1}}{\ignorespaces}}
\begin{document}
This is just some text \mystring{here}.
\begin{align*}
a=b\tag*{\mystring{here}}
\end{align*}
\end{document}
答案1
我建议
\newcommand*{\mystring}[1]{%
\ifthenelse{\boolean{showString}}{\text{\bfseries #1}}{\ifhmode\unskip\fi}}