跳过可选参数后的空格

跳过可选参数后的空格

我有一个命令,其中第一个参数是可选的:

\documentclass{minimal}

\newcommand{\z}[2][]{\texttt{\underline{#1} #2}}

\begin{document} \noindent
  \z[First]{Second}\\
  \z{Only}
\end{document}

在此处输入图片描述

有没有办法避免在未指定时#1和之间的空格,以使其看起来像这样:#2#1

在此处输入图片描述

答案1

\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand\z{o m }{\texttt{\IfNoValueF{#1}{\underline{#1} }#2}}

\begin{document} \noindent
  \z[First]{Second}\\
  \z{Only}
\end{document}

在此处输入图片描述

答案2

etoolbox

\documentclass{minimal}
\usepackage{etoolbox}
\newcommand{\z}[2][]{\texttt{\ifblank{#1}{#2}{\underline{#1} #2}}}

\begin{document}

\noindent
\z[First]{Second}\\
\z{Only}

\end{document} 

在此处输入图片描述

相关内容