Om de volgende uitvoer te hebben met het graden-symbool
Ik kan het proberen
\documentclass{report} \begin{document} The angle is 30$^\circ$. \end{document}
Dit is een lastige manier om het graden-symbool te verkrijgen – men keert terug naar de wiskundige modus en zet een bestaand symbool in superscript.
Is er een eenvoudige manier om het graden-symbool te verkrijgen?
Opmerkingen
Answer
Ik zou siunitx gebruiken en zo een semantisch commando:
\documentclass{report} \usepackage{siunitx} \begin{document} The angle is \ang{30}. \end{document}
Maar je kunt ook textcomp laden
\documentclass{report} \usepackage{siunitx} \usepackage{textcomp} \begin{document} The angle is 30\textdegree. \end{document}
Reacties
- Zou je nog steeds
\ang
als de tekst ” was De temperatuur is 30 ° C “? - @Viesturs: Nee. De betekenis van
\ang
is hoek, dus ik zou ‘ het niet misbruiken voor een temperatuur. Ik zou\SI{30}{\celsius}
gebruiken. - Met je eerste voorbeeld: ik herinner me dat
siunitx
de$^\circ$
kruk voor de gradensymbolen (vanwege compatibiliteitsredenen), die ik vaak niet ‘ niet erg passend vindt bij het gebruikte lettertype (ook te dunne lijnen grote cirkel). Dus ik heb de neiging om de juistesiunitx
symboolopdrachten voor mijn behoeften opnieuw te definiëren, meestal het juiste Unicode-teken. - @lblb kun je daar een voorbeeld aan toevoegen als een ander antwoord , alstublieft?
- @ K.-Michael Aye: Klaar.
Antwoord
De volgende voorbeeldcode dient om te laten zien dat siunitx
ook de lelijke $^\circ$
constructie gebruikt (om compatibiliteitsredenen). De meeste lettertypen hebben een graden-symbool voor hoeken (U+00B0 DEGREE SIGN
) en sommige hebben een graden-Celsius-symbool voor temperaturen (U+2103 DEGREE CELSIUS
, uitgevoerd door \textcelsius
in mijn voorbeeld) en deze symbolen passen meestal beter bij de lijndiktes van het lettertype.
Mijn voorbeeld laat ook zien dat het symbool van één graad en het symbool dat in de speciale graad Celsius-glyph hoeft niet hetzelfde te zijn, dus ik zou het persoonlijk dienovereenkomstig opnieuw definiëren als ik “beide in een werkstuk gebruik, zie de tweede regel.
Compileren met XeLaTeX of LuaLaTeX.
\documentclass{article} \usepackage{fontspec} \usepackage{siunitx} \begin{document} ° % degree symbol \si{\celsius} % ${}^{\circ}$ \textcelsius\ % special glyph of the font \si{\degree} % angle unit \sisetup{ math-celsius = °\text{C}, % for temperatures text-celsius = °C, math-degree = °, % for angles text-degree = ° } ° \si{\celsius} % now with the glyph \textcelsius\ % special glyph of the font \si{\degree} % angle unit \end{document}
Reacties
- Ik ‘ m niet zeker hoe je meet ‘ de meeste ‘ -lettertypen: klassieke TeX-lettertypen hebben normaal gesproken geen graden-symbool. Op graden Celsius is het enkele Unicode-codepunt een compatibiliteitsteken, en es naar ‘ degree ‘ + ‘ letter C ‘.
- @Joseph Wright: ik schreef uit ervaring met niet-TeX-lettertypen, dat alle lettertypen die ik ‘ ben tegengekomen de ° (graden) symbool. Met de graden Celsius vergelijkt de tweede regel in mijn voorbeeld
°
+C
met de enkele glyph, en ze zien er anders uit (met de CM font, heb ‘ t andere getest). Dit zijn slechts mijn conclusies, ik ‘ ben hierin geen expert.
Antwoord
Er is ook een gensymb
-pakket. Ik geef er de voorkeur aan, omdat het slechts een symbool biedt voor beide tekst- / wiskundige modi, en je kunt er alles mee doen wat je wilt.
Voorbeeld:
\usepackage{gensymb} % ... $20 \degree$
Reacties
- Ik hou van dit eenvoudige en praktische antwoord!
Antwoord
Het symbool is U + 00B0 in Unicode, en de TS1-codering bevat het als u legacy NFSS wilt gebruiken. Het standaardcommando hiervoor is \textdegree
en wordt gedefinieerd door textcomp
of fontspec
.U kunt het ook invoeren in uw UTF-8-bronbestand, of inputenc
gebruiken om een andere invoercodering aan te geven. Vrijwel alle tekstlettertypen ondersteunen dit.
Voorbeeld:
\documentclass[varwidth]{standalone} \usepackage{iftex} \ifPDFTeX \usepackage[T1]{fontenc} \usepackage{textcomp} % For TS1. \usepackage[utf8]{inputenc} % The default since 2018. \else \usepackage{fontspec} \fi \begin{document} 30\textdegree{} is hot. 20\textdegree{} is pleasing. 10\textdegree{} is not. 0\textdegree{} is freezing. \end{document}
Er is ook \textcelsius
voor het teken ℃ (U + 2103), maar (sinds de laatste keer dat ik het controleerde) om PDFLaTeX het UTF-8-teken bij invoer te laten herkennen, moet je het commando \DeclareUnicodeCharacter{"2103}{\textcelsius}
toevoegen.
Antwoord
U kunt °
rechtstreeks gebruiken met
\usepackage{textcomp}
Voorbeeld:
\documentclass{article} \usepackage{textcomp} \begin{document} I love 25 °C in my room \end{document}
Reacties
- Eigenlijk is
textcomp
voldoende . Sinds 2018 isutf8
de vooraf gedefinieerde invoercodering, en u ‘ zult\DeclareUnicodeCharacter{00B0}{\textdegree}
vinden inutf8enc.dfu
. AFAIK heeft tegenwoordig in principe geen zin voorgensymb
. - Ups, bewerkt, goed
- Hoe op het toetsenbord de ° symbool?
- hangt af van de indeling van uw toetsenbord, u kunt invoegen met
Alt
+248
, als u een Amerikaans internationaal toetsenbord hebtSHIFT
+CTRL
+ALT
+;
| Beste in Latam-toetsenbordSHIFT
+`
- Op een Mac gebruik je
command
+control
+space
en zoek gewoon naar graden-glyph.
Antwoord
Ik zou een vrij korte en eenvoudige oplossing willen voorstellen, zonder daarvoor aanvullende en / of speciale pakketten te gebruiken. Definieer in de preambule het volgende: \renewcommand{\deg}{$^\circ$}
Aangezien \deg
een gereserveerd woord is, moet het hiervoor opnieuw worden gedefinieerd doel. In mijn gebruik heb ik nog geen obstakel gezien om dat te doen.
Later, in de tekst, kun je gewoon The angle is 30\deg.
- Nee, ik denk niet ‘ niet
\deg
(dat is een functiesymbool) moet hiervoor opnieuw worden gedefinieerd. Je commando zal ook mislukken in de wiskundige modus … De geprefereerde manier zou tegenwoordigsiunitx
moeten zijn. Bovendien is uw voorstel al gedaan door de O.P., afgezien van het inpakken in een macro.
The angle is $30^\circ$.
, en de uitvoer is hetzelfde alssiunitx
‘ s.\degree
.siunitx
doet dat om compatibiliteitsredenen. Dus als iemand naar een beter uiterlijk streeft, is het het beste om ze opnieuw te definiëren.