# When should we use \DeclareMathSizes, \xxxstyle and font size changing macros (\tiny, \small, etc)?

Could you give me a complete overview when we should use `\DeclareMathSizes`, `\xxxstyle` (such as `\scriptstyle`, etc), and font size changing macros (`\tiny`, `\small`, etc)?

I want this answer to be CW so all of you can collaborate the answer as complete as possible. You can elaborate any relevant aspects that you think they are important for most users.

-
Welcome to TeX.SX! This is your first post on the StackExchange network? –  yo' Feb 26 '13 at 11:49
@tohecz: Yes. But I am already familiar with the system. Thank you for the link. –  Stupid Boy Feb 26 '13 at 11:51
In edit mode I cannot change this question as a CW. Could you do that? –  Stupid Boy Feb 26 '13 at 12:09
No, only moderators can do that, once it's posted. As well, I'm not sure that CW really works for this type of questions. IMHO either you have a specific problem you deal with (and then CW makes no sense) or the question is more a debate thread than a question (and then it might be boundary to "not constructive"). But as I say, I'm not sure, and it's only my opinion ;) I'll let the mods know about it. –  yo' Feb 26 '13 at 12:19

I'm not sure the question is really answerable. It mentions several essentially unrelated commands and asks when they should be used, but I'll have a go.

`\DeclareMathSizes` should be used almost never. It defines for a given text font size, what size font to use for math node at text and script sizes. The values predeclared in the LaTeX format will cover the vast majority of cases. You would only using this if writing a class that had a very different set of supported font sizes to the standard classes or were writing a package loading a math font suite that is very different to computer modern (for example some fonts may require script and scriptscript text to be set slightly larger to be readable, computer modern fonts are designed at small point sizes to be legible but if you are using a scalable font with just a single design mechanically scaled you may want to prevent sub-subscripts being too small.

`\textstyle` `\scriptstyle` are user level commands in math that force the font style that TeX would normally use automatically in certain constructs so `\$\scriptstyle b\$` and `\$a^{b}\$` the b uses the same font in both cases. It's not possible to give general rules why you should want to do this, it is just an available control. One common reason is to force entries in arrays (which would by default be set as `\textstyle` to display style by issuing `\displaystyle`. (AMS and similar alignment environments do this as part of their definition.)

`\tiny` `\small` may not be used in math mode they set the font for text mode use (math fonts are normally sized to match though, according to the sizes specified by `\DeclareMathSizes`). Normally in a document one should avoid explicit size (or font) changes and use logical markup such as `\section` or `\footnote`, but they can be useful sometimes, eg to reduce the font to squeeze in a large table.

-
Example of justified (and common) usage of `\xxxstyle`: [tex.stackexchange.com/questions/91038/wedge-with-vertical-bar/… with vertical bar) –  yo' Feb 26 '13 at 13:10
Yes although in most cases (including there) you could arrange to use `\mathpaette` instead of the primitive `\mathchoice` then the `xxstyle` commands would be added automatically and not be explicit in the definition (cf `\root` or `\phantom` or `\notin`) –  David Carlisle Feb 26 '13 at 13:14
Not there, since the other argument (the height of the bar) depends on the size as well, and using both `\mathchoice` and `\mathpalette` would create too many variants ;) –  yo' Feb 26 '13 at 13:19
@tohecz right you are: (I never could read TeX code) –  David Carlisle Feb 26 '13 at 13:48