4
我花了一些時間試圖編寫一個'助手'宏來測試新值的參數,否則使用現有值 - 所有參數位置都存在默認值。TeX edef宏藍調
我希望能夠寫:
\foo{left}{nil}{}{20pt}
,這樣第二個參數將利用其目前的價值,但第三個值將是值空字符串。我想用符號:
\edef\pA{\isnil{#1}{\pA){#1}} % one for each parameter
我定義\ isnil像這樣:
\def\nil{nil}
\def\isnil#1#2#3{%
\edef\nilTest{#1}%
\ifx\nilTest\nil#2\else#3\fi
}
但是當我試圖運行它,TeX的抱怨\ nilTest是一個未定義的控制序列。 當然,但我希望\ pA保存一個值,而不是一個值的配方,所以它必須是\ edef,這意味着所有的宏測試都會被擴展,但\ edef不會保護\ nilTest - 這是一個使用\ noexpand的地方 - 這對我來說似乎不起作用。
編輯:\ CS的名稱沒有數字(是的,我知道。)