commit c44c619b3bc2e6c22c2a7c0c410941d674a4c3f7
Author: Juergen Spitzmueller <[email protected]>
Date: Wed Feb 18 14:54:06 2026 +0100
Some more shorthands
---
development/FORMAT | 6 ++
lib/languages | 159 +++++++++++++++++++++++++++++++++++++++++++++++++
lib/lyx2lyx/lyx_2_6.py | 88 ++++++++++++++++++++++++++-
src/version.h | 4 +-
4 files changed, 254 insertions(+), 3 deletions(-)
diff --git a/development/FORMAT b/development/FORMAT
index 45ba47d9ec..4b23733887 100644
--- a/development/FORMAT
+++ b/development/FORMAT
@@ -7,6 +7,12 @@ changes happened in particular if possible. A good example
would be
-----------------------
+2026-02-18 Jürgen Spitzmüller <[email protected]>
+ * Format incremented to 649:
+ New (language-specific) SpecialChars gendermark,
+ thinspacebreakpoint and splithyphen that are supported in some
languages
+ via babelshorthands ("x, ", and "=).
+
2025-11-25 Jürgen Spitzmüller <[email protected]>
* Format incremented to 648:
New (language-specific) SpecialChars extrasofthyphen
diff --git a/lib/languages b/lib/languages
index 8d45523159..0be511c73e 100644
--- a/lib/languages
+++ b/lib/languages
@@ -431,6 +431,19 @@ Language austrian
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar gendermark
+ Type specialchar
+ MenuString "Gender Mark|G"
+ Tooltip "Gender mark that keeps hyphenation points"
+ LyXOutput *
+ LatexOutput \"x
+ IsLetter 1
+ PlaintextOutput *
+ XHTMLOutput *
+ Font
+ Color textlabel1
+ EndFont
+ End
AltLanguage austrian-legacy
AltLangIfNot babel-german3
End
@@ -498,6 +511,19 @@ Language naustrian
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar gendermark
+ Type specialchar
+ MenuString "Gender Mark|G"
+ Tooltip "Gender mark that keeps hyphenation points"
+ LyXOutput *
+ LatexOutput \"x
+ IsLetter 1
+ PlaintextOutput *
+ XHTMLOutput *
+ Font
+ Color textlabel1
+ EndFont
+ End
AltLanguage naustrian-legacy
AltLangIfNot babel-german3
End
@@ -616,6 +642,19 @@ Language belarusian
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar thinspacebreakpoint
+ Type formatting
+ MenuString "Thin Space for Initials|I"
+ Tooltip "Thin space that keeps predefined hyphenation
possibilities"
+ LyXOutput 0x02cc
+ LatexOutput "\","
+ IsLetter 1
+ XHTMLOutput  
+ CanBreakAfter 1
+ Font
+ Color textlabel2
+ EndFont
+ End
End
# supported by polyglossia but not babel:
@@ -840,6 +879,20 @@ Language czech
FontEncoding T1|OT1
DateFormats "d. MMMM yyyy|d. MMM. yyyy|d.M.yyyy"
LangCode cs_CZ
+ SpecialChar splithyphen
+ Type specialchar
+ MenuString "Split Hyphen|H"
+ Tooltip "Hyphen that is repeated at next line when hyphenated"
+ LyXOutput 0x2010
+ LatexOutput \"=
+ IsLetter 1
+ PlaintextOutput -
+ XHTMLOutput -
+ CanBreakAfter 1
+ Font
+ Color textlabel1
+ EndFont
+ End
End
Language danish
@@ -1106,6 +1159,19 @@ Language georgian
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar thinspacebreakpoint
+ Type formatting
+ MenuString "Thin Space for Initials|I"
+ Tooltip "Thin space that keeps predefined hyphenation
possibilities"
+ LyXOutput 0x02cc
+ LatexOutput "\","
+ IsLetter 1
+ XHTMLOutput  
+ CanBreakAfter 1
+ Font
+ Color textlabel2
+ EndFont
+ End
End
# german does not use a country code (due to the variety)
@@ -1166,6 +1232,19 @@ Language german
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar gendermark
+ Type specialchar
+ MenuString "Gender Mark|G"
+ Tooltip "Gender mark that keeps hyphenation points"
+ LyXOutput *
+ LatexOutput \"x
+ IsLetter 1
+ PlaintextOutput *
+ XHTMLOutput *
+ Font
+ Color textlabel1
+ EndFont
+ End
AltLanguage german-legacy
AltLangIfNot babel-german3
End
@@ -1234,6 +1313,19 @@ Language ngerman
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar gendermark
+ Type specialchar
+ MenuString "Gender Mark|G"
+ Tooltip "Gender mark that keeps hyphenation points"
+ LyXOutput *
+ LatexOutput \"x
+ IsLetter 1
+ PlaintextOutput *
+ XHTMLOutput *
+ Font
+ Color textlabel1
+ EndFont
+ End
AltLanguage ngerman-legacy
AltLangIfNot babel-german3
End
@@ -1304,6 +1396,19 @@ Language german-ch
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar gendermark
+ Type specialchar
+ MenuString "Gender Mark|G"
+ Tooltip "Gender mark that keeps hyphenation points"
+ LyXOutput *
+ LatexOutput \"x
+ IsLetter 1
+ PlaintextOutput *
+ XHTMLOutput *
+ Font
+ Color textlabel1
+ EndFont
+ End
AltLanguage german-ch-legacy
AltLangIfNot babel-german3
End
@@ -1373,6 +1478,19 @@ Language german-ch-old
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar gendermark
+ Type specialchar
+ MenuString "Gender Mark|G"
+ Tooltip "Gender mark that keeps hyphenation points"
+ LyXOutput *
+ LatexOutput \"x
+ IsLetter 1
+ PlaintextOutput *
+ XHTMLOutput *
+ Font
+ Color textlabel1
+ EndFont
+ End
AltLanguage german-ch-old-legacy
AltLangIfNot babel-german3
End
@@ -1837,6 +1955,19 @@ Language mongolian
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar thinspacebreakpoint
+ Type formatting
+ MenuString "Thin Space for Initials|I"
+ Tooltip "Thin space that keeps predefined hyphenation
possibilities"
+ LyXOutput 0x02cc
+ LatexOutput "\","
+ IsLetter 1
+ XHTMLOutput  
+ CanBreakAfter 1
+ Font
+ Color textlabel2
+ EndFont
+ End
End
Language newzealand
@@ -2012,6 +2143,20 @@ Language polish
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar splithyphen
+ Type specialchar
+ MenuString "Split Hyphen|H"
+ Tooltip "Hyphen that is repeated at next line when hyphenated"
+ LyXOutput 0x2010
+ LatexOutput \"=
+ IsLetter 1
+ PlaintextOutput -
+ XHTMLOutput -
+ CanBreakAfter 1
+ Font
+ Color textlabel1
+ EndFont
+ End
End
Language portuguese
@@ -2265,6 +2410,20 @@ Language slovak
LaTeXOutput \"|
LaTeXOutputUTF8 \"|
End
+ SpecialChar splithyphen
+ Type specialchar
+ MenuString "Split Hyphen|H"
+ Tooltip "Hyphen that is repeated at next line when hyphenated"
+ LyXOutput 0x2010
+ LatexOutput \"=
+ IsLetter 1
+ PlaintextOutput -
+ XHTMLOutput -
+ CanBreakAfter 1
+ Font
+ Color textlabel1
+ EndFont
+ End
End
Language slovene
diff --git a/lib/lyx2lyx/lyx_2_6.py b/lib/lyx2lyx/lyx_2_6.py
index c34e7d14b1..8f060f6230 100644
--- a/lib/lyx2lyx/lyx_2_6.py
+++ b/lib/lyx2lyx/lyx_2_6.py
@@ -743,6 +743,90 @@ def revert_hyphen_shorthands(document):
i += 1
continue
+
+def revert_shorthands2(document):
+ "Revert SpecialChar 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_gendermark = [
+ "austrian",
+ "naustrian",
+ "german",
+ "ngerman",
+ "german-ch",
+ "german-ch-old"
+ ]
+
+ langs_thinspacebreakpoint = [
+ "belarusian",
+ "georgian",
+ "mongolian"
+ ]
+
+ langs_splithyphen = [
+ "czech",
+ "polish",
+ "slovak"
+ ]
+
+ i = 0
+ while True:
+ i = find_substring(document.body, "\\SpecialChar gendermark", i)
+ if i == -1:
+ break
+ document.body[i] = document.body[i].replace("\\SpecialChar
gendermark", "")
+ 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_gendermark:
+ cmd = put_cmd_in_ert("\"x")
+ document.body[i + 1 : i + 1] = cmd
+ i += 1
+ continue
+
+ i = 0
+ while True:
+ i = find_substring(document.body, "\\SpecialChar thinspacebreakpoint",
i)
+ if i == -1:
+ break
+ document.body[i] = document.body[i].replace("\\SpecialChar
thinspacebreakpoint", "")
+ 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_thinspacebreakpoint:
+ cmd = put_cmd_in_ert("\",")
+ document.body[i + 1 : i + 1] = cmd
+ i += 1
+ continue
+
+ i = 0
+ while True:
+ i = find_substring(document.body, "\\SpecialChar splithyphen", i)
+ if i == -1:
+ break
+ document.body[i] = document.body[i].replace("\\SpecialChar
splithyphen", "")
+ 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_splithyphen:
+ cmd = put_cmd_in_ert("\"=")
+ document.body[i + 1 : i + 1] = cmd
+ i += 1
+ continue
+
##
# Conversion hub
#
@@ -753,11 +837,13 @@ convert = [
[645, []],
[646, []],
[647, [convert_textbreaks]],
- [648, []]
+ [648, []],
+ [649, []]
]
revert = [
+ [648, [revert_shorthands2]],
[647, [revert_hyphen_shorthands]],
[646, [revert_textbreaks]],
[645, [revert_contextual_breaks]],
diff --git a/src/version.h b/src/version.h
index f64cd916a9..a97dda20e0 100644
--- a/src/version.h
+++ b/src/version.h
@@ -32,8 +32,8 @@ extern char const * const lyx_version_info;
// Do not remove the comment below, so we get merge conflict in
// independent branches. Instead add your own.
-#define LYX_FORMAT_LYX 648 // spitz: shorthands
-#define LYX_FORMAT_TEX2LYX 648
+#define LYX_FORMAT_LYX 649 // spitz: more shorthands
+#define LYX_FORMAT_TEX2LYX 649
#if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX
#ifndef _MSC_VER
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs