commit 8d938b031605a0d634f64c5c7f970da24316f960
Author: Juergen Spitzmueller <[email protected]>
Date:   Tue Oct 28 09:32:04 2025 +0100

    SpecialChars: require escaping of special chars in LaTeXOutput
    
    This allows us to support " (in shorthands)
---
 lib/doc/Customization.lyx       | 73 ++++++++++++++++++++++++++++++++++++++++-
 lib/doc/de/Customization.lyx    | 58 ++++++++++++++++++++++++++++++++
 lib/layouts/stdspecialchars.inc | 26 +++++++--------
 src/TextClass.cpp               |  2 +-
 4 files changed, 144 insertions(+), 15 deletions(-)

diff --git a/lib/doc/Customization.lyx b/lib/doc/Customization.lyx
index 1c07ccfe7a..24b4518b2a 100644
--- a/lib/doc/Customization.lyx
+++ b/lib/doc/Customization.lyx
@@ -24705,7 +24705,7 @@ status collapsed
 
 \begin_layout Description
 
-\change_inserted -712698321 1761553007
+\change_inserted -712698321 1761640200
 \begin_inset Flex Code
 status collapsed
 
@@ -24735,6 +24735,77 @@ status collapsed
 
  The text or command that is output to \SpecialChar LaTeX
 .
+ Note that special characters such as 
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1761640153
+
+\backslash
+
+\change_unchanged
+
+\end_layout
+
+\end_inset
+
+ or 
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1761640176
+\begin_inset Quotes qld
+\end_inset
+
+
+\change_unchanged
+
+\end_layout
+
+\end_inset
+
+ need to be escaped (
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1761640190
+
+\backslash
+
+\backslash
+
+\end_layout
+
+\end_inset
+
+,
+ 
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\change_inserted -712698321 1761640196
+
+\backslash
+
+\begin_inset Quotes qld
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+).
+\change_unchanged
+
 \end_layout
 
 \begin_layout Description
diff --git a/lib/doc/de/Customization.lyx b/lib/doc/de/Customization.lyx
index c9d4dd604f..7caf9b7e40 100644
--- a/lib/doc/de/Customization.lyx
+++ b/lib/doc/de/Customization.lyx
@@ -23685,6 +23685,64 @@ status collapsed
  Der Text oder Befehl,
  der in \SpecialChar LaTeX
  ausgegeben wird.
+ Beachten Sie,
+ dass Sonderzeichen wie 
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+
+\end_layout
+
+\end_inset
+
+ oder 
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+\begin_inset Quotes qld
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+ maskiert werden müssen (
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+
+\backslash
+
+\end_layout
+
+\end_inset
+
+,
+ 
+\begin_inset Flex Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+
+\begin_inset Quotes qld
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+).
 \end_layout
 
 \begin_layout Description
diff --git a/lib/layouts/stdspecialchars.inc b/lib/layouts/stdspecialchars.inc
index 4709d6d31f..5a1526266f 100644
--- a/lib/layouts/stdspecialchars.inc
+++ b/lib/layouts/stdspecialchars.inc
@@ -15,7 +15,7 @@ SpecialChar endofsentence
        Type            specialchar
        MenuString      "End of Sentence|E"
        LyXOutput       0x002e
-       LatexOutput     \@.
+       LatexOutput     \\@.
        PlaintextOutput 0x002e
        XHTMLOutput     .
        Tooltip         "End of Sentence"
@@ -30,7 +30,7 @@ SpecialChar ldots
        MenuString      "Ellipsis|i"
        Tooltip         "Ellipsis"
        LyXOutput       0x2026
-       LatexOutput     \ldots
+       LatexOutput     \\ldots
        PlaintextOutput 0x2026
        XHTMLOutput     &#x2026;
        IsChar          1
@@ -44,8 +44,8 @@ SpecialChar menuseparator
        MenuString      "Menu Separator|M"
        Tooltip         "Menu Separator"
        LyXOutput       0x25b7
-       LatexOutput     \lyxarrow
-       LaTexOutputRTL  \lyxarrow*
+       LatexOutput     \\lyxarrow
+       LaTexOutputRTL  \\lyxarrow*
        PlaintextOutput "->"
        XHTMLOutput     &#x21D2;
        Requires        lyxarrow
@@ -60,7 +60,7 @@ SpecialChar breakableslash
        MenuString      "Breakable Slash|a"
        Tooltip         "Breakable Slash"
        LyXOutput       0x002f
-       LatexOutput     \slash
+       LatexOutput     \\slash
        PlaintextOutput 0x002f
        XHTMLOutput     &#x2044;
        Tooltip         "Breakable Slash"
@@ -76,7 +76,7 @@ SpecialChar nobreakdash
        MenuString      "Non-Breaking Hyphen|y"
        Tooltip         "Non-Breaking Hyphen (SHY)"
        LyXOutput       0x2010
-       LatexOutput     \nobreakdash-
+       LatexOutput     \\nobreakdash-
        NeedProtect     1
        PlaintextOutput 0x2011
        XHTMLOutput     &#x2011;
@@ -97,7 +97,7 @@ SpecialChar allowbreak
        MenuString      "Optional Line Break|B"
        Tooltip         "Optional Line Break (ZWSP)"
        LyXOutput       0x002f
-       LatexOutput     \LyXZeroWidthSpace
+       LatexOutput     \\LyXZeroWidthSpace
        PlaintextOutput 0x200b
        XHTMLOutput     &#x200B;
        Requires        lyxzerowidthspace
@@ -112,7 +112,7 @@ SpecialChar ligaturebreak
        MenuString      "Ligature Break|k"
        Tooltip         "Ligature Break (ZWNJ)"
        LyXOutput       0x007c
-       LatexOutput     \textcompwordmark
+       LatexOutput     \\textcompwordmark
        LaTeXOutputUTF8 0x200c
        PlaintextOutput 0x200c
        XHTMLOutput     &#x200C;
@@ -128,7 +128,7 @@ SpecialChar softhyphen
        MenuString      "Hyphenation Point|H"
        Tooltip         "Hyphenation Point"
        LyXOutput       0x2010
-       LatexOutput     \-
+       LatexOutput     \\-
        IsLetter        1
        XHTMLOutput     &#xAD;
        CanBreakAfter   1
@@ -144,7 +144,7 @@ End
 SpecialChar LaTeX
        Type            logo
        MenuString      "LaTeX Logo|a"
-       LatexOutput     \LaTeX
+       LatexOutput     \\LaTeX
        NeedProtect     1
        PlaintextOutput LaTeX
        XHTMLOutput     LaTeX
@@ -156,7 +156,7 @@ End
 SpecialChar LaTeX2e
        Type            logo
        MenuString      "LaTeX2e Logo|e"
-       LatexOutput     \LaTeXe
+       LatexOutput     \\LaTeXe
        NeedProtect     1
        PlaintextOutput LaTeX2e
        XHTMLOutput     LaTeX2&#x03b5;
@@ -168,7 +168,7 @@ End
 SpecialChar LyX
        Type            logo
        MenuString      "LyX Logo|L"
-       LatexOutput     \LyX
+       LatexOutput     \\LyX
        NeedProtect     1
        PlaintextOutput LyX
        XHTMLOutput     LyX
@@ -181,7 +181,7 @@ End
 SpecialChar TeX
        Type            logo
        MenuString      "TeX Logo|T"
-       LatexOutput     \TeX
+       LatexOutput     \\TeX
        NeedProtect     1
        PlaintextOutput TeX
        XHTMLOutput     TeX
diff --git a/src/TextClass.cpp b/src/TextClass.cpp
index 27b2f638d7..b05d844800 100644
--- a/src/TextClass.cpp
+++ b/src/TextClass.cpp
@@ -1237,7 +1237,7 @@ void TextClass::readSpecialChars(Lexer & lexrc)
                        sc.menustring = trim(lexrc.getString(), "\"");
                        break;
                case SC_LATEX_OUTPUT: {
-                       lexrc.next();
+                       lexrc.next(true);
                        docstring const res = rtrim(lexrc.getDocString());
                        if (isHex(res))
                                sc.latex_output = docstring(1, hexToInt(res));
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to