<div dir="ltr">Ok. putting it anywhere inside \@iiiminipage, make it work.<br><br><div class="gmail_quote">On Tue, Jun 21, 2011 at 7:26 PM, Vafa Khalighi <span dir="ltr"><<a href="mailto:vafa018@gmail.com">vafa018@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr">Thanks but that makes no change either. It still returns "false".<div><div></div><div class="h5">
<br><br><div class="gmail_quote">On Tue, Jun 21, 2011 at 6:53 PM, Uwe Lueck <span dir="ltr"><<a href="mailto:uwe.lueck@web.de" target="_blank">uwe.lueck@web.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">"Vafa Khalighi" <<a href="mailto:vafa018@gmail.com" target="_blank">vafa018@gmail.com</a>> wrote <a href="tel:21.06.2011%2009" value="+12106201109" target="_blank">21.06.2011 09</a>:49:42:<br>


<div><div></div><div>> The minipage environment accepts b, t, and few others as the position of the minipage.<br>
> I want \test macro return "true" if it is used inside minipage with b position<br>
> and otherwise return "false". I do not know if there is a better way but this is what I did:<br>
><br>
><br>
> \documentclass{article}<br>
> \makeatletter<br>
> \newif\if@test<br>
> \long\def\@iiiparbox#1#2[#3]#4#5{%<br>
>   \leavevmode<br>
>   \@pboxswfalse<br>
>   \setlength\@tempdima{#4}%<br>
>   \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}%<br>
>     \ifx\relax#2\else<br>
>       \setlength\@tempdimb{#2}%<br>
>       \edef\@parboxto{to\the\@tempdimb}%<br>
>     \fi<br>
>     \if#1b\@testtrue\vbox%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% this is where I made \if@test true<br>
>     \else\if #1t\vtop<br>
>     \else\ifmmode\vcenter<br>
>     \else\@pboxswtrue $\vcenter<br>
>     \fi\fi\fi<br>
>     \@parboxto{\let\hss\vss\let\unhbox\unvbox<br>
>        \csname bm@#3\endcsname}%<br>
>     \if@pboxsw \m@th$\fi<br>
>   \@end@tempboxa}<br>
> \def\test{\if@test true\else false\fi}<br>
> \makeatother<br>
> \begin{document}<br>
> \begin{minipage}[b]{0.5\textwidth}<br>
> \test<br>
> \end{minipage}<br>
> \end{document}<br>
><br>
> But it returns "false". Why is this?<br>
<br>
</div></div>Probably because you issue \@testtrue *after* the content of the box<br>
-- #5 -- is evaluated.<br>
<div><br>
> how can I fix it? Is it a better way for doing what I want to do?<br>
<br>
</div>I would remove your \@testtrue and add \if#1b\@testtrue\fi<br>
right to the left of #5 (in the replacement text).<br>
<br>
HTH -- Uwe.<br>
</blockquote></div><br></div></div></div>
</blockquote></div><br></div>