1simple_macro.texi(,2) 2simple_macro.texi(,3) @node Top 3simple_macro.texi(,4) @top Basic macro calls 4simple_macro.texi(,5) 5simple_macro.texi(,6) Define a simple macro 6simple_macro.texi(,7) @example 7simple_macro.texi(,8) @@macro macro1 @{arg1, arg2 @} 8simple_macro.texi(,9) result: @@emph@{\arg1\@} protected \\ -> \\arg1\\ @@emp@{\arg2\@} 9simple_macro.texi(,10) @@end macro 10simple_macro.texi(,11) @end example 11simple_macro.texi(,12) 12simple_macro.texi(,13) before macro @macro macro1 { arg1 , arg2 } 13simple_macro.texi(,14) result: @emph{\arg1\} protected \\ -> \\arg1\\ @emph{\arg2\} 14simple_macro.texi(,15) @end macro after end macro 15simple_macro.texi(,16) 16simple_macro.texi(,17) Calling (normal) 17simple_macro.texi(,18) @example 18simple_macro.texi(,19) the @@macro1 @{ @@samp@{f\irst arg@}, second arg @} after macro 19simple_macro.texi(,20) @end example 20simple_macro.texi(,21) ================================== 21simple_macro.texi(,22) 22simple_macro.texi(macro1,23) the result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{second arg } after macro 23simple_macro.texi(,24) 24simple_macro.texi(,25) ----------------------------------- 25simple_macro.texi(,26) 26simple_macro.texi(,27) the result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{second arg } after macro 27simple_macro.texi(,28) 28simple_macro.texi(,29) ==================================== 29simple_macro.texi(,30) 30simple_macro.texi(,31) Calling (one arg) 31simple_macro.texi(,32) @example 32simple_macro.texi(,33) @@macro1 @{ @@samp@{f\irst arg@}@} 33simple_macro.texi(,34) @end example 34simple_macro.texi(,35) ================================== 35simple_macro.texi(,36) 36simple_macro.texi(macro1,37) result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{} 37simple_macro.texi(,38) 38simple_macro.texi(,39) ----------------------------------- 39simple_macro.texi(,40) 40simple_macro.texi(,41) result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{} 41simple_macro.texi(,42) 42simple_macro.texi(,43) ==================================== 43simple_macro.texi(,44) 44simple_macro.texi(,45) Calling (no args) 45simple_macro.texi(,46) @example 46simple_macro.texi(,47) @@macro1 @@samp@{f\irst arg@}, second arg 47simple_macro.texi(,48) @end example 48simple_macro.texi(,49) ================================== 49simple_macro.texi(,50) 50simple_macro.texi(macro1,51) result: @emph{} protected \ -> \arg1\ @emph{} @samp{f\irst arg}, second arg 51simple_macro.texi(,52) 52simple_macro.texi(,53) ----------------------------------- 53simple_macro.texi(,54) 54simple_macro.texi(,55) result: @emph{} protected \ -> \arg1\ @emph{} @samp{f\irst arg}, second arg 55simple_macro.texi(,56) 56simple_macro.texi(,57) ==================================== 57simple_macro.texi(,58) 58simple_macro.texi(,60) Calling (three args) 59simple_macro.texi(,61) @example 60simple_macro.texi(,62) @@macro1 @{ @@samp@{f\irst arg@}, second arg, third arg@} 61simple_macro.texi(,63) @end example 62simple_macro.texi(,64) ================================== 63simple_macro.texi(,65) 64simple_macro.texi(macro1,66) result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{second arg} 65simple_macro.texi(,67) 66simple_macro.texi(,68) ----------------------------------- 67simple_macro.texi(,69) 68simple_macro.texi(,70) result: @emph{@samp{first arg}} protected \ -> \arg1\ @emph{second arg} 69simple_macro.texi(,71) 70simple_macro.texi(,72) ==================================== 71simple_macro.texi(,74) 72simple_macro.texi(,75) define a macro with one arg 73simple_macro.texi(,76) @example 74simple_macro.texi(,77) @@macro macro2 @{ arg @} 75simple_macro.texi(,78) we get \arg\ and another \arg\ 76simple_macro.texi(,79) and a last one on another line \arg\ 77simple_macro.texi(,80) 78simple_macro.texi(,81) and a last in another paragraph 79simple_macro.texi(,82) @@end macro 80simple_macro.texi(,83) @end example 81simple_macro.texi(,84) 82simple_macro.texi(,85) @macro macro2 { arg } 83simple_macro.texi(,86) we get \arg\ and another \arg\ 84simple_macro.texi(,87) and another one on another line \arg\ 85simple_macro.texi(,88) 86simple_macro.texi(,89) and a last in another paragraph 87simple_macro.texi(,90) @end macro 88simple_macro.texi(,91) 89simple_macro.texi(,92) Calling 90simple_macro.texi(,93) @example 91simple_macro.texi(,94) @@macro2 @{ arg, comma \, @} 92simple_macro.texi(,95) @end example 93simple_macro.texi(,96) ================================== 94simple_macro.texi(,97) 95simple_macro.texi(macro2,98) we get arg, comma , and another arg, comma , 96simple_macro.texi(macro2,98) and another one on another line arg, comma , 97simple_macro.texi(macro2,98) 98simple_macro.texi(macro2,98) and a last in another paragraph 99simple_macro.texi(,99) 100simple_macro.texi(,100) ----------------------------------- 101simple_macro.texi(,101) 102simple_macro.texi(,102) we get arg, comma , and another arg, comma , 103simple_macro.texi(,103) and another one another line arg, comma , 104simple_macro.texi(,104) 105simple_macro.texi(,105) and a last in another paragraph 106simple_macro.texi(,106) 107simple_macro.texi(,107) ================================== 108simple_macro.texi(,108) 109simple_macro.texi(,109) Calling 110simple_macro.texi(,110) @example 111simple_macro.texi(,111) @@macro2 arg, comma \, 112simple_macro.texi(,112) @end example 113simple_macro.texi(,113) ================================== 114simple_macro.texi(,114) 115simple_macro.texi(macro2,115) we get arg, comma \, and another arg, comma \, 116simple_macro.texi(macro2,115) and another one on another line arg, comma \, 117simple_macro.texi(macro2,115) 118simple_macro.texi(macro2,115) and a last in another paragraph 119simple_macro.texi(,116) 120simple_macro.texi(,117) ----------------------------------- 121simple_macro.texi(,118) 122simple_macro.texi(,119) we get arg, comma \, and another arg, comma \, 123simple_macro.texi(,120) and another one on another line arg, comma \, 124simple_macro.texi(,121) 125simple_macro.texi(,122) and a last in another paragraph 126simple_macro.texi(,123) 127simple_macro.texi(,124) ================================== 128simple_macro.texi(,125) 129simple_macro.texi(,126) 130simple_macro.texi(,127) @macro ab 131simple_macro.texi(,128) a 132simple_macro.texi(,129) 133simple_macro.texi(,130) b 134simple_macro.texi(,131) @end macro 135simple_macro.texi(,132) 136simple_macro.texi(,133) now @@set comma , 137simple_macro.texi(,134) @set comma , 138simple_macro.texi(,135) 139simple_macro.texi(,136) @@set flagab @@ab 140simple_macro.texi(,137) @set flagab @ab 141simple_macro.texi(,138) 142simple_macro.texi(,139) the values: 143simple_macro.texi(,140) 144simple_macro.texi(,141) ====================================== 145simple_macro.texi(,142) 146simple_macro.texi(ab,143) flagab: a 147simple_macro.texi(ab,143) 148simple_macro.texi(ab,143) b 149simple_macro.texi(,144) 150simple_macro.texi(,145) -------------------------------------- 151simple_macro.texi(,146) 152simple_macro.texi(,147) makeinfo result (the macro in set is expanded and all the resulting lines 153simple_macro.texi(,148) are replaced): 154simple_macro.texi(,149) 155simple_macro.texi(,150) flagab: a 156simple_macro.texi(,151) 157simple_macro.texi(,152) b 158simple_macro.texi(,153) 159simple_macro.texi(,154) ====================================== 160simple_macro.texi(,155) 161simple_macro.texi(,156) comma: , 162simple_macro.texi(,157) 163simple_macro.texi(,158) Calling macro1 with value 164simple_macro.texi(,159) @example 165simple_macro.texi(,160) @@macro1 @{ arg1 @@value@{comma@} arg2 @} 166simple_macro.texi(,161) @end example 167simple_macro.texi(,162) ======================================= 168simple_macro.texi(,163) 169simple_macro.texi(macro1,164) result: @emph{arg1 , arg2 } protected \ -> \arg1\ @emph{} 170simple_macro.texi(,165) 171simple_macro.texi(,166) --------------------------------------- 172simple_macro.texi(,167) 173simple_macro.texi(,168) makeinfo result (the comma don't separate args ; the value is expanded after 174simple_macro.texi(,169) arguments parsing): 175simple_macro.texi(,170) 176simple_macro.texi(,171) result: @emph{arg1 , arg2 } protected \ -> \arg1\ @emph{} 177simple_macro.texi(,172) 178simple_macro.texi(,173) ======================================= 179simple_macro.texi(,174) 180simple_macro.texi(,175) In verbatim 181simple_macro.texi(,176) @verbatim 182simple_macro.texi(,177) comma: @value{comma} 183simple_macro.texi(,178) @macro1{ bidule, truc} 184simple_macro.texi(,179) @end verbatim 185simple_macro.texi(,180) 186simple_macro.texi(,181) @set argument arg 187simple_macro.texi(,182) @set bodyarg \arg\ 188simple_macro.texi(,183) 189simple_macro.texi(,184) Define macro 190simple_macro.texi(,185) @example 191simple_macro.texi(,186) @@macro testvaluebody @{ arg @} 192simple_macro.texi(,187) result: @@emph@{\@@value@{bodyarg@}\ @} 193simple_macro.texi(,188) @@end macro 194simple_macro.texi(,189) @end example 195simple_macro.texi(,190) 196simple_macro.texi(,191) @macro testvaluebody { arg } 197simple_macro.texi(,192) result: @emph{\@value{bodyarg}\ } 198simple_macro.texi(,193) @end macro 199simple_macro.texi(,194) 200simple_macro.texi(,195) ================================== 201simple_macro.texi(,196) 202simple_macro.texi(testvaluebody,197) result: @emph{\\arg\ } 203simple_macro.texi(,198) 204simple_macro.texi(,199) ---------------------------------- 205simple_macro.texi(,200) 206simple_macro.texi(,201) makeinfo result (according to error message, the value isn't expanded 207simple_macro.texi(,202) when the body is expanded; it is kept, but the second \ isn't): 208simple_macro.texi(,203) 209simple_macro.texi(,204) result: @emph{\\arg\ } 210simple_macro.texi(,205) 211simple_macro.texi(,206) ================================== 212simple_macro.texi(,207) 213simple_macro.texi(,208) Define macro 214simple_macro.texi(,209) @example 215simple_macro.texi(,210) @@macro testvalue @{ arg , the@@value@{argument@} @} 216simple_macro.texi(,211) result: @@emph@{\arg\@} the \the\ thearg \thearg\ with value \the@@value@{argument@}\ 217simple_macro.texi(,212) @@end macro 218simple_macro.texi(,213) @end example 219simple_macro.texi(,214) 220simple_macro.texi(,215) @macro testvalue { arg , the@value{argument} } 221simple_macro.texi(,216) result: @emph{\arg\} the \the\ thearg \thearg\ with value \the@value{argument}\ 222simple_macro.texi(,217) @end macro 223simple_macro.texi(,218) 224simple_macro.texi(,219) ================================== 225simple_macro.texi(,220) 226simple_macro.texi(testvalue,221) result: @emph{macro_arg1} the \the thearg \thearg with value \thearg 227simple_macro.texi(,222) 228simple_macro.texi(,223) ---------------------------------- 229simple_macro.texi(,224) 230simple_macro.texi(,225) makeinfo (breaks) result: 231simple_macro.texi(,226) 232simple_macro.texi(,227) result: @emph{macro_arg1} the \the thearg \thearg with value \thearg 233simple_macro.texi(,228) 234simple_macro.texi(,229) ================================== 235simple_macro.texi(,230) 236simple_macro.texi(,231) Define macro without arg 237simple_macro.texi(,232) @example 238simple_macro.texi(,233) @@macro test1 239simple_macro.texi(,234) test1 240simple_macro.texi(,235) @@end macro 241simple_macro.texi(,236) @end example 242simple_macro.texi(,237) 243simple_macro.texi(,238) @macro test1 244simple_macro.texi(,239) test1 245simple_macro.texi(,240) @end macro 246simple_macro.texi(,241) 247simple_macro.texi(,242) Call with @{@}: 248simple_macro.texi(,243) 249simple_macro.texi(,244) ================================== 250simple_macro.texi(,245) 251simple_macro.texi(test1,246) test1 abc 252simple_macro.texi(,247) 253simple_macro.texi(,248) ---------------------------------- 254simple_macro.texi(,249) 255simple_macro.texi(,250) test1 abc 256simple_macro.texi(,251) 257simple_macro.texi(,252) ================================== 258simple_macro.texi(,253) 259simple_macro.texi(,254) Call with something on the line 260simple_macro.texi(,255) 261simple_macro.texi(,256) ================================== 262simple_macro.texi(,257) 263simple_macro.texi(test1,258) test1 abc 264simple_macro.texi(,259) 265simple_macro.texi(,260) ---------------------------------- 266simple_macro.texi(,261) 267simple_macro.texi(,262) test1 abc 268simple_macro.texi(,263) 269simple_macro.texi(,264) ================================== 270simple_macro.texi(,265) 271simple_macro.texi(,266) An empty set value 272simple_macro.texi(,267) 273simple_macro.texi(,268) @set myspace 274simple_macro.texi(,269) 275simple_macro.texi(,270) 1 1 276simple_macro.texi(,271) 277simple_macro.texi(,272) @contents 278simple_macro.texi(,273) @bye 279