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 simple_macro.texi(,13) @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 simple_macro.texi(macro1,23) 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(,74) 59simple_macro.texi(,75) define a macro with one arg 60simple_macro.texi(,76) @example 61simple_macro.texi(,77) @@macro macro2 @{ arg @} 62simple_macro.texi(,78) we get \arg\ and another \arg\ 63simple_macro.texi(,79) and a last one on another line \arg\ 64simple_macro.texi(,80) 65simple_macro.texi(,81) and a last in another paragraph 66simple_macro.texi(,82) @@end macro 67simple_macro.texi(,83) @end example 68simple_macro.texi(,84) 69simple_macro.texi(,85) @macro macro2 { arg } 70simple_macro.texi(,86) we get \arg\ and another \arg\ 71simple_macro.texi(,87) and another one on another line \arg\ 72simple_macro.texi(,88) 73simple_macro.texi(,89) and a last in another paragraph 74simple_macro.texi(,90) @end macro 75simple_macro.texi(,91) 76simple_macro.texi(,92) Calling 77simple_macro.texi(,93) @example 78simple_macro.texi(,94) @@macro2 @{ arg, comma \, @} 79simple_macro.texi(,95) @end example 80simple_macro.texi(,96) ================================== 81simple_macro.texi(,97) 82simple_macro.texi(macro2,98) we get arg, comma , and another arg, comma , 83simple_macro.texi(macro2,98) and another one on another line arg, comma , 84simple_macro.texi(macro2,98) 85simple_macro.texi(macro2,98) and a last in another paragraph 86simple_macro.texi(,99) 87simple_macro.texi(,100) ----------------------------------- 88simple_macro.texi(,101) 89simple_macro.texi(,102) we get arg, comma , and another arg, comma , 90simple_macro.texi(,103) and another one another line arg, comma , 91simple_macro.texi(,104) 92simple_macro.texi(,105) and a last in another paragraph 93simple_macro.texi(,106) 94simple_macro.texi(,107) ================================== 95simple_macro.texi(,108) 96simple_macro.texi(,109) Calling 97simple_macro.texi(,110) @example 98simple_macro.texi(,111) @@macro2 arg, comma \, 99simple_macro.texi(,112) @end example 100simple_macro.texi(,113) ================================== 101simple_macro.texi(,114) 102simple_macro.texi(macro2,115) we get arg, comma \, and another arg, comma \, 103simple_macro.texi(macro2,115) and another one on another line arg, comma \, 104simple_macro.texi(macro2,115) 105simple_macro.texi(macro2,115) and a last in another paragraph 106simple_macro.texi(,116) 107simple_macro.texi(,117) ----------------------------------- 108simple_macro.texi(,118) 109simple_macro.texi(,119) we get arg, comma \, and another arg, comma \, 110simple_macro.texi(,120) and another one on another line arg, comma \, 111simple_macro.texi(,121) 112simple_macro.texi(,122) and a last in another paragraph 113simple_macro.texi(,123) 114simple_macro.texi(,124) ================================== 115simple_macro.texi(,125) 116simple_macro.texi(,126) 117simple_macro.texi(,127) @macro ab 118simple_macro.texi(,128) a 119simple_macro.texi(,129) 120simple_macro.texi(,130) b 121simple_macro.texi(,131) @end macro 122simple_macro.texi(,132) 123simple_macro.texi(,133) now @@set comma , 124simple_macro.texi(,134) @set comma , 125simple_macro.texi(,135) 126simple_macro.texi(,136) @@set flagab @@ab 127simple_macro.texi(,137) @set flagab @ab 128simple_macro.texi(,138) 129simple_macro.texi(,139) the values: 130simple_macro.texi(,140) 131simple_macro.texi(,141) ====================================== 132simple_macro.texi(,142) 133simple_macro.texi(ab,143) flagab: simple_macro.texi(ab,143) a 134simple_macro.texi(ab,143) 135simple_macro.texi(ab,143) b 136simple_macro.texi(,144) 137simple_macro.texi(,145) -------------------------------------- 138simple_macro.texi(,146) 139simple_macro.texi(,147) makeinfo result (the macro in set is expanded and all the resulting lines 140simple_macro.texi(,148) are replaced): 141simple_macro.texi(,149) 142simple_macro.texi(,150) flagab: a 143simple_macro.texi(,151) 144simple_macro.texi(,152) b 145simple_macro.texi(,153) 146simple_macro.texi(,154) ====================================== 147simple_macro.texi(,155) 148simple_macro.texi(,156) comma: , 149simple_macro.texi(,157) 150simple_macro.texi(,158) Calling macro1 with value 151simple_macro.texi(,159) @example 152simple_macro.texi(,160) @@macro1 @{ arg1 @@value@{comma@} arg2 @} 153simple_macro.texi(,161) @end example 154simple_macro.texi(,162) ======================================= 155simple_macro.texi(,163) 156simple_macro.texi(macro1,164) result: @emph{arg1 , arg2 } protected \ -> \arg1\ @emph{} 157simple_macro.texi(,165) 158simple_macro.texi(,166) --------------------------------------- 159simple_macro.texi(,167) 160simple_macro.texi(,168) makeinfo result (the comma don't separate args ; the value is expanded after 161simple_macro.texi(,169) arguments parsing): 162simple_macro.texi(,170) 163simple_macro.texi(,171) result: @emph{arg1 , arg2 } protected \ -> \arg1\ @emph{} 164simple_macro.texi(,172) 165simple_macro.texi(,173) ======================================= 166simple_macro.texi(,174) 167simple_macro.texi(,175) In verbatim 168simple_macro.texi(,176) @verbatim 169simple_macro.texi(,177) comma: @value{comma} 170simple_macro.texi(,178) @macro1{ bidule, truc} 171simple_macro.texi(,179) @end verbatim 172simple_macro.texi(,180) 173simple_macro.texi(,181) @set argument arg 174simple_macro.texi(,182) @set bodyarg \arg\ 175simple_macro.texi(,183) 176simple_macro.texi(,184) Define macro 177simple_macro.texi(,185) @example 178simple_macro.texi(,186) @@macro testvaluebody @{ arg @} 179simple_macro.texi(,187) result: @@emph@{\@@value@{bodyarg@}\ @} 180simple_macro.texi(,188) @@end macro 181simple_macro.texi(,189) @end example 182simple_macro.texi(,190) 183simple_macro.texi(,191) @macro testvaluebody { arg } 184simple_macro.texi(,192) result: @emph{\@value{bodyarg}\ } 185simple_macro.texi(,193) @end macro 186simple_macro.texi(,194) 187simple_macro.texi(,195) ================================== 188simple_macro.texi(,196) 189simple_macro.texi(testvaluebody,197) result: @emph{\\arg\ } 190simple_macro.texi(,198) 191simple_macro.texi(,199) ---------------------------------- 192simple_macro.texi(,200) 193simple_macro.texi(,201) makeinfo result (according to error message, the value isn't expanded 194simple_macro.texi(,202) when the body is expanded; it is kept, but the second \ isn't): 195simple_macro.texi(,203) 196simple_macro.texi(,204) result: @emph{\\arg\ } 197simple_macro.texi(,205) 198simple_macro.texi(,206) ================================== 199simple_macro.texi(,207) 200simple_macro.texi(,208) Define macro 201simple_macro.texi(,209) @example 202simple_macro.texi(,210) @@macro testvalue @{ arg , the@@value@{argument@} @} 203simple_macro.texi(,211) result: @@emph@{\arg\@} the \the\ thearg \thearg\ with value \the@@value@{argument@}\ 204simple_macro.texi(,212) @@end macro 205simple_macro.texi(,213) @end example 206simple_macro.texi(,214) 207simple_macro.texi(,215) @macro testvalue { arg , the@value{argument} } 208simple_macro.texi(,216) result: @emph{\arg\} the \the\ thearg \thearg\ with value \the@value{argument}\ 209simple_macro.texi(,217) @end macro 210simple_macro.texi(,218) 211simple_macro.texi(,219) ================================== 212simple_macro.texi(,220) 213simple_macro.texi(testvalue,221) result: @emph{macro_arg1} the \the thearg \thearg with value \thearg 214simple_macro.texi(,222) 215simple_macro.texi(,223) ---------------------------------- 216simple_macro.texi(,224) 217simple_macro.texi(,225) makeinfo (breaks) result: 218simple_macro.texi(,226) 219simple_macro.texi(,227) result: @emph{macro_arg1} the \the thearg \thearg with value \thearg 220simple_macro.texi(,228) 221simple_macro.texi(,229) ================================== 222simple_macro.texi(,230) 223simple_macro.texi(,231) Define macro without arg 224simple_macro.texi(,232) @example 225simple_macro.texi(,233) @@macro test1 226simple_macro.texi(,234) test1 227simple_macro.texi(,235) @@end macro 228simple_macro.texi(,236) @end example 229simple_macro.texi(,237) 230simple_macro.texi(,238) @macro test1 231simple_macro.texi(,239) test1 232simple_macro.texi(,240) @end macro 233simple_macro.texi(,241) 234simple_macro.texi(,242) Call with @{@}: 235simple_macro.texi(,243) 236simple_macro.texi(,244) ================================== 237simple_macro.texi(,245) 238simple_macro.texi(test1,246) test1 abc 239simple_macro.texi(,247) 240simple_macro.texi(,248) ---------------------------------- 241simple_macro.texi(,249) 242simple_macro.texi(,250) test1 abc 243simple_macro.texi(,251) 244simple_macro.texi(,252) ================================== 245simple_macro.texi(,253) 246simple_macro.texi(,254) Call with something on the line 247simple_macro.texi(,255) 248simple_macro.texi(,256) ================================== 249simple_macro.texi(,257) 250simple_macro.texi(test1,258) test1 abc 251simple_macro.texi(,259) 252simple_macro.texi(,260) ---------------------------------- 253simple_macro.texi(,261) 254simple_macro.texi(,262) test1 abc 255simple_macro.texi(,263) 256simple_macro.texi(,264) ================================== 257simple_macro.texi(,265) 258simple_macro.texi(,266) An empty set value 259simple_macro.texi(,267) 260simple_macro.texi(,268) @set myspace 261simple_macro.texi(,269) 262simple_macro.texi(,270) 1 1 263simple_macro.texi(,271) 264simple_macro.texi(,272) @contents 265simple_macro.texi(,273) @bye 266