Markdown:如何按编号引用编号列表中的项目(如LaTeX' s \ ref / \ label)?

时间:2016-05-06 15:02:38

标签: latex markdown

markdown中是否有任何方法可以在此LaTeX代码段中执行相当于交叉引用的操作? (取自here。)

\begin{enumerate}
    \item \label{itm:first} This is a numbered item
    \item Another numbered item \label{itm:second}
    \item \label{itm:third} Same as \ref{itm:first}
\end{enumerate}
Cross-referencing items \ref{itm:second} and \ref{itm:third}.

这个LaTeX产生

1. This is a numbered item
2. This is another numbered item
3. Same as 1

Cross-referencing items 2 and 3.

也就是说,我希望能够在没有明确编号的情况下引用降价列表中的项目,这样我就可以将上面的列表更改为以下列表,而无需手动更新交叉引用:

1. This is the very first item
2. This is a numbered item
3. This is another numbered item
4. Same as 2

Cross-referencing items 3 and 4.

2 个答案:

答案 0 :(得分:1)

HTML甚至不能这样做,而Markdown是HTML的一个子集,所以答案是否定的。

例如,您的列表将如此表示(由Markdown呈现时):

<ol>
    <li>This is a numbered item</li>
    <li>This is another numbered item</li>
    <li>Same as 1</li>
</ol>

请注意,就编号而言,没有迹象表明哪个项目。这是浏览器在渲染时推断出来的。但是,数值不存储在文档中,并且不可重新计算或链接。它们仅供展示,不得用于其他目的。

现在,您可以编写一些自定义HTML来唯一标识每个列表项并使它们可引用:

<ol>
    <li id="item1">This is a numbered item</li>
    <li id="item2">This is another numbered item</li>
    <li id="item3">Same as <a href="#item1>1</a></li>
</ol>

但是,这些ID是硬编码的,与用于显示项目的数字无关。虽然,我想这就是你想要的。要进行更新:

<ol>
    <li is="item0">This is the very first item</li>
    <li id="item1">This is a numbered item</li>
    <li id="item2">This is another numbered item</li>
    <li id="item3">Same as <a href="#item1>2</a></li>
</ol>

ID会按预期保留在项目中。但是,让我们转到指向这些列表项的链接。请注意,在第一次迭代中我们有:

<a href="#item1>1</a>

随着更新我们:

<a href="#item1>2</a>

唯一的区别是链接的标签(从&#34; 1&#34;更改为&#34; 2&#34;)。这实际上是通过某种宏观神奇的东西来改变文档文本。不是HTML可以做的事情,至少没有JavaScript和/或CSS可以帮助。

换句话说,每次更新列表时,都需要在整个文档中手动更新对项目的每个引用的文本。这是针对HTML的。 Markdown怎么样?正如rules state

  

Markdown不是HTML的替代品,甚至不接近它。它的语法非常小,只对应一小部分HTML标记。

因此,在标准Markdown中,甚至没有任何方法可以为列表项分配ID。

在我看来,您需要使用除列表之外的其他内容或使用除Markdown / HTML之外的其他内容。

答案 1 :(得分:0)

也许您需要使用H1 .. H6然后Markdown会生成一个可以链接到的锚点:

# H1
## H2
### H3
#### H4
##### H5
###### H6

类似的东西:

###### 1. This is a numbered item
###### 2. This is another numbered item
###### 3. Same as 1

生成:

<h6 id="1-this-is-a-numbered-item">1. This is a numbered item</h6>
<h6 id="2-this-is-another-numbered-item">2. This is another numbered item</h6>
<h6 id="3-same-as-1">3. Same as 1</h6>