我不太明白如何使用 将 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
有一个带星号的版本,并且可以接受可选参数。因此它不是完全可扩展的。因此它不能在\pdfstrcmp
KOMA-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}