5

I've defined the following new commands:

\newcommand{\atoi}{\mathrm{\rotatebox[origin=c]{180}{$\iotaup$}}} \newcommand{\scriptatoi}{{\scriptsize{\mathrm{\rotatebox[origin=c]{180}{$\iotaup$}}}}} 

to use in this formula (and other formulas in which $\atoi$ occurs):

$\psi^{\scriptatoi x\phi}_{z} \equiv \exists y(\phi^y_x \:\&\: \forall u(\phi^u_x \rightarrow u\!=\!y) \:\&\: \psi^y_z)$ 

When I typeset the LaTeX source file using pdflatex (from TeXLive 2010), I get the following complaint:

LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 352.

If, however, I write the following line instead:

$\psi^{\atoi x\phi}_{z} \equiv \exists y(\phi^y_x \:\&\: \forall u(\phi^u_x \rightarrow u\!=\!y) \:\&\: \psi^y_z)$ 

the atoi character appears full size, not superscript size.

Writing

$\psi^{\scriptsize\atoi x\phi}_{z} \equiv \exists y(\phi^y_x \:\&\: \forall u(\phi^u_x \rightarrow u\!=\!y) \:\&\: \psi^y_z)$ 

again yields the desired typeset result, and again yields the LaTeX Font Warning.

How can I do what I want, that is, get my new symbol in an appropriate superscript size when using it in a superscript, while respecting the font restrictions of math mode?

3
  • 1
    As far as I know, the command is called \scriptstyle. Generally, \...size applies to textmode, whereas \...style applies to mathmode. Commented Jun 21, 2012 at 7:22
  • Related: tex.stackexchange.com/questions/18157/rotating-a-letter Commented Jun 21, 2012 at 9:03
  • Thank you for your comment, and especially for the pointer to the fine exposition of rotation. Commented Jun 22, 2012 at 0:18

3 Answers 3

4

this construction is simple enough that you can forget about redefining it for multiple sizes. instead, use the \text facility of amsmath:

\renewcommand{\atoi}{\text{\rotatebox[origin=c]{180}{$\iotaup$}}} 

this can be used both in the "main line" and in super/subscripts of any level, and it should produce the desired result.

(the definition of \text is based on \mathchoice; take a look at amstext.sty -- it isn't very long.)

10

You can use the command \mathchoice that chooses the correct math size:

\newcommand\atoistyle[1]{\mbox{\rotatebox[origin=c]{180}{$#1\iotaup$}}} \newcommand\atoi{\mathchoice {\atoistyle\displaystyle} {\atoistyle\textstyle} {\atoistyle\scriptstyle} {\atoistyle\scriptscriptstyle} } 

As egreg points out in the chat, this is the job of the command \mathpalette (see details here), so the following is an exact equivalent of the preceeding:

\newcommand\atoistyle[2]{\mbox{\rotatebox[origin=c]{180}{$#1\iotaup$}}} \newcommand\atoi{\mathpalette\atoistyle\relax} 
2

use it this way:

\newcommand\atoi{\rotatebox[origin=c]{180}{$\iotaup$}} \newcommand\scriptatoi{\rotatebox[origin=c]{180}{$\scriptstyle\iotaup$}} 

in math mode the font style is scriptstyle

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.