1

I am creating a question sheet using a method (I don't know the exact name, maybe bubble sheet format) as follows:

alt text

My question is how to improve the appearance such that the framed letters get proportional size based on the context. If the frame letter must work as an exponent, it must be smaller. If it works as a lower index in integral or sum, it also must be smaller.

Here is my code snippet after "normalization" :-)

\documentclass[dvipsnames,dvips,cmyk]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{bera}


\fboxsep=2pt
\fboxrule=0.8pt

\newcommand{\boxy}[1]{\ensuremath{\,\fbox{\;\,{\color{red}\bf#1}\,\;}\,}}

\newcommand{\ltr}[1]{{\color{red}\bf#1}}

\begin{document}
\noindent%
Each letter \ltr{A}, \ltr{B}, \ltr{C}, etc in the equations represents a numeral (from 0 to 9) or the minus sign ($-$).


\[
\int_{\boxy{A}}^{\boxy{B}}f(x)\,\textrm{d}x=\frac{1-\boxy{P}}{\boxy{Q}+\boxy{R}}
\]

\[
-2 x^{\boxy{XYZ}}-\boxy{W}\sqrt{\boxy{V}+1}
\]

\[
\sum_{i=\boxy{A}}^{\boxy{BC}}=\tan\left(\boxy{D}-\boxy{E}\right)
\]
\end{document}

2 Answers 2

2

use the \text command, it takes the correct font setting:

\documentclass{article}
\usepackage{xcolor}
\usepackage{amsmath}
\fboxsep=2pt
\fboxrule=0.8pt

\newcommand\boxy[1]{\text{\,\fbox{\;\,{\color{red}$\mathbf{#1}$}\,\;}\,}}

\newcommand{\ltr}[1]{{\color{red}\bf#1}}

\begin{document}
\noindent%
Each letter \ltr{A}, \ltr{B}, \ltr{C}, etc in the equations 
represents a numeral (from 0 to 9) or the minus sign ($-$).
%
\[
\int\limits_{\boxy{A}}^{\boxy{B}}f(x)\,\textrm{d}x=\frac{1-\boxy{P}}{\boxy{Q}+\boxy{R}}
\]
%
\[
-2 x^{\boxy{XYZ}}-\boxy{W}\sqrt{\boxy{V}+1}
\]
%
\[
\sum_{i=\boxy{A}}^{\boxy{BC}}=\tan\left(\boxy{D}-\boxy{E}\right)
\]
\end{document}
5
  • Wow, I'm surprised! Why does this work? Dec 28, 2010 at 8:58
  • @Hendrik: \text expands to \text@ which expands to a \mathchoice which uses \everymath to set the appropriate style.
    – TH.
    Dec 28, 2010 at 9:03
  • @Hendrik: it uses the definitions from mathcoice: \let\f@size#2\selectfont
    – user2478
    Dec 28, 2010 at 9:18
  • @TH.: Ah, \everymath is something I'm not well-acquainted with. No wonder I didn't get it. Dec 28, 2010 at 9:41
  • thanks for giving me the simplest or most compact (hopely) solution. Dec 28, 2010 at 10:11
3

You'll want to use \mathpalette: Replace your definition of \boxy with

\makeatletter
\newcommand{\boxy}[1]{\ensuremath{\mathpalette\boxy@helper{#1}}}
\newcommand{\boxy@helper}[2]{\,\fbox{\;\,{\color{red}$\m@th#1\mathbf{#2}$}\,\;}\,}
\makeatother

Note that I made another change to your macro: I use $s and \mathbf in the \fbox, and I added \m@th to ensure that you don't get additional horizontal space.

4
  • Might be worth adding \m@th as well.
    – TH.
    Dec 28, 2010 at 8:34
  • @TH.: Thanks! Hope that what I wrote is correct. Dec 28, 2010 at 8:52
  • thanks for the solution. Even though your solution and Herbert's work, Herbert's is simpler than yours. So I choose Herbert's. :-) Dec 28, 2010 at 10:10
  • @xport: Good choice! Dec 28, 2010 at 10:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .