3

I would like to change the way siuntix displays the \celsius so that there is a space between the numerical value and the degree celsius symbol. This is what is recommended by BIPM. I have tried the following approach based on other questions on here. However, this results the degree symbol to completely disappear and I am not sure why. I am using overleaf platform. How would I change that to show e.g. 55 °C?

\documentclass{article}
\usepackage{gensymb}
\usepackage{siunitx}

\sisetup{
 math-celsius = \textdegree \text{C}, % for temperatures
 text-celsius = \textdegree \text{C},

}

  • 3
    Hi, welcome. Isn't that the default behaviour of $\SI{1}{\degreeCelsius}$? I get a space at least. – Torbjørn T. Jan 22 at 18:23
  • 1
    What's wrong with the standard definition of \celsius? – egreg Jan 22 at 18:32
  • You might also try \textcelsius, from either fontspec (in the modern toolchain) or textcomp (for backward-compatibility). – Davislor Jan 22 at 18:34
  • \sounits\ inserts a thin unbreakable space between numbers and units, but you have to use the command, say; \SI{18}[\celsius}`. – Bernard Jan 22 at 18:43
  • Hi, please see the answer below for the difference in the spacing between number and degree symbol. The standard definition is not compatible with the National Institute of Standards and Technology(NIST) standard. – user180025 Jan 22 at 18:55
3

Just change it with \DeclareSIUnit:

\documentclass[]{article}

\usepackage{siunitx}
\DeclareSIUnit[number-unit-product = {~}]\celsius{\SIUnitSymbolCelsius}

\begin{document}
\SI{45}{\celsius}
\end{document}

The package's default however is a half/thin space. Compare:

\documentclass[]{article}

\usepackage{siunitx}
%\DeclareSIUnit[number-unit-product = {~}]\celsius{\SIUnitSymbolCelsius}

\begin{document}
\SI{45}{\celsius}\par
\SI{45}{\degree}\par
\end{document}

Without the redeclaration on the left and with it on the right:

without with

  • 1
    @user180025 on this site we usually say thank you by upvoting and not via comment. Also you might consider to accept an answer if it completely solves your (original) question. You should do so not immediately for the first answer but after a reasonable time period. If you get more than one answers you should accept the one you deem best (provided it solves your question in some way, of course). – Skillmon Jan 22 at 21:14
  • I cant upvote yet lol. First thing I tried – user180025 Jan 23 at 22:21
  • @user180025 funny. I don't remember when you get which privilege, but not being able to upvote an answer to ones own question is strange... – Skillmon Jan 24 at 8:29
  • I get this message "Thanks for the feedback! Votes cast by those with less than 15 reputation are recorded, but do not change the publicly displayed post score." – user180025 Jan 24 at 14:20
  • @user180025 - You've got 16 rep points by now -- enough for an upvote. Plus, if you believe that Skillmon's answer has fully addressed your query, you could (should!) click on the 'checkmark' to formally "accept" this answer. – Mico Feb 14 at 22:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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