با سلام
در متن زیر
\documentclass{article}
\begin{document}
\def\AddText(#1,#2)#3{\put(#1,#2){#3}}
\fbox{
\begin{picture}(100,100)
\AddText(10, 10){Torabi}
\AddText(10, 20){Farschad}
\end{picture}
}
\end{document}
یک ماکرو نوشتم که در یک محیط شکل تعداد متن را در جاهای مختلف قرار میدهد. بنابه دلایلی علاقهمند هستم که تمامی متنهایی که میخواهم در شکل درج کنم در یک ماکرو قرار بدم و فقط با یک دستور آنرا درون محیط درج کنم. ساعتهای زیادی کار کردم و روشهای مختلفی را پیش گرفتم ولی موفق نشدم. فکر میکنم که مشکلم از فهم اشتباه در مورد expansion یا بسط ماکروهاست. به عنوان مثال میتوان ماکروی زیر را درنظر گرفت:
\documentclass{article}
\begin{document}
\def\TotalText{}
\def\AddText(#1,#2)#3{\def\CurrentText{\put(#1,#2){#3}}%
\xdef\TotalText{\TotalText \CurrentText}}
\fbox{
\AddText(10,20){Farschad}
\AddText(10,10){Torabi}
\begin{picture}(100,100)
\TotalText
\end{picture}
}
\end{document}
که در آن با هر بار فراخوانی \AddText
باید یک متن به ماکروی \TotalText
اضافه شود. ولی هنگام اجرای برنامه در یک حلقه گیر کرده و کار به خوبی انجام نمیشود.
لطفا مرا راهنمایی بفرمایید.
با تشکر