Is there any software which can be used to write functional and non-functional requirements?
When writing those, it is essential to:
Store the document in text format to be able to make diffs and minimize the impact on the version control,
Apply extensive formatting when creating diagrams would be an overkill,
Use diagrams, preferably stored in text format as well,
Cross-link the requirements or the appendixes.
Currently, I can only think about three editors which may be used, but which are not truly suitable:
A Markdown editor.
Benefits: text only; easy to add formatting.
Disadvantage: not powerful enough: one can add images, but not diagrams; formatting is rather limited; no cross-linking (unless adding much HTML markup).
An HTML editor.
Benefits: text only; ability to add diagrams with HTML 5. Advanced formatting is possible.
Disadvantages: markup difficult to change by hand, or if WYSIWYG editor is used, markup is often too verbose and low quality; cross-linking limited to manual only.
A document editor such as OpenOffice or Microsoft Word.
Benefits: ability to apply some advanced formatting; excellent automated cross-linking.
Disadvantages: binary format, which means no diff and wasted space in version control.
What are my other choices?
What is actually used in the industry?