在此 lead 之后,我在 Github README.md 中进行了尝试:
<span style="vertical-align: baseline; position: relative;top: -0.5em;>text in superscript</span>
不起作用,文本显示正常。帮助?
^superscript^
(pandoc.org/MANUAL.html#superscripts-and-subscripts)。
你有几个选择。答案取决于您正在尝试做什么,您希望内容在被视为 Markdown 时的可读性以及您的内容将在哪里呈现:
HTML 标签
正如其他人所说,<sup>
和 <sub>
标记适用于任意文本。像这样在 Markdown 文档中嵌入 HTML 得到了很好的支持,因此这种方法应该适用于大多数呈现 Markdown 的工具。
就个人而言,我发现 HTML 会在某种程度上损害 Markdown 的可读性,当使用它“裸”(例如在文本编辑器中)时,但像这样的小标签并不算太糟糕。
乳胶(新!)
截至 2022 年 5 月,GitHub 支持直接嵌入 LaTeX expressions in Markdown docs。这为我们提供了在 GitHub 风格的 Markdown 中将任意文本呈现为上标或下标的新方法,并且效果很好。
LaTeX 表达式用 $$
表示块或用 $
表示内联表达式。在 LaTeX 中,您用 ^
表示上标,用 _
表示下标。花括号({
和 }
)可用于对字符进行分组。您还需要使用反斜杠转义空格。 GitHub 实现使用 MathJax,因此请参阅 their docs 了解其他可能性。
您可以对需要它的数学表达式使用上标或下标,例如:
$$e^{-\frac{t}{RC}}$$
呈现为..
https://i.stack.imgur.com/swxmM.png
或者将任意文本渲染为内联的上标或下标,例如:
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.
呈现为..
https://i.stack.imgur.com/ayS24.png
我还举了一些其他例子 here in a Gist。
统一码
如果您需要的上标(或下标)具有数学性质,那么 Unicode 可能已经涵盖了您。
我已经编制了一个列表,其中列出了我可以在 this gist 中识别的所有 Unicode 上标和下标字符。一些更常见/有用的是:
⁰ 上标零 (U+2070)
¹ 上标一 (U+00B9)
² 上标二 (U+00B2)
³ 上标三 (U+00B3)
ⁿ 上标拉丁文小写字母 N (U+207F)
人们还经常使用 <sup>
和 <sub>
标记来尝试呈现如下特定符号:
™ 商标标志 (U+2122)
® 注册标志 (U+00AE)
℠ 服务标记 (U+2120)
假设您的编辑器支持 Unicode,您可以将上面的字符直接复制并粘贴到您的文档中。
或者,您可以在 HTML character escape 中使用上述十六进制值。例如,²
而不是 ²
。这适用于 GitHub(并且应该适用于您的 Markdown 呈现为 HTML 的其他任何地方),但在呈现为原始文本/Markdown 时可读性较差。
图片
如果您的要求特别不寻常,您可以随时内联图像。 GitHub 支持的语法是:
![Alt text goes here, if you'd like](path/to/image.png)
您可以使用完整路径(例如,以 https://
或 http://
开头),但使用相对路径通常更容易,它将从 repo 加载图像,相对于 Markdown 文档。
如果您碰巧知道 LaTeX(或想学习它),您几乎可以进行任何可以想象的文本操作并将其呈现为图像。 Quicklatex 之类的网站使这变得非常容易。当然,如果您知道您的文档将在 GitHub 上呈现,您可以使用前面讨论的新 (2022) embedded LaTeX syntax)
对先前答案的评论
通用解决方案是使用 HTML 标记 <sup>
,正如主要答案中所建议的那样。
但是,Markdown 背后的想法正是避免使用此类标记:
文档应该看起来不错纯文本,不仅在呈现时。
另一个答案建议使用 Unicode 字符,这使文档看起来像纯文本文档一样漂亮,但可能会降低兼容性。
最后,我想记住一些文档最简单的解决方案:字符 ^
。
一些 Markdown 实现(例如 macOS 中的 MacDown)将插入符号解释为上标的指令。
例如
Sin^2 + Cos^2 = 1
显然,Stack Overflow 不会将插入符号解释为上标指令。但是,文本是可以理解的,这才是使用 Markdown 时真正重要的。
如果只需要上标数字,可以使用纯Unicode。它提供所有数字加上几个附加字符作为上标:
x⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿⁱ
但是,可能是所选字体不支持它们,因此请务必检查渲染输出。
事实上,甚至还有 quite a few superscript letters,但是,它们的预期用途可能不是上标,而且字体支持可能更差。用你自己的判断。
O(n<sup>2</sup>)
,它就会显示为 O(n2)。好的。现在为什么这对 SO markdown 不起作用?