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 …
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 ⇒
Requires lyxarrow
@@ -60,7 +60,7 @@ SpecialChar breakableslash
MenuString "Breakable Slash|a"
Tooltip "Breakable Slash"
LyXOutput 0x002f
- LatexOutput \slash
+ LatexOutput \\slash
PlaintextOutput 0x002f
XHTMLOutput ⁄
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 ‑
@@ -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 ​
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 ‌
@@ -128,7 +128,7 @@ SpecialChar softhyphen
MenuString "Hyphenation Point|H"
Tooltip "Hyphenation Point"
LyXOutput 0x2010
- LatexOutput \-
+ LatexOutput \\-
IsLetter 1
XHTMLOutput ­
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ε
@@ -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