LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Andrew Parsloe <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Mon, 16 Jan 2017 23:23:43 +1300
text/plain (73 lines)
On 16/01/2017 9:36 p.m., Joseph Wright wrote:
> On 16/01/2017 08:19, David Carlisle wrote:
>> On 16/01/2017 00:58, Andrew Parsloe wrote:
>>> Only recently have I learnt to distinguish inline from display-style
>>> maths mode by using \mode_if_inner:TF. It would be helpful for those of
>>> us who come to expl3 programming without a good prior grounding in TeX
>>> if a comment to this effect could be added to the documentation
>>> (interface3.pdf).
>>> Andrew
>> \mode_if_inner:TF is a wrapper around \ifinner so can't be used to
>> distinguish inline from display. In fact in math \ifinner can't be used
>> to detect much useful at all, the points at which tex is or is not in
>> inner math mode are not usually interesting. (Unlike testing for inner
>> when in vertical mode that tells you if you are in a box or on the main
>> vertical list)
> Indeed, one cannot be sure that display math mode will actually be used
> for any 'display' anyway. See for example the strategy used by breqn:
> all typesetting is done in inline math mode, using \displaystyle where
> appropriate. (Display math mode is used only for obtaining the length of
> the line of text immediately preceding the 'display'.)
> Almost certainly you want to use \mathchoice (currently there is no
> interface for this in expl3 beyond the primitive), though you might also
> look at LuaTeX's additional primitives in this area if you are
> considering a 'LuaTeX-only' solution.
> Joseph
I had forgotten \mathchoice.

I'm not qualified to argue about the use of \mode_if_inner:TF beyond 
saying that it has correctly worked to date. *All* the cases of interest 
to me are of the following kind. #1 is a token list digestible by 
\fp_eval:n (usually with more * and parentheses than are strictly 
needed); #2 is a token list consisting of digits and a decimal point (in 
fact the rounded decimal number resulting from the fp evaluation of #1).



\DeclareDocumentCommand \testinner { m m }
       { \mbox{#1} \to\quad { #2 } }
	\mbox{#1} & \to \\
	  & { #2 }  \\


This is an inline $ \testinner { 2*sin(pi/12)*cos(pi/12) } 
{2\sin(\pi/12)\cos(\pi/12)=0.5 } $ expression.

This is a \[ \testinner { 2*sin(pi/12)*cos(pi/12) } { 
2\sin(\pi/12)\cos(\pi/12)=0.5 } \]display-style expression.


This email has been checked for viruses by Avast antivirus software.