Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

The $\ell$ character in math-mode is clearly slanted to match the usual slant of math-mode characters. Is there a way to typeset an upright version, that won't look slanted amid other upright-math-mode characters?

share|improve this question
2  
Why do you need such a char? \ell is after all just a way of making l 'show up' more. –  Joseph Wright May 4 at 18:13
    
\ell is a nice symbol, I prefer it especially in math mode or in diagrams to differ from I, 1 or l. I also wonder why you want to make it 'upright'? –  Christian Hupfer May 4 at 18:22
2  
Since \ell denotes the character SCRIPT SMALL L, which is derived from an italic l (as the Unicode Standard says), it is in essence italic. It is illogical to try to make it upright. –  Jukka K. Korpela May 4 at 19:12
    
For those asking why I want such a thing, I typeset scalar quantities in italic, and vector quantities in upright bold. \boldsymbol\ell suffices to make \ell boldface, but it is still italic. I wanted to know how to make it upright as well. \mathbf{l} is unsatisfactory to me because it is confusable with a 1 even more so upright than italicized. –  thecommexokid May 4 at 21:35
    
You have an upright ell in the Minion Pro Regular text font (U2113). I suppose you could declare this character as a math symbol. –  Bernard May 7 at 20:54

1 Answer 1

up vote 8 down vote accepted

I defined a new control sequence \uell which typesets an \ell but rotated by 10 degrees. It also adjusts the spacing around the rotated \ell to be the same as for unrotated \ell.

\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{graphicx}
\makeatletter
\DeclareRobustCommand*\uell{\mathpalette\@uell\relax}
\newcommand*\@uell[1]{
  % We need to adjust the width of \uell to be the same as \ell
  \setbox0=\hbox{$#1\ell$}
  \setbox1=\hbox{\rotatebox{10}{$#1\ell$}}
  \dimen0=\wd0 \advance\dimen0 by -\wd1 \divide\dimen0 by 2
  \mathord{\lower 0.1ex \hbox{\kern\dimen0\unhbox1\kern\dimen0}}
}
\begin{document}
\section{$\uell$}
\ttfamily
\begin{tabular}{ll}
  \string\ell  & $jk\ell mn$                  \\
  \string\uell & $jk\uell mn$                 \\
  \string\ell  & $jk\ell_{\ell_{\ell}} mn$    \\
  \string\uell & $jk\uell_{\uell_{\uell}} mn$ \\
\end{tabular}
\end{document}

enter image description here

Using expl3

The output stays the same, of course.

\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{xparse}
\ExplSyntaxOn

\box_new:N \l_uell_box
\dim_new:N \l_uell_dim

\cs_new_protected:Npn \__uell:n #1 
  {
    % We need to adjust the width of \uell to be the same as \ell
    \hbox_set:Nn \l_uell_box { $#1\ell$ }
    \dim_set:Nn \l_uell_dim { \box_wd:N \l_uell_box }
    \box_rotate:Nn \l_uell_box { 10 }
    \dim_set:Nn \l_uell_dim { (\box_wd:N \l_uell_box - \l_uell_dim) / (-2) }
    \tex_mathord:D {
      \box_move_down:nn { .1ex } {
        \hbox:n {
          \tex_kern:D \l_uell_dim
          \hbox_unpack_clear:N \l_uell_box
          \tex_kern:D \l_uell_dim
        }
      }
    }
  }

\NewDocumentCommand\uell{}
  {
    \mathpalette \__uell:n \scan_stop:
  }

\ExplSyntaxOff
\begin{document}
\section{$\uell$}
\ttfamily
\begin{tabular}{ll}
  \string\ell  & $jk\ell mn$                  \\
  \string\uell & $jk\uell mn$                 \\
  \string\ell  & $jk\ell_{\ell_{\ell}} mn$    \\
  \string\uell & $jk\uell_{\uell_{\uell}} mn$ \\
\end{tabular}
\end{document}
share|improve this answer
    
\mathpalette\@uell\relax uses one token less. ;-) –  egreg May 4 at 20:23
    
@egreg I updated my answer. Maybe we can now save half a nanosecond. –  Henri Menke May 4 at 20:52
    
I had already upvoted it; but saving half a nanosecond might be decisive. ;-) –  egreg May 4 at 20:59
    
This solution is definitely good enough for me as is, but since you seem to be the sort interested in matters of half-a-nanosecond, I would point out that this solution raises the baseline of \uell slightly relative to other characters, as you can see if you place it in context rather than alone on a line. Example. –  thecommexokid May 4 at 21:45
    
@thecommexokid I updated my answer. –  Henri Menke May 4 at 21:52

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.