2013-10-16 49 views
5

我經常會遇到這樣的情況:我想將術語鏈接到術語表中,但用複數形式表示術語。用複數形式寫出沒有冗餘的術語

因此通常你做這樣的事在奇:

Some text before the term :term:`important word` then the stuff after the term 

這被認爲是一個完全不同的術語:

Some text before the term :term:`important words` then the stuff after the term 

這沒有得到解析:

Some text before the term :term:`important word`s then the stuff after the term 

這是非常多餘的(但我目前所知的唯一選擇):

Some text before the term :term:`important words<important word>` then the stuff after the term 

是否有另一種方法來寫一個複數形式的術語,而不需要陳述兩次?

回答

11

我正面臨同樣的問題。我不是專家,但這裏是我發現了什麼(部分重疊自己的調查結果):

.. won't resolve to "foo" 
:term:`foos` 

.. reST doesn't parse the string 
:term:`foo`s 

.. ugly markup and gives different formatting for "foo" and "s" 
:term:`foo`\ s 

.. redundant and verbose, but most versatile 
:term:`foos<foo>` 

雖然倒數第二個模式將工作,有點兒,最後一個真的是你想要的。它不僅將格式複數「s」與其餘部分相同(不同於:term:`foo`\ s,它可能會給你類似foo s),但它在複數不僅僅是簡單的連接時起作用。例如。考慮目錄/目錄或數據/數據。對於這些情況,完全重寫機制是最好的。

你可以讓你的文件更簡潔的定義substitutions

.. |foos| replace:: :term:`foos<foo>` 

然後任何你想要的複數「的Foo」,你可以寫取代的參考(見前面的鏈接)|foos|,和文檔處理器將像對待:term:`foos<foo>`


參考文獻:

https://sourceforge.net/p/docutils/mailman/message/31536488/

+0

我用我的完整論文的reST,我發現很多這樣的情況下,它不適合大量使用。我只能建議看看其他格式。我多次聽到ASCIIdoc作爲長文本的建議。 – erikbwork

+0

我加了我提到的鏈接,現在我有足夠的聲望去做。 如果答案是有用的,你會介意接受嗎? – goodmami

+0

是的,我會那樣做。儘管我同意您可能列出了唯一的解決方法,但它們都不是真正的解決方案。不是你的錯。 – erikbwork