我使用 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 选项。