<div dir="ltr">The minipage environment accepts b, t, and few others as the position of the minipage. I want \test macro return "true" if it is used inside minipage with b position 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? how can I fix it? Is it a better way for doing what I want to do?<br>
<br>Thanks<br></div>