gpt4 book ai didi

LaTeX\newcommand 默认参数 : is empty?

转载 作者:行者123 更新时间:2023-12-03 07:48:10 26 4
gpt4 key购买 nike

我正在尝试编写一个简单的示例命令,在没有参数的情况下不打印任何内容,但如果有参数,它会用一些东西包围它。

我读到默认值应该是 \@empty 并且简单的 \ifx\@empty#1 条件应该可以完成这项工作:

\newcommand{\optarg}[1][\@empty]{%
\ifx\@empty#1 {} \else {(((#1)))} \fi
}

\optarg % (((empty)))
\optarg{} % (((empty)))
\optarg{test} % (((empty))) test

出于某种原因,后三个命令都打印 empty 单词,我希望前两个命令不打印任何内容,最后一个命令打印 (((test))).

我正在使用 TeXLive/Ubuntu。一个想法?

最佳答案

尝试以下测试:

\documentclass{article}

\usepackage{xifthen}% provides \isempty test

\newcommand{\optarg}[1][]{%
\ifthenelse{\isempty{#1}}%
{}% if #1 is empty
{(((#1)))}% if #1 is not empty
}

\begin{document}

Testing \verb|\optarg|: \optarg% prints nothing

Testing \verb|\optarg[]|: \optarg[]% prints nothing

Testing \verb|\optarg[test]|: \optarg[test]% prints (((test)))

\end{document}

xifthen package提供 \ifthenelse 构造和 \isempty 测试。

另一个选择是使用 ifmtarg 包(请参阅 ifmtarg.sty file 获取文档)。

关于LaTeX\newcommand 默认参数 : is empty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2144176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com