当部分为空时隐藏部分标题

当部分为空时隐藏部分标题

我创建了一个这样的宏:

\newcommand{\showsection}[2]{
    \ifstrequal{#2}{}{}{\section{#1} #2}
}

在文档中应该这样使用:

\showsection{Books}{
    Do you know any good books?
}

如果#2为空,如下面这种情况,则不会显示部分标题:

\showsection{Books}{

}

不幸的是,里面的一些宏有时会显示为空白,但不知何故却有东西穿过了。也许是多余的空格?看不到任何文字。我把%放在里面的每一行宏后面。在这种情况下,我怎样才能让章节标题消失?

答案1

开头后面有一个行尾字符{,导致出现空格。最好检查参数是否为单个空格,而不是为空。您可以自己在参数中添加一个空格,以确保测试对于真正的空内容为真。

您还应该在宏定义中的%任何位置{}行末添加。

\newcommand{\showsection}[2]{%
    \ifstrequal{ #2}{ }{}{\section{#1} #2}%
}

相关内容