<div dir="ltr"><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
<br>
</div>Essentially the same here, I&#39;m fine with using tex macros for<br>
typesetting, I even find it a very powerful feature of tex, but using it<br>
to string manipulation or implementing algorithms etc. is something I&#39;d<br>
never do in my right mind. Tex macro as an interface layer is fine too,<br>
but I&#39;d rather strip it to the most minimum required.<br>
<div><div></div><div class="h5"><br></div></div></blockquote></div><br>We all know page breaking in TeX in unpredicted and any algorithm that has to deal with page breaking is hard to implement even in lua, right? now,  bidi has a feature that has to do with page breaking and it is automatic footnote rule. If the first footnote in a page is RTL, the footnote rule is on right hand side, no matter what other footnotes on that specific page are and if the first footnote in a page is LTR, the footnote rule on that specfic page is on the left hand side, no matter what other footnotes on that page are. bidi implements this and  you always get the correct footnote rule, there is no way that you get the wrong footnote rule. and this only requires one run of latex. but there are similar packages which are disappointed of doing this and requires two run of latex and they use a very bad approach and that is writing to .aux. bidi implementation of automatic footnote rule is a good example of how complex algorithms can be done by TeX macros. If interested, look at footnote-bidi.def for implementation.<br clear="all">
<br>-- <br>Best wishes,<br>Vafa Khalighi<br>
</div>