如何在 LaTeX 中输入角度、角分、角秒?

software

在 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
2
$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}\
109\unicode{x00B0} 28^\unicode{x2032} 16^\unicode{x2033}
$$
显然使用 ^\circ^\prime 视觉效果更好一些,直接使用 Unicode 字符有些偏小。另外奇怪的是,\unicode{x2032}\unicode{x2033} 本身就是上标形式,但是 MathJax 渲染似乎有错误,加上 ^ 才能正常显示为上标。

另外,其实直接用撇号显示与角分符号并无差异,对比下:

1
2
28^\prime 16^{\prime \prime}\\
28'16''

$$
28^\prime 16^{\prime \prime}\
28’16’’
$$

就这么简单,我前面有说过:

键盘上分号旁边的一撇,其实是撇号(apostrophe),不能作为角分号使用

然后折腾了这么久,到头来才发现是自己把问题想得太复杂,真不知道自己在干嘛。

使用 package

使用 Package 的几个方法我都没有试验,仅供参考。

siunitx package

1
2
3
4
\usepackage{siunitx}
\begin{document}
N\ang{52;58.110;} E\ang{00;40.070;}
\end{document}

gensymb package

1
2
3
4
\usepackage{gensymb}
\begin{document}
$32\degree59'59.8''S 148\degree15'44.3''E$
\end{document}

fontspec package

度数符号、角分、角秒以及三撇都有 Unicode 字符,分别是 U+00B0U+2032U+2033U+2034。可以通过 fontspec 直接输入 \symbol{"00B0} 等等。

unicode-math package

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}

原文译文

如何在 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

本文作者:希蜜

本文链接: https://sand.litofu.com/latex-degree-prime/

本作品采用知识共享署名 4.0 国际许可协议进行许可。