在Markdown中如何使用上标(Github风格)?

590

按照这个潜在客户,我在Github的README.md中尝试了以下内容:

<span style="vertical-align: baseline; position: relative;top: -0.5em;>text in superscript</span>

无法工作,文本显示为正常。需要帮助吗?


17
对于那些在这里但使用pandoc的人,请尝试使用“^superscript^”(https://pandoc.org/MANUAL.html#superscripts-and-subscripts)。 - dat
4个回答

904
使用<sup></sup>标签(<sub></sub>是下标的等效标签)。请参考此gist示例。

18
为了合理地写出O(n^2),我只需键入 O(n<sup>2</sup>),它将显示为O(n²)。很好。那么为什么这在SO markdown上不起作用呢? - phonetagger
12
@phonetagger:如果我没记错的话,在评论中是不允许使用标签的。 - iconoclast
你如何制作LaTeX标志?CSS在style属性中对<sup>和<sub>起作用吗? - Peter Flynn
1
@PeterH.Boling Stack Overflow 的评论。 - MD XF
对于星号(),请直接使用“\ ”以避免将“*”识别为函数。 - LCheng

118
你有几个选项。答案取决于你要做什么,当Markdown被查看时,你想让内容的可读性如何以及你的内容将在哪里呈现:
HTML标签
正如其他人所说, 标签对于任意文本都有效。像这样在Markdown文档中嵌入HTML是得到很好支持的,因此这种方法应该适用于大多数呈现Markdown的工具。
就我个人而言,在“裸露”的情况下(例如在文本编辑器中)使用HTML会影响Markdown的可读性,但是这些小标签并不太糟糕。
LaTeX(新!)
从2022年5月开始,GitHub直接支持在Markdown文档中嵌入 LaTeX表达式。这为我们提供了一种新的方式来呈现GitHub风格的Markdown中的任意文本作为上标或下标,并且效果非常好。
LaTeX表达式由$$表示块级别或$表示内联表达式。在LaTeX中,您使用^表示上标,使用_表示下标。花括号({ }和})可用于组合字符。您还需要使用反斜杠转义空格。GitHub实现使用MathJax,请参见它们的文档以了解其他可能性。
您可以为需要的数学表达式使用上标或下标,例如:
$$e^{-\frac{t}{RC}}$$

这将呈现为..

Superscript maths example

或将任意文本呈现为上标或下标内联,例如:

And so it was indeed: she was now only $_{ten\ inches\ high}$, and her face brightened up at the thought that she was now the right size for going through the little door into that lovely garden.

这将呈现为..

Subscript text example

我在一个Gist中放了一些其他例子这里

Unicode

如果您需要的上标(或下标)具有数学性质,那么Unicode可能已经为您提供了支持。

我已经编制了所有Unicode上标和下标字符的列表,可以在此Gist中找到。其中一些较常见/有用的是:

  • 上标零(U+2070)
  • ¹ 上标一(U+00B9)
  • ² 上标二(U+00B2)
  • ³ 上标三(U+00B3)
  • 上标拉丁小写字母N(U+207F)

人们还经常使用<sup><sub>标签来尝试呈现特定符号,例如:

  • 商标符号(U+2122)
  • ® 注册商标符号(U+00AE)
  • 服务商标(U+2120)
假设您的编辑器支持Unicode,则可以直接将上述字符复制并粘贴到文档中,或在系统的表情符号选择器中找到它们。
在MacOS上,同时按下Command ⌘ + Control + Space键以打开表情符号选择器。您可以浏览或搜索,或单击右上角的小图标以打开更高级的字符查看器。
在Windows上,您可以通过按⊞ Windows + .来使用表情符号和符号选择器。
或者,如果您要在HTML文档中放置这些字符,则可以在HTML字符转义中使用上面的十六进制值。例如,&#x00B2;而不是²。这适用于GitHub(并且应该适用于任何其他将Markdown呈现为HTML的地方),但在呈现为原始文本时可读性较差。

图片

如果您的要求特别不寻常,则可以直接内联图像。 GitHub支持的语法是:
![Alt text goes here, if you'd like](path/to/image.png) 

你可以使用完整路径 (例如以https://http://开头),但通常更容易使用相对路径,这将从与Markdown文档相关的repo中加载图像。

如果您恰好知道LaTeX(或者想要学习它),那么您可以进行几乎任何文本操作并将其渲染为图像。像Quicklatex这样的网站使这变得非常容易。当然,如果您知道您的文档将在GitHub上呈现,您可以使用早期讨论过的新的 (2022年) 嵌入式LaTeX语法


22

对之前回答的评论

通用的解决方法是使用HTML标签<sup>,正如主要答案所建议的。
然而,Markdown 的理念恰恰在于避免使用这种标签:
文档应该在作为纯文本时看起来就很好看,而不仅仅是渲染后。

另一个答案提出了使用 Unicode 字符,这使文档在纯文本文档中看起来很漂亮,但可能会降低兼容性。

最后,我想提醒一下对于一些文档最简单的解决方案:字符^
某些 Markdown 实现(例如 macOS 中的 MacDown)将插入符号解释为上标指令。

例如:
Sin^2 + Cos^2 = 1
显然,Stack Overflow 不将插入符号解释为上标指令。然而,这段文本是可以理解的,这才是在使用 Markdown 时真正重要的。


嗯,GitHub不支持,我猜那就是这些答案的全部意义所在。如果它支持上标符号^会很“好”,但它并不是GitHub-Flavoured Markdown(GFM)的一部分。 - undefined

7
如果你只需要上标数字,你可以使用纯Unicode。它提供了所有数字以及几个额外的字符作为上标:
x⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿⁱ

然而,可能选择的字体不支持它们,所以请务必检查呈现的输出。

实际上,甚至有相当多的上标字母,但是它们的预期用途可能并非上标,并且字体支持可能会更糟糕。请根据自己的判断使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接