How do you refer to the C# programming language in LaTeX? Simply typing C# doesn’t work because # is a special character in LaTeX. You could type C#. That works, but it looks a little odd. The number sign is too big and too low.
![]()
What about using a musical sharp sign, i.e. C$\sharp$? That also looks a little odd. Even though the language is pronounced “C sharp,” it’s usually written with a number sign, not a sharp.
![]()
Let’s look at recommended ways of typesetting C++ to see whether that helps. The top answer to this question on TeX Stack Exchange is to define a new command as follows:
\newcommand{\CC}{C\nolinebreak\hspace{-.05em}\raisebox{.4ex}{\tiny\bf +}\nolinebreak\hspace{-.10em}\raisebox{.4ex}{\tiny\bf +}}
This does several things. First, it prevents line breaks between the constituent characters. It also does several things to the plus signs:
- Draws them in closer
- Makes them smaller
- Raises them
- Makes them bold
The result is what we’re subconsciously accustomed to seeing in print.
![]()
Here’s an analogous command for C#.
\newcommand{\CS}{C\nolinebreak\hspace{-.05em}\raisebox{.6ex}{\tiny\bf \#}}
And here’s the output. The number sign is a little too small.
![]()
To make a little larger number sign, replace \tiny with \scriptsize.
![]()










