在 LaTeX 中输入角度、角分、角秒符号真让人头疼。
角分符号不应与撇号( ‘ )、标准单引号( ‘’ )、尖音符( ´ )或重音符( ` )混淆;角秒符号不应与垂直双引号( “ )、标准双引号( “” )或同上符号( 〃 )混淆。
键盘上分号旁边的一撇,其实是撇号(apostrophe),不能作为角分号使用。LaTeX 中输入角度、角分、角秒,到底怎样才正确?Stackexchange 的 TeX 版面,也有人提出了相似的问题。接下来先总结各种输入方法,随后是原文网址和译文。
数学模式
Markdown 中对数学公式的支持一般是采用了 MathJax,包括 Typora 和 Hexo 都如此,因而无法使用 package。所以首先介绍数学模式可以使用中两种输入方法。
使用 ^\circ
和 ^\prime
1 | $109^\circ 28^\prime 16^{\prime \prime}$ |
示例:
$$
109^\circ 28^\prime 16^{\prime \prime}
$$
使用 \unicode
1 | $109\unicode{x00B0} 28\unicode{x2032} 16\unicode{x2033}$ |
示例:
$$
109\unicode{x00B0} 28\unicode{x2032} 16\unicode{x2033}\
109\unicode{x00B0} 28^\unicode{x2032} 16^\unicode{x2033}
$$
显然使用 ^\circ
和 ^\prime
视觉效果更好一些,直接使用 Unicode 字符有些偏小。另外奇怪的是,\unicode{x2032}
和 \unicode{x2033}
本身就是上标形式,但是 MathJax 渲染似乎有错误,加上 ^
才能正常显示为上标。
另外,其实直接用撇号显示与角分符号并无差异,对比下:
1 | 28^\prime 16^{\prime \prime}\\ |
$$
28^\prime 16^{\prime \prime}\
28’16’’
$$
就这么简单,我前面有说过:
键盘上分号旁边的一撇,其实是撇号(apostrophe),不能作为角分号使用。
然后折腾了这么久,到头来才发现是自己把问题想得太复杂,真不知道自己在干嘛。
使用 package
使用 Package 的几个方法我都没有试验,仅供参考。
siunitx
package
1 | \usepackage{siunitx} |
gensymb
package
1 | \usepackage{gensymb} |
fontspec
package
度数符号、角分、角秒以及三撇都有 Unicode 字符,分别是 U+00B0
,U+2032
,U+2033
和 U+2034
。可以通过 fontspec
直接输入 \symbol{"00B0}
等等。
unicode-math
package
1 | % arara: lualatex |
原文译文
如何在 LaTeX 表格中输入地理坐标
我想在 LaTeX 中把地理坐标打成表格里,像这样:
1
2 N 52° 58.110'
E 00° 40.070'实在是不好意思,我三周前才开始学习 LaTeX。感谢大家的帮助!
谢谢!
plxsas
有几个办法可选。
siunitx
包提供了一个\ang
命令可以排版角度,度、分、秒要通过半角冒号分隔。此外你可以在数学模式($ ... $)
里输入数字,用^\circ
代表度,'
或^\prime
表示分。
1
2
3
4
5
6
7 \documentclass{article}
\usepackage{siunitx}
\begin{document}
N\ang{52;58.110;} E\ang{00;40.070;}
N$52^\circ 58.110'$ E$00^\circ 40.070^\prime$
\end{document}Torbjørn T.
1 N $52^\circ$ $58.110'$ E $00^\circ$ $40.070'$表格在这没什么意义,因为你可以根据自己的需要插入间距。你还可以制作自己的宏,比如改变间距之类的。
1 \def\nswe#1#2#3{#1\,$#2^\circ\,#3'$}用法:
\nswe{N}{52}{58.110}
Przemysław Scherwentke
\usepackage{gensymb}
提供\degree
符号。
1 $32\degree59'59.8''S 148\degree15'44.3''E$显示如下:
Irene
如何在 LaTeX 中输入角秒符号
我现在用
f^{\prime \prime}
输入角秒。我感觉应该有更好的方法,不过没在 google 或是 stackexchange 找到。谢谢!Yikai Wang
最简单的办法无疑就是 egreg 在评论中提到的
$f''(x)$
。这个办法能够被 pdfLaTeX 支持而且真的很好输入。角分(Prime)、角秒(Double Prime)和三重撇号(Triple Prime)都有各自的 Unicode 自符,分别是 U+2032, U+2033 和 U+2034,你可以直接利用 package
fontspec
通过\symbol{"2032}...
输入。这需要 Xe- 或者 LuaLaTeX。然而, 如果可以我还是建议用 package
unicode-math
,这三个 Unicode 字符都打包成了各自的宏。它们很好输入,容易理解,还不像标准版本那么粗, 并且与紧接着的括号字距更好(个人观点)。下面的小例子演示了正常方法和采用unicode-math
的方法:
1
2
3
4
5
6
7
8
9
10
11
12
13 >% arara: lualatex
>\documentclass{article}
>\usepackage{unicode-math}
>\begin{document}
\noindent
$f'(x)$\\
$f\prime(x)$\\
$f''(x)$\\
$f\dprime(x)$\\
$f'''(x)$\\
$f\trprime(x)$\\
>\end{document}如果你还是坚持使用 pdfLaTeX,你就需要定义自己的一系列命令,效果就像这样:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 >% arara: pdflatex
>\documentclass{article}
>\newcommand*{\myprime}{^{\prime}\mkern-1.2mu}
>\newcommand*{\mydprime}{^{\prime\prime}\mkern-1.2mu}
>\newcommand*{\mytrprime}{^{\prime\prime\prime}\mkern-1.2mu}
>\begin{document}
\noindent
$f'(x)$\\
$f\myprime(x)$\\
$f''(x)$\\
$f\mydprime(x)$\\
$f'''(x)$\\
$f\mytrprime(x)$
>\end{document}LaRiFaRi
你可以照着上面的例子来,把
newcommand
替代成declaremathoperator
这样可能更直接点……角秒符号示例如下:
1
2
3
4
5
6 \documentclass{article}
\DeclareMathOperator*{\dprime}{\prime \prime}
\begin{document}
$f''(x)$\\
$f^\dprime(x)$
\end{document}Jozef Janočko