将 koma 变量与字符串进行比较

将 koma 变量与字符串进行比较

我不太明白如何使用 将 koma 变量与字符串进行比较\usekomavar{..}

我想根据第一个变量的值设置另一个 koma 变量。所以我想要像这样的东西

\newkomavar{xyz}
\newkomavar{abc}

\setkomavar{xyz}{yes}

\ifnum\pdfstrcmp{\usekomavar{xyz}}{yes}=0
   \setkomavar{abc}{yes}
\else
   \setkomavar{abc}{yeah}
\fi

有任何想法吗?

答案1

请注意,它\usekomavar有一个带星号的版本,并且可以接受可选参数。因此它不是完全可扩展的。因此它不能在\pdfstrcmpKOMA-script 命令内部使用\ifstr

我问过 Markus。可选参数可用于\MakeUppercase影响其参数内容(手册中有说明)的命令,也可用于这样的比较。

我将使用 KOMA-script 命令\ifstr进行比较:

\documentclass{scrlttr2}
\newkomavar{abc}
\newkomavar{xyz}
\setkomavar{xyz}{yes}

\begin{document}
\usekomavar[\ifstr]{xyz}{yes}
  {\setkomavar{abc}{yes}}% true part
  {\setkomavar{abc}{yeah}}% false part
\usekomavar{abc}

\bigskip
\usekomavar[\ifstr]{xyz}{other}
  {\setkomavar{abc}{true}}% true part
  {\setkomavar{abc}{false}}% false part
\textbf{\usekomavar[\MakeUppercase]{abc}}
\end{document}

结果:

在此处输入图片描述

但您将获得相同的结果\ifnum\pdfstrcmp

\documentclass{scrlttr2}
\newkomavar{abc}
\newkomavar{xyz}
\setkomavar{xyz}{yes}

\begin{document}
\usekomavar[\ifnum\pdfstrcmp]{xyz}{yes}=0
   \setkomavar{abc}{yes}
\else
   \setkomavar{abc}{yeah}
\fi
\usekomavar{abc}

\bigskip
\usekomavar[\ifnum\pdfstrcmp]{xyz}{other}=0
   \setkomavar{abc}{true}
\else
   \setkomavar{abc}{false}
\fi
\textbf{\usekomavar[\MakeUppercase]{abc}}
\end{document}

相关内容