Saw people having this question but couldn’t find an answer so thought I would post it here. One guy has even written a whole package/preamble to address it :’(
If you need to be very clear about the ordering of indices on a matrix/tensor (e.g which one comes first to denote rows vs. columns), you can use the following trick: write the first index (if you want), and then insert an “invisible character” by entering a comma and then pressing tab twice. Then, you can use the ^ or _ keys to put a sub/superscript on that space, and it will have the proper spacing. Then you can repeat by adding another invisible character and putting an additional sub/superscript.
As an example, let’s say I want to write a four-index tensor “R” with the first index downstairs, the second upstairs, the third downstairs, and the fourth upstairs, I would type:
R , [tab] [tab] _\mu , [tab] [tab] ^\nu , [tab] [tab] _\rho , [tab] [tab] ^\sigma
Of course for the first index you can just subscript R itself, and if there are multiple indices in a row up/downstairs you can just keep typing in the superscript, but you get the point that TeXmacs can handle it. Hope this is helpful! Developers, it would be really helpful to add this to the manual or somewhere official since it took me quite some time to think of how to do this properly.