commit 616fbfee1549eed9a8bc2edb80eef9f7134e4fd9
Author: Juergen Spitzmueller <[email protected]>
Date: Fri Feb 20 14:38:31 2026 +0100
Support cyrillic dash babelshorthands
Now we have complete support for all shorthands supported
both by babel and polyglossia
---
lib/languages | 195 +++++++++++++++++++++++++++++++++++++++++++++++++
lib/lyx2lyx/lyx_2_6.py | 36 ++++++++-
2 files changed, 230 insertions(+), 1 deletion(-)
diff --git a/lib/languages b/lib/languages
index 0be511c73e..3567063e3f 100644
--- a/lib/languages
+++ b/lib/languages
@@ -655,6 +655,45 @@ Language belarusian
Color textlabel2
EndFont
End
+ SpecialChar cyrillicdash_normal
+ Type specialchar
+ MenuString "Cyrillic Dash (Normal)|C"
+ Tooltip "Cyrillic dash for the use in normal text"
+ LyXOutput "0x2009 0x2014 0x2009"
+ LatexOutput " \"---"
+ IsLetter 1
+ PlaintextOutput "0x2009 0x2014 0x2009"
+ XHTMLOutput  — 
+ Font
+ Color textlabel1
+ EndFont
+ End
+ SpecialChar cyrillicdash_compound
+ Type specialchar
+ MenuString "Cyrillic Dash (Compound Name)|o"
+ Tooltip "Cyrillic dash for the use in compound names (surnames)"
+ LyXOutput 0x2014
+ LatexOutput \"--~
+ IsLetter 1
+ PlaintextOutput 0x2014
+ XHTMLOutput —
+ Font
+ Color textlabel2
+ EndFont
+ End
+ SpecialChar cyrillicdash_quotative
+ Type specialchar
+ MenuString "Cyrillic Dash (Quotative)|u"
+ Tooltip "Cyrillic dash for denoting direct speech"
+ LyXOutput "0x2014 0x2002"
+ LatexOutput \"--*
+ IsLetter 1
+ PlaintextOutput "0x2014 0x2002"
+ XHTMLOutput — 
+ Font
+ Color textlabel3
+ EndFont
+ End
End
# supported by polyglossia but not babel:
@@ -1172,6 +1211,45 @@ Language georgian
Color textlabel2
EndFont
End
+ SpecialChar cyrillicdash_normal
+ Type specialchar
+ MenuString "Cyrillic Dash (Normal)|C"
+ Tooltip "Cyrillic dash for the use in normal text"
+ LyXOutput "0x2009 0x2014 0x2009"
+ LatexOutput " \"---"
+ IsLetter 1
+ PlaintextOutput "0x2009 0x2014 0x2009"
+ XHTMLOutput  — 
+ Font
+ Color textlabel1
+ EndFont
+ End
+ SpecialChar cyrillicdash_compound
+ Type specialchar
+ MenuString "Cyrillic Dash (Compound Name)|o"
+ Tooltip "Cyrillic dash for the use in compound names (surnames)"
+ LyXOutput 0x2014
+ LatexOutput \"--~
+ IsLetter 1
+ PlaintextOutput 0x2014
+ XHTMLOutput —
+ Font
+ Color textlabel2
+ EndFont
+ End
+ SpecialChar cyrillicdash_quotative
+ Type specialchar
+ MenuString "Cyrillic Dash (Quotative)|u"
+ Tooltip "Cyrillic dash for denoting direct speech"
+ LyXOutput "0x2014 0x2002"
+ LatexOutput \"--*
+ IsLetter 1
+ PlaintextOutput "0x2014 0x2002"
+ XHTMLOutput — 
+ Font
+ Color textlabel3
+ EndFont
+ End
End
# german does not use a country code (due to the variety)
@@ -1968,6 +2046,45 @@ Language mongolian
Color textlabel2
EndFont
End
+ SpecialChar cyrillicdash_normal
+ Type specialchar
+ MenuString "Cyrillic Dash (Normal)|C"
+ Tooltip "Cyrillic dash for the use in normal text"
+ LyXOutput "0x2009 0x2014 0x2009"
+ LatexOutput " \"---"
+ IsLetter 1
+ PlaintextOutput "0x2009 0x2014 0x2009"
+ XHTMLOutput  — 
+ Font
+ Color textlabel1
+ EndFont
+ End
+ SpecialChar cyrillicdash_compound
+ Type specialchar
+ MenuString "Cyrillic Dash (Compound Name)|o"
+ Tooltip "Cyrillic dash for the use in compound names (surnames)"
+ LyXOutput 0x2014
+ LatexOutput \"--~
+ IsLetter 1
+ PlaintextOutput 0x2014
+ XHTMLOutput —
+ Font
+ Color textlabel2
+ EndFont
+ End
+ SpecialChar cyrillicdash_quotative
+ Type specialchar
+ MenuString "Cyrillic Dash (Quotative)|u"
+ Tooltip "Cyrillic dash for denoting direct speech"
+ LyXOutput "0x2014 0x2002"
+ LatexOutput \"--*
+ IsLetter 1
+ PlaintextOutput "0x2014 0x2002"
+ XHTMLOutput — 
+ Font
+ Color textlabel3
+ EndFont
+ End
End
Language newzealand
@@ -2284,6 +2401,45 @@ Language russian
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar cyrillicdash_normal
+ Type specialchar
+ MenuString "Cyrillic Dash (Normal)|C"
+ Tooltip "Cyrillic dash for the use in normal text"
+ LyXOutput "0x2009 0x2014 0x2009"
+ LatexOutput " \"---"
+ IsLetter 1
+ PlaintextOutput "0x2009 0x2014 0x2009"
+ XHTMLOutput  — 
+ Font
+ Color textlabel1
+ EndFont
+ End
+ SpecialChar cyrillicdash_compound
+ Type specialchar
+ MenuString "Cyrillic Dash (Compound Name)|o"
+ Tooltip "Cyrillic dash for the use in compound names (surnames)"
+ LyXOutput 0x2014
+ LatexOutput \"--~
+ IsLetter 1
+ PlaintextOutput 0x2014
+ XHTMLOutput —
+ Font
+ Color textlabel2
+ EndFont
+ End
+ SpecialChar cyrillicdash_quotative
+ Type specialchar
+ MenuString "Cyrillic Dash (Quotative)|u"
+ Tooltip "Cyrillic dash for denoting direct speech"
+ LyXOutput "0x2014 0x2002"
+ LatexOutput \"--*
+ IsLetter 1
+ PlaintextOutput "0x2014 0x2002"
+ XHTMLOutput — 
+ Font
+ Color textlabel3
+ EndFont
+ End
End
# FontEncoding: no hyphenation, but diacritics
@@ -2660,6 +2816,45 @@ Language ukrainian
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar cyrillicdash_normal
+ Type specialchar
+ MenuString "Cyrillic Dash (Normal)|C"
+ Tooltip "Cyrillic dash for the use in normal text"
+ LyXOutput "0x2009 0x2014 0x2009"
+ LatexOutput " \"---"
+ IsLetter 1
+ PlaintextOutput "0x2009 0x2014 0x2009"
+ XHTMLOutput  — 
+ Font
+ Color textlabel1
+ EndFont
+ End
+ SpecialChar cyrillicdash_compound
+ Type specialchar
+ MenuString "Cyrillic Dash (Compound Name)|o"
+ Tooltip "Cyrillic dash for the use in compound names (surnames)"
+ LyXOutput 0x2014
+ LatexOutput \"--~
+ IsLetter 1
+ PlaintextOutput 0x2014
+ XHTMLOutput —
+ Font
+ Color textlabel2
+ EndFont
+ End
+ SpecialChar cyrillicdash_quotative
+ Type specialchar
+ MenuString "Cyrillic Dash (Quotative)|u"
+ Tooltip "Cyrillic dash for denoting direct speech"
+ LyXOutput "0x2014 0x2002"
+ LatexOutput \"--*
+ IsLetter 1
+ PlaintextOutput "0x2014 0x2002"
+ XHTMLOutput — 
+ Font
+ Color textlabel3
+ EndFont
+ End
End
Language uppersorbian
diff --git a/lib/lyx2lyx/lyx_2_6.py b/lib/lyx2lyx/lyx_2_6.py
index 8f060f6230..99785454fc 100644
--- a/lib/lyx2lyx/lyx_2_6.py
+++ b/lib/lyx2lyx/lyx_2_6.py
@@ -745,13 +745,21 @@ def revert_hyphen_shorthands(document):
def revert_shorthands2(document):
- "Revert SpecialChar gendermark, thinspacebreakpoint and splithyphen to ERT"
+ "Revert SpecialChar cyrillicdash*, gendermark, thinspacebreakpoint and
splithyphen to ERT"
mainlang = get_value(document.header, "\\language")
if mainlang == "":
document.warning("Malformed LyX document! No \\language header found!")
return
+ langs_cyrillicdash = [
+ "belarusian",
+ "georgian",
+ "mongolian",
+ "russian",
+ "ukrainian"
+ ]
+
langs_gendermark = [
"austrian",
"naustrian",
@@ -827,6 +835,32 @@ def revert_shorthands2(document):
i += 1
continue
+ i = 0
+ while True:
+ i = find_substring(document.body, "\\SpecialChar cyrillicdash", i)
+ if i == -1:
+ break
+ repl = " \"---"
+ if "\\SpecialChar cyrillicdash_normal" in document.body[i]:
+ document.body[i] = document.body[i].replace("\\SpecialChar
cyrillicdash_normal", "")
+ elif "\\SpecialChar cyrillicdash_compound" in document.body[i]:
+ document.body[i] = document.body[i].replace("\\SpecialChar
cyrillicdash_compound", "")
+ repl = "\"--~"
+ elif "\\SpecialChar cyrillicdash_quotative" in document.body[i]:
+ document.body[i] = document.body[i].replace("\\SpecialChar
cyrillicdash_quotative", "")
+ repl = "\"--*"
+ lang = mainlang
+ l = find_token_backwards(document.body, "\\lang", i) != -1
+ if l > 0:
+ line = document.body[l]
+ tokenend = len("\\lang ")
+ lang = line[tokenend:].strip()
+ if lang in langs_cyrillicdash:
+ cmd = put_cmd_in_ert(repl)
+ document.body[i + 1 : i + 1] = cmd
+ i += 1
+ continue
+
##
# Conversion hub
#
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs