字符串的 If 条件

字符串的 If 条件

我使用 Python 代码替换{{ skill0 }}用户的输入。如果用户没有输入任何内容。我想忽略整个部分\cvtag{ {{ skill0 }} }。基本上我正在寻找一种方法来检查是否{{ skill0 }}包含任何文本。

这个想法看起来是这样的:

\if {{ skill0 }}
    \cvtag{ {{ skill0 }} }

以下是\cvtag命令:

\newcommand{\cvtag}[1]{%%
  \tikz[baseline]\node[anchor=base,draw=body!30,rounded corners,inner xsep=1ex,inner ysep =0.75ex,text height=1.5ex,text depth=.25ex]{#1};
}

最后是代码:

\cvtag{ {{ skill0 }} }

答案1

如果我理解正确的话,只有序列\cvtag{ {{ skill0 }} }(包括空格)应该不返回任何内容,而在任何其他情况下,您都希望返回\cvtag参数提供的值。

例如,您可以这样做:

\documentclass{article}
\usepackage{tikz}

\ExplSyntaxOn
\NewDocumentCommand{\cvtag}{ m }{%
    \str_if_eq:noTF { #1 } { \tl_to_str:n {~{{~skill0~}}~} } {} {
        \tikz[baseline]\node[anchor=base, draw=blue!30, rounded~corners, inner~xsep=1ex, inner~ysep=0.75ex, text~height=1.5ex, text~depth=.25ex]{#1};
    }%
}
\ExplSyntaxOff

\begin{document}

X\cvtag{skill0}X

X\cvtag{{{skill0}}}X

X\cvtag{ {{ skill0 }} }X

X\cvtag{something else}X

\end{document}

在此处输入图片描述

您还可以测试参数是否为空(即仅由空格或不包含任何内容),如下所示:

\documentclass{article}
\usepackage{tikz}

\ExplSyntaxOn
\NewDocumentCommand{\cvtag}{ m }{%
    \tl_if_blank:nTF { #1 } {} {
        \tikz[baseline]\node[anchor=base, draw=blue!30, rounded~corners, inner~xsep=1ex, inner~ysep=0.75ex, text~height=1.5ex, text~depth=.25ex]{#1};
    }%
}
\ExplSyntaxOff

\begin{document}

X\cvtag{skill0}X

X\cvtag{ {{ skill0 }} }X

X\cvtag{ }X

X\cvtag{something else}X

\end{document}

在此处输入图片描述


注意:在 expl3 环境中,您需要~在想要输入空格的任何地方使用。在这些示例中,字符串比较中以及 Ti 中都需要空格。Z 选项。

相关内容