Merge branch 'master' into features/indexmacros

This commit is contained in:
Juergen Spitzmueller 2022-05-14 16:29:46 +02:00
commit 047004cb0f
52 changed files with 1203 additions and 466 deletions

View File

@ -1,12 +1,12 @@
#LyX 2.4 created this file. For more info see https://www.lyx.org/ #LyX 2.4 created this file. For more info see https://www.lyx.org/
\lyxformat 574 \lyxformat 609
\begin_document \begin_document
\begin_header \begin_header
\save_transient_properties true \save_transient_properties true
\origin unavailable \origin unavailable
\textclass article \textclass article
\use_default_options true \use_default_options true
\maintain_unincluded_children false \maintain_unincluded_children no
\language polish \language polish
\language_package default \language_package default
\inputencoding auto-legacy \inputencoding auto-legacy
@ -18,7 +18,9 @@
\font_default_family default \font_default_family default
\use_non_tex_fonts false \use_non_tex_fonts false
\font_sc false \font_sc false
\font_osf false \font_roman_osf false
\font_sans_osf false
\font_typewriter_osf false
\font_sf_scale 100 100 \font_sf_scale 100 100
\font_tt_scale 100 100 \font_tt_scale 100 100
\use_microtype false \use_microtype false
@ -55,6 +57,7 @@
\justification true \justification true
\use_refstyle 1 \use_refstyle 1
\use_minted 0 \use_minted 0
\use_lineno 0
\index Index \index Index
\shortcut idx \shortcut idx
\color #008000 \color #008000
@ -73,9 +76,13 @@
\tablestyle default \tablestyle default
\tracking_changes false \tracking_changes false
\output_changes false \output_changes false
\change_bars false
\postpone_fragile_content false
\html_math_output 0 \html_math_output 0
\html_css_as_file 0 \html_css_as_file 0
\html_be_strict false \html_be_strict false
\docbook_table_output 0
\docbook_mathml_prefix 1
\end_header \end_header
\begin_body \begin_body
@ -127,7 +134,7 @@ lll which becomes
\begin_inset Quotes prd \begin_inset Quotes prd
\end_inset \end_inset
with pdfTeX and a missing symbol with LuaTeX.. .
\end_layout \end_layout
\end_body \end_body

View File

@ -231,10 +231,10 @@ AC_DEFUN([QT_DO_IT_ALL],
CPPFLAGS="$save_CPPFLAGS $QT_CORE_INCLUDES" CPPFLAGS="$save_CPPFLAGS $QT_CORE_INCLUDES"
AC_CHECK_HEADER(QtGui/qtgui-config.h, AC_CHECK_HEADER(QtGui/qtgui-config.h,
[lyx_qt5_config=QtGui/qtgui-config.h], [lyx_qt5_config=QtGui/qtgui-config.h],
[lyx_qt5_config=qconfig.h],[-]) [lyx_qt5_config=qconfig.h])
AC_CHECK_HEADER(QtGui/private/qtgui-config_p.h, AC_CHECK_HEADER(QtGui/private/qtgui-config_p.h,
[lyx_qt6_config=QtGui/private/qtgui-config_p.h], [lyx_qt6_config=QtGui/private/qtgui-config_p.h],
[lyx_qt6_config=qconfig.h],[-]) [lyx_qt6_config=qconfig.h])
AC_MSG_CHECKING([whether Qt uses the X Window system]) AC_MSG_CHECKING([whether Qt uses the X Window system])
if test x$USE_QT6 = xyes ; then if test x$USE_QT6 = xyes ; then
dnl FIXME: Check whether defining QPA_XCB makes sense with Qt6 dnl FIXME: Check whether defining QPA_XCB makes sense with Qt6

View File

@ -1,6 +1,6 @@
Cannot find translation for language Cannot find translation for language
Warning: Lyx2lyx knows nothing about (textclass|module) lyx2lyx warning: Lyx2lyx knows nothing about (textclass|module)
Warning: sfval: [0-9]+ [0-9]+ lyx2lyx warning: sfval: [0-9]+ [0-9]+
Warning: a buffer should not have two parents! Warning: a buffer should not have two parents!
The master .* does not include this document. Ignoring the master assignment The master .* does not include this document. Ignoring the master assignment
Warning: Different textclasses Warning: Different textclasses

View File

@ -9,7 +9,7 @@ KK: foo \Cefoo foo\Ce foo\C\[Home]
KK: \Cs KK: \Cs
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
# Select emphasised # Select emphasised
KK: \Ce KK: \Ce

View File

@ -20,7 +20,7 @@ KK: \C\[F29]foo\C\[Home]
KK: \Axbuffer-write\[Return] KK: \Axbuffer-write\[Return]
KK: \Axdialog-show findreplaceadv\[Return] KK: \Axdialog-show findreplaceadv\[Return]
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
#KK: \Aj #KK: \Aj
KK: \C\[F22]foo\[Return] KK: \C\[F22]foo\[Return]
@ -31,8 +31,8 @@ CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \[Escape]\C\[Home] KK: \[Escape]\C\[Home]
KK: \Axdialog-show findreplaceadv\[Return] KK: \Axdialog-show findreplaceadv\[Return]
KK: \[Delete] KK: \[Delete]
# Uncheck ignore format # Check ignore format
#KK: \At\Ai\Ah KK: \At\Ar\Ať\Ah
#KK: \CF #KK: \CF
KK: \C\[F29] KK: \C\[F29]
KK: foo\[Return]\[Return]\[Return] KK: foo\[Return]\[Return]\[Return]

View File

@ -27,7 +27,7 @@ KK: foo bar\C\[Home]
KK: \Axbuffer-write\[Return] KK: \Axbuffer-write\[Return]
KK: \Axdialog-show findreplaceadv\[Return] KK: \Axdialog-show findreplaceadv\[Return]
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F30] KK: \C\[F30]
Sleep 1 Sleep 1
@ -40,7 +40,7 @@ KK: \[Escape]\C\[Home]
KK: \CF KK: \CF
KK: \[Delete] KK: \[Delete]
# Uncheck ignore format # Uncheck ignore format
#KK: \At\Ai\Ah #KK: \At\Ar\Ak\Ah
#KK: \CF #KK: \CF
KK: \C\[F30] KK: \C\[F30]
Sleep 1 Sleep 1

View File

@ -12,7 +12,7 @@ KK: \C\[F30]
KK: one\[Return]two\[Return]three\C\[Home]\Cs KK: one\[Return]two\[Return]three\C\[Home]\Cs
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F30] KK: \C\[F30]
KK: \C\[F20][a-z]* \[Return] KK: \C\[F20][a-z]* \[Return]
@ -24,7 +24,7 @@ KK: \[Escape]\C\[Home]
KK: \CF KK: \CF
KK: \[Delete] KK: \[Delete]
# Uncheck ignore format # Uncheck ignore format
#KK: \At\Ai\Ah #KK: \At\Ar\Ak\Ah
#KK: \CF #KK: \CF
KK: \C\[F30] KK: \C\[F30]
KK: \C\[F20][a-z]* \[Return]\[Return] KK: \C\[F20][a-z]* \[Return]\[Return]

View File

@ -10,7 +10,7 @@ KK: a WYSIWYG LaTeX editor.\C\[Home]
KK: \Cs KK: \Cs
KK: \CF KK: \CF
# Uncheck ignore format (depends on IT language) # Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: LyX\[Return] KK: LyX\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 8\n with len: 3 CP: Putting selection at .*idx: 0 par: 0 pos: 8\n with len: 3
@ -21,7 +21,7 @@ KK: \[Escape]\C\[Home]
KK: \CF KK: \CF
KK: \[Delete] KK: \[Delete]
# Uncheck ignore format # Uncheck ignore format
#KK: \At\Ai\Ah #KK: \At\Ar\Ak\Ah
#KK: \CF #KK: \CF
KK: LaTeX\[Return] KK: LaTeX\[Return]
CP: Putting selection at .*idx: 0 par: 1 pos: 10\n with len: 5 CP: Putting selection at .*idx: 0 par: 1 pos: 10\n with len: 5

View File

@ -11,7 +11,7 @@ KK: x^2 +x^2\C\[Home]
KK: \Cs KK: \Cs
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Amd KK: \Amd
KK: x^2\[Return] KK: x^2\[Return]
@ -33,7 +33,7 @@ KK: \[Escape]\C\[Home]
CP: Key (queried) [action=buffer-begin][Ctrl+Home] CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \CF KK: \CF
KK: \[Delete] KK: \[Delete]
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Amd KK: \Amd
KK: x^2\[Return] KK: x^2\[Return]

View File

@ -12,7 +12,7 @@ KK: x^2 +x^2\C\[Home]
KK: \Cs KK: \Cs
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F22] KK: \C\[F22]
KK: x^2\[Return] KK: x^2\[Return]
@ -35,7 +35,7 @@ CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \CF KK: \CF
KK: \[Delete] KK: \[Delete]
# Check ignore format (was unchecked) # Check ignore format (was unchecked)
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F22] KK: \C\[F22]
KK: x^2\[Return] KK: x^2\[Return]

View File

@ -13,7 +13,7 @@ KK: x^2 +x^2\C\[Home]
KK: \Cs KK: \Cs
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \CM\C\[F24] KK: \CM\C\[F24]
KK: x^2\[Return] KK: x^2\[Return]

View File

@ -17,7 +17,7 @@ CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \CF KK: \CF
KK: \[Delete] KK: \[Delete]
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Cm\\beta\\alpha \[Return] KK: \Cm\\beta\\alpha \[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 0\n.*idx: 0 par: 0 pos: 1\n with len: 2 CP: Putting selection at .*idx: 0 par: 0 pos: 0\n.*idx: 0 par: 0 pos: 1\n with len: 2

View File

@ -23,7 +23,7 @@ KK: op2 nine\C\[Home]
KK: \Cs KK: \Cs
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Aoe KK: \Aoe
KK: \C\[F20][a-z]* \[Return]\[Return] KK: \C\[F20][a-z]* \[Return]\[Return]
@ -38,7 +38,7 @@ Cr: ^.*Putting
KK: \CF\[Delete] KK: \CF\[Delete]
# Uncheck ignore format # Uncheck ignore format
#KK: \At\Ai\Ah #KK: \At\Ar\Ak\Ah
#KK: \CF #KK: \CF
KK: \Aol KK: \Aol
KK: \C\[F20][a-z]2 \C\[F20][a-z]+ KK: \C\[F20][a-z]2 \C\[F20][a-z]+

View File

@ -5,7 +5,7 @@ PrepareShortcuts
# #
Lang sk_SK.utf8 Lang sk_SK.utf8
CO: findadv-22.ctrl CO: findadv-22.ctrl
TestBegin test.lyx -dbg key,find >findadv-22.loga.txt 2>&1 TestBegin test.lyx -dbg key,findverbose >findadv-22.loga.txt 2>&1
CN: Part 1 CN: Part 1
KK: \Cm KK: \Cm
KK: I_t\\wedge s KK: I_t\\wedge s
@ -19,7 +19,7 @@ CP: Putting selection at .*idx: 0 par: 0 pos: 0\n.*idx: 0 par: 0 pos: 0\n.*idx:
CN: Part 2 CN: Part 2
KK: \[Escape]\C\[Home] KK: \[Escape]\C\[Home]
KK: \CF KK: \CF
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \[Return] KK: \[Return]
CP: Identified Features CP: Identified Features

View File

@ -93,7 +93,7 @@ CN: ..
# #
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
Sleep 1 Sleep 1
KK: \[Escape]\C\[Home] KK: \[Escape]\C\[Home]
Sleep 1 Sleep 1

View File

@ -9,7 +9,7 @@ KK: for a WYSIWYG LaTeX editor.\C\[Home]
KK: \Cs KK: \Cs
KK: \CF KK: \CF
# Uncheck ignore format (depends on IT language) # Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Axspecialchar-insert lyx\[Return]\[Tab] KK: \Axspecialchar-insert lyx\[Return]\[Tab]
KK: \Axspecialchar-insert latex\[Return]\Al\Ar\An KK: \Axspecialchar-insert latex\[Return]\Al\Ar\An

View File

@ -21,7 +21,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-01.loga.txt 2>&1
CN: Part 2 CN: Part 2
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F20]\\(\[Return] KK: \C\[F20]\\(\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 1\n with len: 1 CP: Putting selection at .*idx: 0 par: 0 pos: 1\n with len: 1
@ -44,7 +44,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-01.loga.txt 2>&1
CN: Part 4 CN: Part 4
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F20]\\[\[Return] KK: \C\[F20]\\[\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 3\n with len: 1 CP: Putting selection at .*idx: 0 par: 0 pos: 3\n with len: 1

View File

@ -20,7 +20,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-02.loga.txt 2>&1
CN: Part 2 CN: Part 2
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F20]\\\\\[Return] KK: \C\[F20]\\\\\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 0\n with len: 1 CP: Putting selection at .*idx: 0 par: 0 pos: 0\n with len: 1
@ -43,7 +43,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-02.loga.txt 2>&1
CN: Part 4 CN: Part 4
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F20]%\[Return] KK: \C\[F20]%\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 7\n with len: 1 CP: Putting selection at .*idx: 0 par: 0 pos: 7\n with len: 1
@ -66,7 +66,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-02.loga.txt 2>&1
CN: Part 6 CN: Part 6
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F20]\\^\[Return] KK: \C\[F20]\\^\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 8\n with len: 1 CP: Putting selection at .*idx: 0 par: 0 pos: 8\n with len: 1

View File

@ -20,7 +20,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-03.loga.txt 2>&1
CN: Part 2 CN: Part 2
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F20]\\{\[Return] KK: \C\[F20]\\{\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 5\n with len: 1 CP: Putting selection at .*idx: 0 par: 0 pos: 5\n with len: 1
@ -43,7 +43,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-03.loga.txt 2>&1
CN: Part 4 CN: Part 4
KK: \CF KK: \CF
# Uncheck ignore format # Uncheck ignore format
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \C\[F20]\\}\[Return] KK: \C\[F20]\\}\[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 6\n with len: 1 CP: Putting selection at .*idx: 0 par: 0 pos: 6\n with len: 1

View File

@ -14,7 +14,7 @@ KK: \C\[Home]
KK: \Cs KK: \Cs
KK: \CF KK: \CF
# Uncheck ignore format (depends on IT language) # Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Ce KK: \Ce
CN: Case insensitive, format not ignored .* CN: Case insensitive, format not ignored .*
@ -31,7 +31,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-04.loga.txt 2>&1
CN: Case insensitive, format not ignored [a-z]+ CN: Case insensitive, format not ignored [a-z]+
KK: \CF KK: \CF
# Uncheck ignore format (depends on IT language) # Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Ce KK: \Ce
KK: \C\[F20]\\b[a-z]+\\b\[Return]\[Return]\[Return] KK: \C\[F20]\\b[a-z]+\\b\[Return]\[Return]\[Return]
@ -49,7 +49,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-04.loga.txt 2>&1
CN: Case sensitive, format not ignored [a-z]+ CN: Case sensitive, format not ignored [a-z]+
KK: \CF KK: \CF
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Ce KK: \Ce
KK: \Az\[Tab]\[Tab]\C\[F20][a-z]+\[Return]\[Return]\[Return]\[Return] KK: \Az\[Tab]\[Tab]\C\[F20][a-z]+\[Return]\[Return]\[Return]\[Return]
@ -71,7 +71,7 @@ TestBegin test.lyx -dbg key,find >> findadv-re-04.loga.txt 2>&1
CN: Case sensitive, format not ignored [A-Z]+ CN: Case sensitive, format not ignored [A-Z]+
KK: \CF KK: \CF
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Ce KK: \Ce
KK: \Az\[Tab]\[Tab]\C\[F20][A-Z]+\[Return]\[Return]\[Return] KK: \Az\[Tab]\[Tab]\C\[F20][A-Z]+\[Return]\[Return]\[Return]

View File

@ -9,7 +9,7 @@ KD: 50
KK: \Cm\\frac 1-x\[Down]1+x^2 \C\[Home] KK: \Cm\\frac 1-x\[Down]1+x^2 \C\[Home]
KK: \CF KK: \CF
# Uncheck ignore format (depends on IT language) # Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah KK: \At\Ar\Ak\Ah
KK: \CF KK: \CF
KK: \Cm\\frac \C\[F20].* \[Down]1+x^2 \[Return] KK: \Cm\\frac \C\[F20].* \[Down]1+x^2 \[Return]
CP: Putting selection at .*idx: 0 par: 0 pos: 0\n .*idx: 0 par: 0 pos: 0\n with len: 1 CP: Putting selection at .*idx: 0 par: 0 pos: 0\n .*idx: 0 par: 0 pos: 0\n with len: 1

View File

@ -30,7 +30,7 @@ string(COMPARE NOTEQUAL ${_err} 0 _erg)
file(STRINGS ${errorfile} foundErrors) file(STRINGS ${errorfile} foundErrors)
if(foundErrors) if(foundErrors)
foreach(_l ${foundErrors}) foreach(_l ${foundErrors})
if (NOT _l MATCHES "Warning: No conversion needed:") if (NOT _l MATCHES "lyx2lyx warning: No conversion needed:")
set(_erg 1) set(_erg 1)
message(STATUS "${_l}") message(STATUS "${_l}")
endif() endif()

View File

@ -12,10 +12,10 @@
\usepackage{url} \usepackage{url}
\ifx\hypersetup\undefined \ifx\hypersetup\undefined
\AtBeginDocument{% \AtBeginDocument{%
\hypersetup{unicode=true} \hypersetup{}
} }
\else \else
\hypersetup{unicode=true} \hypersetup{}
\fi \fi
\makeatletter \makeatletter

View File

@ -165,6 +165,7 @@ logicalmkup
\author 5863344 "Enrico Forestieri" \author 5863344 "Enrico Forestieri"
\author 244031559 "Yuriy" \author 244031559 "Yuriy"
\author 630872221 "Jean-Pierre Chrétien" jeanpierre.chretien@free.fr \author 630872221 "Jean-Pierre Chrétien" jeanpierre.chretien@free.fr
\author 1549938239 "Kornel Benko"
\author 1675569489 "Stephan Witt" \author 1675569489 "Stephan Witt"
\end_header \end_header
@ -8973,14 +8974,12 @@ Verbatim
\end_layout \end_layout
\begin_layout Verbatim \begin_layout Verbatim
This is Verbatim. This is Verbatim.
\end_layout \end_layout
\begin_layout Verbatim \begin_layout Verbatim
\noindent \noindent
\align block \align block
The following 2 lines are empty: The following 2 lines are empty:
\end_layout \end_layout
@ -8993,7 +8992,6 @@ The following 2 lines are empty:
\end_layout \end_layout
\begin_layout Verbatim \begin_layout Verbatim
Almost everything is allowed in Verbatim:"%&$§#~'` Almost everything is allowed in Verbatim:"%&$§#~'`
\backslash \backslash
}][{| }][{|
@ -9017,7 +9015,6 @@ Verbatim
\end_layout \end_layout
\begin_layout Verbatim* \begin_layout Verbatim*
This is Verbatim*. This is Verbatim*.
\end_layout \end_layout
@ -38775,7 +38772,7 @@ R
. .
\end_layout \end_layout
\begin_layout Subsection \begin_layout Subsubsection
Advanced usage Advanced usage
\end_layout \end_layout
@ -38863,12 +38860,25 @@ Find
\end_layout \end_layout
\begin_layout Enumerate \begin_layout Enumerate
Searching for all text with a given style: for example, after unchecking Searching for all text with a given style: for example, after
the \change_deleted 1549938239 1651390777
un
\change_unchanged
checking the
\change_inserted 1549938239 1651390710
\family sans \family sans
'Adhere to search string formatting of'
\change_deleted 1549938239 1651390724
Ignore format Ignore format
\change_unchanged
\family default \family default
option from the
\change_inserted 1549938239 1651390961
and the 'Select all'
\change_unchanged
option from the
\family sans \family sans
Settings Settings
\family default \family default
@ -38888,8 +38898,109 @@ Settings
regular expression in a bullet or enumerated list or a section heading, regular expression in a bullet or enumerated list or a section heading,
you can find all bullet or enumerated lists or section headings. you can find all bullet or enumerated lists or section headings.
\change_inserted 1549938239 1651391772
The meaning of the specific style options (if checked) is as follows:
\end_layout \end_layout
\begin_deeper
\begin_layout Description
\change_inserted 1549938239 1651391862
Language Allows searching for text in specific language
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392163
Font
\begin_inset space ~
\end_inset
color colored text like cyan, yellow, etc
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392038
Font
\begin_inset space ~
\end_inset
family Roman, Sans serif, Typewriter
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392204
Font
\begin_inset space ~
\end_inset
series e.g.
Bold
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392249
Font
\begin_inset space ~
\end_inset
shape e.g.
upright, italic, ...
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392299
Font
\begin_inset space ~
\end_inset
size e.g.
Large, Tiny, ...
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392343
Emph/noun Semantic Markup: Emphasized, Noun
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392414
Underlining e.g.
Single, Double, Wawy
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392503
Strike-through Single, With '/'
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392776
Deletion searches also in deleted parts (in case of 'Track Changes' enabled)
\end_layout
\begin_layout Description
\change_inserted 1549938239 1651392891
Sectioning
\begin_inset space ~
\end_inset
markup e.g.
title, part, chapter, section, ...
\end_layout
\end_deeper
\begin_layout Standard \begin_layout Standard
Finally, references to (sub)expressions in regexp may be used as usual: Finally, references to (sub)expressions in regexp may be used as usual:
Enclosing parts of the expression within round braces Enclosing parts of the expression within round braces
@ -38909,9 +39020,25 @@ Finally, references to (sub)expressions in regexp may be used as usual:
\begin_inset Newline newline \begin_inset Newline newline
\end_inset \end_inset
\change_inserted 1549938239 1651393222
\backslash
b(
\backslash
w+)
\backslash
s
\backslash
1
\backslash
b
\change_deleted 1549938239 1651393089
[[:space:]]([[:alpha:]]+)[[:space:]] [[:space:]]([[:alpha:]]+)[[:space:]]
\backslash \backslash
1[[:space:]] 1[[:space:]]
\change_unchanged
\begin_inset Newline newline \begin_inset Newline newline
\end_inset \end_inset
@ -38919,7 +39046,11 @@ in order to find word repetitions, if there are any.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard
The usage of back references in the replaced text is not (yet) implemented. The usage of back references in the replaced text is not (yet)
\change_inserted 1549938239 1651393403
fully
\change_unchanged
implemented.
\end_layout \end_layout
\begin_layout Standard \begin_layout Standard

View File

@ -414,7 +414,7 @@ Menuset
Menu "context-edit-regexp" Menu "context-edit-regexp"
Item "Anything|A" "command-sequence regexp-mode; self-insert .*" Item "Anything|A" "command-sequence regexp-mode; self-insert .*"
Item "Anything Non-Empty|o" "command-sequence regexp-mode; self-insert .+" Item "Anything Non-Empty|o" "command-sequence regexp-mode; self-insert .+"
Item "Any Word|W" "command-sequence regexp-mode; self-insert [a-z]+" Item "Any Word|W" "command-sequence regexp-mode; self-insert \w+"
Item "Any Number|N" "command-sequence regexp-mode; self-insert [0-9]+" Item "Any Number|N" "command-sequence regexp-mode; self-insert [0-9]+"
Item "User Defined|U" "regexp-mode" Item "User Defined|U" "regexp-mode"
End End

View File

@ -1,6 +1,6 @@
#serial 1 #serial 2
AC_PREREQ(2.50) AC_PREREQ([2.61])
# The EILSEQ errno value ought to be defined in <errno.h>, according to # The EILSEQ errno value ought to be defined in <errno.h>, according to
# ISO C 99 and POSIX. But some systems (like SunOS 4) don't define it, # ISO C 99 and POSIX. But some systems (like SunOS 4) don't define it,
@ -16,20 +16,20 @@ AC_DEFUN([AC_EILSEQ],
AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_CC])dnl
dnl Check for any extra headers that could define EILSEQ. dnl Check for any extra headers that could define EILSEQ.
AC_CHECK_HEADERS(wchar.h) AC_CHECK_HEADERS([wchar.h])
AC_CACHE_CHECK([for EILSEQ], ac_cv_decl_EILSEQ, [ AC_CACHE_CHECK([for EILSEQ], [ac_cv_decl_EILSEQ], [
AC_EGREP_CPP(yes,[ AC_EGREP_CPP([yes],[
#include <errno.h> #include <errno.h>
#ifdef EILSEQ #ifdef EILSEQ
yes yes
#endif #endif
], have_eilseq=1) ], [have_eilseq=1])
if test -n "$have_eilseq"; then if test -n "$have_eilseq"; then
dnl EILSEQ exists in <errno.h>. Don't need to define EILSEQ ourselves. dnl EILSEQ exists in <errno.h>. Don't need to define EILSEQ ourselves.
ac_cv_decl_EILSEQ=yes ac_cv_decl_EILSEQ=yes
else else
AC_EGREP_CPP(yes,[ AC_EGREP_CPP([yes],[
#include <errno.h> #include <errno.h>
#if HAVE_WCHAR_H #if HAVE_WCHAR_H
#include <wchar.h> #include <wchar.h>
@ -37,11 +37,11 @@ yes
#ifdef EILSEQ #ifdef EILSEQ
yes yes
#endif #endif
], have_eilseq=1) ], [have_eilseq=1])
if test -n "$have_eilseq"; then if test -n "$have_eilseq"; then
dnl EILSEQ exists in some other system header. dnl EILSEQ exists in some other system header.
dnl Define it to the same value. dnl Define it to the same value.
_AC_COMPUTE_INT([EILSEQ], ac_cv_decl_EILSEQ, [ AC_COMPUTE_INT([ac_cv_decl_EILSEQ], [EILSEQ], [
#include <errno.h> #include <errno.h>
#if HAVE_WCHAR_H #if HAVE_WCHAR_H
#include <wchar.h> #include <wchar.h>
@ -62,6 +62,6 @@ yes
AC_DEFINE_UNQUOTED([EILSEQ], [$ac_cv_decl_EILSEQ], AC_DEFINE_UNQUOTED([EILSEQ], [$ac_cv_decl_EILSEQ],
[Define as good substitute value for EILSEQ.]) [Define as good substitute value for EILSEQ.])
EILSEQ="$ac_cv_decl_EILSEQ" EILSEQ="$ac_cv_decl_EILSEQ"
AC_SUBST(EILSEQ) AC_SUBST([EILSEQ])
fi fi
]) ])

BIN
po/de.gmo

Binary file not shown.

224
po/de.po
View File

@ -94,15 +94,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: LyX 2.4git\n" "Project-Id-Version: LyX 2.4git\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n" "Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
"POT-Creation-Date: 2022-04-24 16:54+0200\n" "POT-Creation-Date: 2022-05-10 13:31+0200\n"
"PO-Revision-Date: 2022-04-24 17:05+0200\n" "PO-Revision-Date: 2022-05-10 13:47+0200\n"
"Last-Translator: Jürgen Spitzmüller <spitz@lyx.org>\n" "Last-Translator: Jürgen Spitzmüller <spitz@lyx.org>\n"
"Language-Team: Deutsch <lyx-docs@lists.lyx.org>\n" "Language-Team: Deutsch <lyx-docs@lists.lyx.org>\n"
"Language: de\n" "Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Gtranslator 41.0\n" "X-Generator: Gtranslator 42.0\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
#: src/frontends/qt/ui/AboutUi.ui:27 #: src/frontends/qt/ui/AboutUi.ui:27
@ -1037,6 +1037,7 @@ msgid "Font Properties"
msgstr "Schrifteigenschaften" msgstr "Schrifteigenschaften"
#: src/frontends/qt/ui/CharacterUi.ui:36 src/frontends/qt/ui/CharacterUi.ui:55 #: src/frontends/qt/ui/CharacterUi.ui:36 src/frontends/qt/ui/CharacterUi.ui:55
#: src/frontends/qt/ui/FindAndReplaceUi.ui:475
msgid "Font family" msgid "Font family"
msgstr "Schriftfamilie" msgstr "Schriftfamilie"
@ -1045,6 +1046,7 @@ msgid "Fa&mily:"
msgstr "&Familie:" msgstr "&Familie:"
#: src/frontends/qt/ui/CharacterUi.ui:62 src/frontends/qt/ui/CharacterUi.ui:81 #: src/frontends/qt/ui/CharacterUi.ui:62 src/frontends/qt/ui/CharacterUi.ui:81
#: src/frontends/qt/ui/FindAndReplaceUi.ui:447
msgid "Font series" msgid "Font series"
msgstr "Strichstärke" msgstr "Strichstärke"
@ -1053,6 +1055,7 @@ msgid "&Series:"
msgstr "S&trichstärke:" msgstr "S&trichstärke:"
#: src/frontends/qt/ui/CharacterUi.ui:88 src/frontends/qt/ui/CharacterUi.ui:107 #: src/frontends/qt/ui/CharacterUi.ui:88 src/frontends/qt/ui/CharacterUi.ui:107
#: src/frontends/qt/ui/FindAndReplaceUi.ui:510
msgid "Font shape" msgid "Font shape"
msgstr "Schriftschnitt" msgstr "Schriftschnitt"
@ -1062,11 +1065,13 @@ msgstr "Sch&nitt:"
#: src/frontends/qt/ui/CharacterUi.ui:114 #: src/frontends/qt/ui/CharacterUi.ui:114
#: src/frontends/qt/ui/CharacterUi.ui:133 #: src/frontends/qt/ui/CharacterUi.ui:133
#: src/frontends/qt/ui/FindAndReplaceUi.ui:524
msgid "Font size" msgid "Font size"
msgstr "Schriftgrad" msgstr "Schriftgrad"
#: src/frontends/qt/ui/CharacterUi.ui:159 #: src/frontends/qt/ui/CharacterUi.ui:159
#: src/frontends/qt/ui/CharacterUi.ui:178 #: src/frontends/qt/ui/CharacterUi.ui:178
#: src/frontends/qt/ui/FindAndReplaceUi.ui:454
msgid "Font color" msgid "Font color"
msgstr "Schriftfarbe" msgstr "Schriftfarbe"
@ -1100,12 +1105,14 @@ msgstr "Spracheinstellungen"
msgid "&Language:" msgid "&Language:"
msgstr "S&prache:" msgstr "S&prache:"
#: src/frontends/qt/ui/CharacterUi.ui:281 src/frontends/qt/ui/ListingsUi.ui:334 #: src/frontends/qt/ui/CharacterUi.ui:281
#: lib/layouts/bicaption.module:16 lib/layouts/europasscv.layout:440 #: src/frontends/qt/ui/FindAndReplaceUi.ui:482
#: lib/layouts/europasscv.layout:475 lib/layouts/europasscv.layout:482 #: src/frontends/qt/ui/ListingsUi.ui:334 lib/layouts/bicaption.module:16
#: lib/layouts/europecv.layout:321 lib/layouts/europecv.layout:327 #: lib/layouts/europasscv.layout:440 lib/layouts/europasscv.layout:475
#: lib/layouts/moderncv.layout:580 src/frontends/qt/GuiDocument.cpp:1781 #: lib/layouts/europasscv.layout:482 lib/layouts/europecv.layout:321
#: src/frontends/qt/GuiPrefs.cpp:2430 src/frontends/qt/Menus.cpp:938 #: lib/layouts/europecv.layout:327 lib/layouts/moderncv.layout:580
#: src/frontends/qt/GuiDocument.cpp:1781 src/frontends/qt/GuiPrefs.cpp:2430
#: src/frontends/qt/Menus.cpp:938
msgid "Language" msgid "Language"
msgstr "Sprache" msgstr "Sprache"
@ -1713,25 +1720,25 @@ msgid "Case &sensitive"
msgstr "&Groß-/Kleinschreibung beachten" msgstr "&Groß-/Kleinschreibung beachten"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:205 #: src/frontends/qt/ui/FindAndReplaceUi.ui:205
#: src/frontends/qt/FindAndReplace.cpp:648 #: src/frontends/qt/FindAndReplace.cpp:717
msgid "Find next occurrence (Enter, backwards: Shift+Enter)" msgid "Find next occurrence (Enter, backwards: Shift+Enter)"
msgstr "" msgstr ""
"Suche nächsten Treffer (Eingabetaste; rückwärts: Umschalt+Eingabetaste)" "Suche nächsten Treffer (Eingabetaste; rückwärts: Umschalt+Eingabetaste)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:208 #: src/frontends/qt/ui/FindAndReplaceUi.ui:208
#: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:647 #: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:716
msgid "Find &>" msgid "Find &>"
msgstr "Suchen &>" msgstr "Suchen &>"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:221 #: src/frontends/qt/ui/FindAndReplaceUi.ui:221
#: src/frontends/qt/FindAndReplace.cpp:650 #: src/frontends/qt/FindAndReplace.cpp:719
msgid "Replace and find next occurrence (Enter, backwards: Shift+Enter)" msgid "Replace and find next occurrence (Enter, backwards: Shift+Enter)"
msgstr "" msgstr ""
"Ersetze und suche nächsten Treffer (Eingabetaste; rückwärts: Umschalt" "Ersetze und suche nächsten Treffer (Eingabetaste; rückwärts: Umschalt"
"+Eingabetaste)" "+Eingabetaste)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:224 #: src/frontends/qt/ui/FindAndReplaceUi.ui:224
#: src/frontends/qt/FindAndReplace.cpp:649 #: src/frontends/qt/FindAndReplace.cpp:718
msgid "Rep&lace >" msgid "Rep&lace >"
msgstr "Erse&tzen >" msgstr "Erse&tzen >"
@ -1782,31 +1789,19 @@ msgstr "&Geöffnete Dokumente"
msgid "&All manuals" msgid "&All manuals"
msgstr "&Alle LyX-Handbücher" msgstr "&Alle LyX-Handbücher"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:370
msgid "Restrict search to math environments only"
msgstr "Suche auf die Mathe-Umgebung beschränken"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:373 #: src/frontends/qt/ui/FindAndReplaceUi.ui:373
msgid "Search on&ly in maths"
msgstr "Nur im Ma&the-Umfeld"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
msgid ""
"If unchecked, the search will be limited to occurrences of the selected text "
"and paragraph style"
msgstr ""
"Wenn Sie dies deaktivieren, wird die Suche nur auf Vorkommen beschränkt, die "
"die den ausgewählten Text- und Absatzstil verwenden."
#: src/frontends/qt/ui/FindAndReplaceUi.ui:386
msgid "I&gnore format"
msgstr "Ignoriere For&mat"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:399
msgid "E&xpand macros" msgid "E&xpand macros"
msgstr "Mak&ros ausklappen" msgstr "Mak&ros ausklappen"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:406 #: src/frontends/qt/ui/FindAndReplaceUi.ui:380
msgid "Restrict search to math environments only"
msgstr "Suche auf die Mathe-Umgebung beschränken"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
msgid "Search onl&y in maths"
msgstr "Nu&r im Mathe-Umfeld"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:390
msgid "" msgid ""
"Keep the case of the replacement's first letter as in each matching text " "Keep the case of the replacement's first letter as in each matching text "
"first letter" "first letter"
@ -1814,10 +1809,60 @@ msgstr ""
"Groß-/Kleinschreibung des ersten Buchstabens des gefundenen Textes " "Groß-/Kleinschreibung des ersten Buchstabens des gefundenen Textes "
"beibehalten" "beibehalten"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:409 #: src/frontends/qt/ui/FindAndReplaceUi.ui:393
msgid "&Preserve first case on replace" msgid "&Preserve first case on replace"
msgstr "Groß-/&Kleinschreibung bewahren" msgstr "Groß-/&Kleinschreibung bewahren"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:413
msgid "Do not search in content that is not output (e.g., notes)"
msgstr ""
"Nicht nach Inhalten suchen, die nicht ausgegeben werden (bspw. Notizen)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:416
msgid "Ignore &non-output content"
msgstr "&Nicht ausgegebene Inhalte ignorieren"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:425
msgid ""
"If the search string is formatted in a non-default way, only find strings "
"formatted like the search string in the checked respects"
msgstr ""
"Wenn der Sucheintrag in einer von den Grundeinstellungen abweichenden Art "
"und Weise formatiert ist, dann werden nur Zeichenketten gefunden, die in den "
"Aspekten, die hier ausgewählt sind, wie der Sucheintrag formatiert sind."
#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
msgid "Adhe&re to search string formatting of"
msgstr "Sucheintrags&formatierung beachten bzgl."
#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
msgid "Strike-through"
msgstr "Durchstreichung"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:461
msgid "Emph/noun"
msgstr "Hervorh./Eigenname"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
msgid "Dese&lect all"
msgstr "Alles deakti&vieren"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
msgid "Sectioning markup"
msgstr "Überschriftenformat"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:496
msgid "Deletion (change)"
msgstr "Löschung (Änderungen)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:503
msgid "Underlining"
msgstr "Unterstreichung"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
msgid "&Select all"
msgstr "Alles ausw&ählen"
#: src/frontends/qt/ui/FloatPlacementUi.ui:14 #: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14 #: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form" msgid "Form"
@ -5341,7 +5386,7 @@ msgstr "Ohne Präfix"
msgid "Find previous occurrence (Shift+Enter)" msgid "Find previous occurrence (Shift+Enter)"
msgstr "Vorhergehender Treffer (Umschalt+Eingabe)" msgstr "Vorhergehender Treffer (Umschalt+Eingabe)"
#: src/frontends/qt/ui/SearchUi.ui:55 src/frontends/qt/FindAndReplace.cpp:642 #: src/frontends/qt/ui/SearchUi.ui:55 src/frontends/qt/FindAndReplace.cpp:711
msgid "&< Find" msgid "&< Find"
msgstr "&< Suchen" msgstr "&< Suchen"
@ -28023,7 +28068,7 @@ msgid "greyedout inset text"
msgstr "Grauschrift-Einfügungstext" msgstr "Grauschrift-Einfügungstext"
#: src/BufferParams.cpp:1718 src/BufferParams.cpp:1872 #: src/BufferParams.cpp:1718 src/BufferParams.cpp:1872
#: src/BufferParams.cpp:2315 src/Encoding.cpp:264 src/Paragraph.cpp:3014 #: src/BufferParams.cpp:2315 src/Encoding.cpp:264 src/Paragraph.cpp:3026
#: src/frontends/qt/LaTeXHighlighter.cpp:143 #: src/frontends/qt/LaTeXHighlighter.cpp:143
#: src/frontends/qt/LaTeXHighlighter.cpp:257 #: src/frontends/qt/LaTeXHighlighter.cpp:257
#: src/insets/InsetCommandParams.cpp:508 src/insets/InsetCommandParams.cpp:516 #: src/insets/InsetCommandParams.cpp:508 src/insets/InsetCommandParams.cpp:516
@ -28035,7 +28080,7 @@ msgid "LyX Warning: "
msgstr "LyX-Warnung: " msgstr "LyX-Warnung: "
#: src/BufferParams.cpp:1719 src/BufferParams.cpp:1873 #: src/BufferParams.cpp:1719 src/BufferParams.cpp:1873
#: src/BufferParams.cpp:2316 src/Encoding.cpp:265 src/Paragraph.cpp:3015 #: src/BufferParams.cpp:2316 src/Encoding.cpp:265 src/Paragraph.cpp:3027
#: src/insets/InsetCommandParams.cpp:509 src/insets/InsetCommandParams.cpp:517 #: src/insets/InsetCommandParams.cpp:509 src/insets/InsetCommandParams.cpp:517
#: src/insets/InsetGraphics.cpp:901 src/insets/InsetGraphics.cpp:909 #: src/insets/InsetGraphics.cpp:901 src/insets/InsetGraphics.cpp:909
#: src/insets/InsetListings.cpp:300 src/insets/InsetListings.cpp:308 #: src/insets/InsetListings.cpp:300 src/insets/InsetListings.cpp:308
@ -30455,15 +30500,15 @@ msgstr "Zur gespeicherten Version des Dokuments zurückkehren?"
msgid "&Revert" msgid "&Revert"
msgstr "&Wiederherstellen" msgstr "&Wiederherstellen"
#: src/Paragraph.cpp:2152 #: src/Paragraph.cpp:2164
msgid "Senseless with this layout!" msgid "Senseless with this layout!"
msgstr "Für dieses Format nicht relevant!" msgstr "Für dieses Format nicht relevant!"
#: src/Paragraph.cpp:2206 #: src/Paragraph.cpp:2218
msgid "Alignment not permitted" msgid "Alignment not permitted"
msgstr "Ausrichtung nicht erlaubt" msgstr "Ausrichtung nicht erlaubt"
#: src/Paragraph.cpp:2207 #: src/Paragraph.cpp:2219
msgid "" msgid ""
"The new layout does not permit the alignment previously used.\n" "The new layout does not permit the alignment previously used.\n"
"Setting to default." "Setting to default."
@ -30568,7 +30613,7 @@ msgstr ", Zeichen: 0x"
msgid ", Boundary: " msgid ", Boundary: "
msgstr ", Grenze: " msgstr ", Grenze: "
#: src/Text2.cpp:406 #: src/Text2.cpp:407
msgid "No font change defined." msgid "No font change defined."
msgstr "Keine Schriftänderung definiert." msgstr "Keine Schriftänderung definiert."
@ -30592,36 +30637,36 @@ msgstr "Regexp-Editor-Modus"
msgid "Layout " msgid "Layout "
msgstr "Format " msgstr "Format "
#: src/Text3.cpp:1619 src/Text3.cpp:2193 #: src/Text3.cpp:1619 src/Text3.cpp:2203
msgid " not known" msgid " not known"
msgstr " unbekannt" msgstr " unbekannt"
#: src/Text3.cpp:2192 #: src/Text3.cpp:2202
msgid "Table Style " msgid "Table Style "
msgstr "Tabellenstil" msgstr "Tabellenstil"
#: src/Text3.cpp:2385 src/frontends/qt/GuiApplication.cpp:1887 #: src/Text3.cpp:2395 src/frontends/qt/GuiApplication.cpp:1887
msgid "Missing argument" msgid "Missing argument"
msgstr "Fehlendes Argument" msgstr "Fehlendes Argument"
#: src/Text3.cpp:2550 #: src/Text3.cpp:2560
msgid "Invalid argument (number exceeds stack size)!" msgid "Invalid argument (number exceeds stack size)!"
msgstr "Ungültiges Argument (Zahl größer als Zwischenspeicher)!" msgstr "Ungültiges Argument (Zahl größer als Zwischenspeicher)!"
#: src/Text3.cpp:2554 #: src/Text3.cpp:2564
msgid "Invalid argument (must be a non-negative number)!" msgid "Invalid argument (must be a non-negative number)!"
msgstr "Ungültiges Argument (muss eine nicht-negative Zahl sein)!" msgstr "Ungültiges Argument (muss eine nicht-negative Zahl sein)!"
#: src/Text3.cpp:2559 src/Text3.cpp:2573 #: src/Text3.cpp:2569 src/Text3.cpp:2583
#, c-format #, c-format
msgid "Text properties applied: %1$s" msgid "Text properties applied: %1$s"
msgstr "Angewendete Texteigenschaften: %1$s" msgstr "Angewendete Texteigenschaften: %1$s"
#: src/Text3.cpp:2732 #: src/Text3.cpp:2742
msgid "Path to thesaurus directory not set!" msgid "Path to thesaurus directory not set!"
msgstr "Pfad zum Thesaurus-Wörterbuch nicht festlegt!" msgstr "Pfad zum Thesaurus-Wörterbuch nicht festlegt!"
#: src/Text3.cpp:2733 #: src/Text3.cpp:2743
msgid "" msgid ""
"The path to the thesaurus directory has not been specified.\n" "The path to the thesaurus directory has not been specified.\n"
"The thesaurus is not functional.\n" "The thesaurus is not functional.\n"
@ -30633,7 +30678,7 @@ msgstr ""
"Im Benutzerhandbuch, Abschnitt 6.15.11, finden Sie Hinweise,\n" "Im Benutzerhandbuch, Abschnitt 6.15.11, finden Sie Hinweise,\n"
"um den Thesaurus einzurichten." "um den Thesaurus einzurichten."
#: src/Text3.cpp:2859 src/Text3.cpp:2870 #: src/Text3.cpp:2869 src/Text3.cpp:2880
msgid "Paragraph layout set" msgid "Paragraph layout set"
msgstr "Absatzformat festgelegt" msgstr "Absatzformat festgelegt"
@ -31020,15 +31065,15 @@ msgstr ""
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526 #: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895 #: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895
#: src/lyxfind.cpp:310 src/lyxfind.cpp:337 src/lyxfind.cpp:358 #: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
#: src/lyxfind.cpp:701 src/lyxfind.cpp:729 #: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&Yes" msgid "&Yes"
msgstr "&Ja" msgstr "&Ja"
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526 #: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895 #: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895
#: src/lyxfind.cpp:310 src/lyxfind.cpp:337 src/lyxfind.cpp:358 #: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
#: src/lyxfind.cpp:701 src/lyxfind.cpp:729 #: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&No" msgid "&No"
msgstr "&Nein" msgstr "&Nein"
@ -31237,8 +31282,8 @@ msgstr "Erweiterte Suche läuft (drücken Sie ESC, um abzubrechen) ..."
msgid "Advanced search cancelled by user" msgid "Advanced search cancelled by user"
msgstr "Erweiterte Suche durch den Benutzer abgebrochen" msgstr "Erweiterte Suche durch den Benutzer abgebrochen"
#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:357 #: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:364
#: src/lyxfind.cpp:700 src/lyxfind.cpp:728 #: src/lyxfind.cpp:707 src/lyxfind.cpp:735
msgid "Wrap search?" msgid "Wrap search?"
msgstr "Von vorne suchen?" msgstr "Von vorne suchen?"
@ -31246,24 +31291,24 @@ msgstr "Von vorne suchen?"
msgid "Nothing to search" msgid "Nothing to search"
msgstr "Nichts zum suchen" msgstr "Nichts zum suchen"
#: src/frontends/qt/FindAndReplace.cpp:479 #: src/frontends/qt/FindAndReplace.cpp:519
msgid "No open document(s) in which to search" msgid "No open document(s) in which to search"
msgstr "Keine Dokumente geöffnet, in denen gesucht werden kann" msgstr "Keine Dokumente geöffnet, in denen gesucht werden kann"
#: src/frontends/qt/FindAndReplace.cpp:588 #: src/frontends/qt/FindAndReplace.cpp:657
msgid "Advanced Find and Replace" msgid "Advanced Find and Replace"
msgstr "Erweitertes Suchen und Ersetzen" msgstr "Erweitertes Suchen und Ersetzen"
#: src/frontends/qt/FindAndReplace.cpp:643 #: src/frontends/qt/FindAndReplace.cpp:712
msgid "Find previous occurrence (Shift+Enter, forwards: Enter)" msgid "Find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr "" msgstr ""
"Suche vorhergehenden Treffer (Umschalt+Eingabetaste; vorwärts: Eingabetaste)" "Suche vorhergehenden Treffer (Umschalt+Eingabetaste; vorwärts: Eingabetaste)"
#: src/frontends/qt/FindAndReplace.cpp:644 #: src/frontends/qt/FindAndReplace.cpp:713
msgid "< Rep&lace" msgid "< Rep&lace"
msgstr "< Erse&tzen" msgstr "< Erse&tzen"
#: src/frontends/qt/FindAndReplace.cpp:645 #: src/frontends/qt/FindAndReplace.cpp:714
msgid "Replace and find previous occurrence (Shift+Enter, forwards: Enter)" msgid "Replace and find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr "" msgstr ""
"Ersetze und suche vorhergehenden Treffer (Umschalt+Eingabetaste; vorwärts: " "Ersetze und suche vorhergehenden Treffer (Umschalt+Eingabetaste; vorwärts: "
@ -37090,15 +37135,15 @@ msgstr "Vorschau bereit"
msgid "Preview failed" msgid "Preview failed"
msgstr "Die Vorschau ist fehlgeschlagen" msgstr "Die Vorschau ist fehlgeschlagen"
#: src/lyxfind.cpp:275 #: src/lyxfind.cpp:282
msgid "Search error" msgid "Search error"
msgstr "Fehler beim Suchen" msgstr "Fehler beim Suchen"
#: src/lyxfind.cpp:275 #: src/lyxfind.cpp:282
msgid "Search string is empty" msgid "Search string is empty"
msgstr "Die Such-Zeichenkette ist leer" msgstr "Die Such-Zeichenkette ist leer"
#: src/lyxfind.cpp:307 #: src/lyxfind.cpp:314
msgid "" msgid ""
"The search string matches the selection, and search is limited to " "The search string matches the selection, and search is limited to "
"selection.\n" "selection.\n"
@ -37108,11 +37153,11 @@ msgstr ""
"Suche ist auf die Auswahl begrenzt.\n" "Suche ist auf die Auswahl begrenzt.\n"
"Außerhalb weitersuchen?" "Außerhalb weitersuchen?"
#: src/lyxfind.cpp:309 src/lyxfind.cpp:336 #: src/lyxfind.cpp:316 src/lyxfind.cpp:343
msgid "Search outside selection?" msgid "Search outside selection?"
msgstr "Außerhalb der Auswahl suchen?" msgstr "Außerhalb der Auswahl suchen?"
#: src/lyxfind.cpp:334 #: src/lyxfind.cpp:341
msgid "" msgid ""
"The search string was not found within the selection.\n" "The search string was not found within the selection.\n"
"Continue search outside?" "Continue search outside?"
@ -37120,7 +37165,7 @@ msgstr ""
"Der gesuchte Ausdruck wurde innerhalb der Auswahl nicht gefunden.\n" "Der gesuchte Ausdruck wurde innerhalb der Auswahl nicht gefunden.\n"
"Außerhalb weitersuchen?" "Außerhalb weitersuchen?"
#: src/lyxfind.cpp:352 src/lyxfind.cpp:698 #: src/lyxfind.cpp:359 src/lyxfind.cpp:705
msgid "" msgid ""
"End of file reached while searching forward.\n" "End of file reached while searching forward.\n"
"Continue searching from the beginning?" "Continue searching from the beginning?"
@ -37128,7 +37173,7 @@ msgstr ""
"Das Ende des Dokuments wurde bei der Vorwärtssuche erreicht.\n" "Das Ende des Dokuments wurde bei der Vorwärtssuche erreicht.\n"
"Suche am Anfang fortsetzen?" "Suche am Anfang fortsetzen?"
#: src/lyxfind.cpp:355 src/lyxfind.cpp:726 #: src/lyxfind.cpp:362 src/lyxfind.cpp:733
msgid "" msgid ""
"Beginning of file reached while searching backward.\n" "Beginning of file reached while searching backward.\n"
"Continue searching from the end?" "Continue searching from the end?"
@ -37136,62 +37181,62 @@ msgstr ""
"Der Anfang des Dokuments wurde bei der Rückwärtssuche erreicht.\n" "Der Anfang des Dokuments wurde bei der Rückwärtssuche erreicht.\n"
"Suche am Ende fortsetzen?" "Suche am Ende fortsetzen?"
#: src/lyxfind.cpp:371 #: src/lyxfind.cpp:378
msgid "Search reached end of document, continuing from beginning." msgid "Search reached end of document, continuing from beginning."
msgstr "Das Ende des Dokuments wurde erreicht, suche vom Anfang ab weiter." msgstr "Das Ende des Dokuments wurde erreicht, suche vom Anfang ab weiter."
#: src/lyxfind.cpp:372 #: src/lyxfind.cpp:379
msgid "Search reached beginning of document, continuing from end." msgid "Search reached beginning of document, continuing from end."
msgstr "Der Anfang des Dokuments wurde erreicht, suche vom Ende ab weiter." msgstr "Der Anfang des Dokuments wurde erreicht, suche vom Ende ab weiter."
#: src/lyxfind.cpp:671 #: src/lyxfind.cpp:678
msgid "String not found in selection." msgid "String not found in selection."
msgstr "Der gesuchte Ausdruck wurde in der Auswahl nicht gefunden." msgstr "Der gesuchte Ausdruck wurde in der Auswahl nicht gefunden."
#: src/lyxfind.cpp:673 #: src/lyxfind.cpp:680
msgid "String not found." msgid "String not found."
msgstr "Die Zeichenkette wurde nicht gefunden." msgstr "Die Zeichenkette wurde nicht gefunden."
#: src/lyxfind.cpp:676 #: src/lyxfind.cpp:683
msgid "String found." msgid "String found."
msgstr "Zeichenkette gefunden." msgstr "Zeichenkette gefunden."
#: src/lyxfind.cpp:678 #: src/lyxfind.cpp:685
msgid "String has been replaced." msgid "String has been replaced."
msgstr "Die Zeichenkette wurde ersetzt." msgstr "Die Zeichenkette wurde ersetzt."
#: src/lyxfind.cpp:681 #: src/lyxfind.cpp:688
#, c-format #, c-format
msgid "%1$d strings have been replaced in the selection." msgid "%1$d strings have been replaced in the selection."
msgstr "%1$d Zeichenketten wurden in der Auswahl ersetzt." msgstr "%1$d Zeichenketten wurden in der Auswahl ersetzt."
#: src/lyxfind.cpp:682 #: src/lyxfind.cpp:689
#, c-format #, c-format
msgid "%1$d strings have been replaced." msgid "%1$d strings have been replaced."
msgstr "%1$d Zeichenketten wurden ersetzt." msgstr "%1$d Zeichenketten wurden ersetzt."
#: src/lyxfind.cpp:4679 #: src/lyxfind.cpp:4745
msgid "One match has been replaced." msgid "One match has been replaced."
msgstr "Ein Treffer wurde ersetzt." msgstr "Ein Treffer wurde ersetzt."
#: src/lyxfind.cpp:4682 #: src/lyxfind.cpp:4748
msgid "Two matches have been replaced." msgid "Two matches have been replaced."
msgstr "Zwei Treffer wurden ersetzt." msgstr "Zwei Treffer wurden ersetzt."
#: src/lyxfind.cpp:4685 #: src/lyxfind.cpp:4751
#, c-format #, c-format
msgid "%1$d matches have been replaced." msgid "%1$d matches have been replaced."
msgstr "%1$d Treffer wurden ersetzt." msgstr "%1$d Treffer wurden ersetzt."
#: src/lyxfind.cpp:4691 #: src/lyxfind.cpp:4757
msgid "Match not found." msgid "Match not found."
msgstr "Die Zeichenkette wurde nicht gefunden!" msgstr "Die Zeichenkette wurde nicht gefunden!"
#: src/lyxfind.cpp:4697 #: src/lyxfind.cpp:4763
msgid "Match has been replaced." msgid "Match has been replaced."
msgstr "Die Zeichenkette wurde ersetzt." msgstr "Die Zeichenkette wurde ersetzt."
#: src/lyxfind.cpp:4699 #: src/lyxfind.cpp:4765
msgid "Match found." msgid "Match found."
msgstr "Die Zeichenkette wurde gefunden!" msgstr "Die Zeichenkette wurde gefunden!"
@ -37793,6 +37838,16 @@ msgstr ""
msgid "Unknown user" msgid "Unknown user"
msgstr "Unbekannter Benutzer" msgstr "Unbekannter Benutzer"
#~ msgid ""
#~ "If unchecked, the search will be limited to occurrences of the selected "
#~ "text and paragraph style"
#~ msgstr ""
#~ "Wenn Sie dies deaktivieren, wird die Suche nur auf Vorkommen beschränkt, "
#~ "die die den ausgewählten Text- und Absatzstil verwenden."
#~ msgid "I&gnore format"
#~ msgstr "Ignoriere For&mat"
#~ msgid "foot" #~ msgid "foot"
#~ msgstr "Fußnote" #~ msgstr "Fußnote"
@ -39448,9 +39503,6 @@ msgstr "Unbekannter Benutzer"
#~ msgid " (version control)" #~ msgid " (version control)"
#~ msgstr " (Versionskontrolle)" #~ msgstr " (Versionskontrolle)"
#~ msgid " (changed)"
#~ msgstr " (geändert)"
#~ msgid " (read only)" #~ msgid " (read only)"
#~ msgstr " (schreibgeschützt)" #~ msgstr " (schreibgeschützt)"

BIN
po/fr.gmo

Binary file not shown.

282
po/fr.po
View File

@ -362,8 +362,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: LyX 2.4\n" "Project-Id-Version: LyX 2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n" "Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
"POT-Creation-Date: 2022-04-24 17:20+0200\n" "POT-Creation-Date: 2022-05-12 14:41+0200\n"
"PO-Revision-Date: 2022-04-24 17:23+0200\n" "PO-Revision-Date: 2022-05-12 14:43+0200\n"
"Last-Translator: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>\n" "Last-Translator: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>\n"
"Language-Team: lyxfr\n" "Language-Team: lyxfr\n"
"Language: fr\n" "Language: fr\n"
@ -1306,6 +1306,7 @@ msgid "Font Properties"
msgstr "Propriétés des polices" msgstr "Propriétés des polices"
#: src/frontends/qt/ui/CharacterUi.ui:36 src/frontends/qt/ui/CharacterUi.ui:55 #: src/frontends/qt/ui/CharacterUi.ui:36 src/frontends/qt/ui/CharacterUi.ui:55
#: src/frontends/qt/ui/FindAndReplaceUi.ui:475
msgid "Font family" msgid "Font family"
msgstr "Famille de police" msgstr "Famille de police"
@ -1314,6 +1315,7 @@ msgid "Fa&mily:"
msgstr "&Famille :" msgstr "&Famille :"
#: src/frontends/qt/ui/CharacterUi.ui:62 src/frontends/qt/ui/CharacterUi.ui:81 #: src/frontends/qt/ui/CharacterUi.ui:62 src/frontends/qt/ui/CharacterUi.ui:81
#: src/frontends/qt/ui/FindAndReplaceUi.ui:447
msgid "Font series" msgid "Font series"
msgstr "Série de police" msgstr "Série de police"
@ -1322,6 +1324,7 @@ msgid "&Series:"
msgstr "&Série :" msgstr "&Série :"
#: src/frontends/qt/ui/CharacterUi.ui:88 src/frontends/qt/ui/CharacterUi.ui:107 #: src/frontends/qt/ui/CharacterUi.ui:88 src/frontends/qt/ui/CharacterUi.ui:107
#: src/frontends/qt/ui/FindAndReplaceUi.ui:510
msgid "Font shape" msgid "Font shape"
msgstr "Forme de police" msgstr "Forme de police"
@ -1331,11 +1334,13 @@ msgstr "F&orme :"
#: src/frontends/qt/ui/CharacterUi.ui:114 #: src/frontends/qt/ui/CharacterUi.ui:114
#: src/frontends/qt/ui/CharacterUi.ui:133 #: src/frontends/qt/ui/CharacterUi.ui:133
#: src/frontends/qt/ui/FindAndReplaceUi.ui:524
msgid "Font size" msgid "Font size"
msgstr "Taille de police" msgstr "Taille de police"
#: src/frontends/qt/ui/CharacterUi.ui:159 #: src/frontends/qt/ui/CharacterUi.ui:159
#: src/frontends/qt/ui/CharacterUi.ui:178 #: src/frontends/qt/ui/CharacterUi.ui:178
#: src/frontends/qt/ui/FindAndReplaceUi.ui:454
msgid "Font color" msgid "Font color"
msgstr "Couleur de police" msgstr "Couleur de police"
@ -1369,12 +1374,14 @@ msgstr "Paramètres de langue"
msgid "&Language:" msgid "&Language:"
msgstr "Lan&gue :" msgstr "Lan&gue :"
#: src/frontends/qt/ui/CharacterUi.ui:281 src/frontends/qt/ui/ListingsUi.ui:334 #: src/frontends/qt/ui/CharacterUi.ui:281
#: lib/layouts/bicaption.module:16 lib/layouts/europasscv.layout:440 #: src/frontends/qt/ui/FindAndReplaceUi.ui:482
#: lib/layouts/europasscv.layout:475 lib/layouts/europasscv.layout:482 #: src/frontends/qt/ui/ListingsUi.ui:334 lib/layouts/bicaption.module:16
#: lib/layouts/europecv.layout:321 lib/layouts/europecv.layout:327 #: lib/layouts/europasscv.layout:440 lib/layouts/europasscv.layout:475
#: lib/layouts/moderncv.layout:580 src/frontends/qt/GuiDocument.cpp:1781 #: lib/layouts/europasscv.layout:482 lib/layouts/europecv.layout:321
#: src/frontends/qt/GuiPrefs.cpp:2430 src/frontends/qt/Menus.cpp:938 #: lib/layouts/europecv.layout:327 lib/layouts/moderncv.layout:580
#: src/frontends/qt/GuiDocument.cpp:1781 src/frontends/qt/GuiPrefs.cpp:2430
#: src/frontends/qt/Menus.cpp:938
msgid "Language" msgid "Language"
msgstr "Langue" msgstr "Langue"
@ -1980,24 +1987,24 @@ msgid "Case &sensitive"
msgstr "Selon la &casse" msgstr "Selon la &casse"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:205 #: src/frontends/qt/ui/FindAndReplaceUi.ui:205
#: src/frontends/qt/FindAndReplace.cpp:648 #: src/frontends/qt/FindAndReplace.cpp:717
msgid "Find next occurrence (Enter, backwards: Shift+Enter)" msgid "Find next occurrence (Enter, backwards: Shift+Enter)"
msgstr "Rechercher l'occurrence suivante (Entrée, vers l'arrière : Maj+Entrée)" msgstr "Rechercher l'occurrence suivante (Entrée, vers l'arrière : Maj+Entrée)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:208 #: src/frontends/qt/ui/FindAndReplaceUi.ui:208
#: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:647 #: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:716
msgid "Find &>" msgid "Find &>"
msgstr "Rechercher &>" msgstr "Rechercher &>"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:221 #: src/frontends/qt/ui/FindAndReplaceUi.ui:221
#: src/frontends/qt/FindAndReplace.cpp:650 #: src/frontends/qt/FindAndReplace.cpp:719
msgid "Replace and find next occurrence (Enter, backwards: Shift+Enter)" msgid "Replace and find next occurrence (Enter, backwards: Shift+Enter)"
msgstr "" msgstr ""
"Remplacer et rechercher l'occurrence suivante (Entrée, vers l'arrière : Maj" "Remplacer et rechercher l'occurrence suivante (Entrée, vers l'arrière : Maj"
"+Entrée)" "+Entrée)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:224 #: src/frontends/qt/ui/FindAndReplaceUi.ui:224
#: src/frontends/qt/FindAndReplace.cpp:649 #: src/frontends/qt/FindAndReplace.cpp:718
msgid "Rep&lace >" msgid "Rep&lace >"
msgstr "&Remplacer >" msgstr "&Remplacer >"
@ -2050,31 +2057,19 @@ msgstr "Document &ouverts"
msgid "&All manuals" msgid "&All manuals"
msgstr "Tous les man&uels" msgstr "Tous les man&uels"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:370
msgid "Restrict search to math environments only"
msgstr "Restreindre la recherche aux seuls environnements mathématiques"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:373 #: src/frontends/qt/ui/FindAndReplaceUi.ui:373
msgid "Search on&ly in maths"
msgstr "Rechercher uniquement dans les formules mat&hématiques"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
msgid ""
"If unchecked, the search will be limited to occurrences of the selected text "
"and paragraph style"
msgstr ""
"Case non cochée, la recherche sera limitée aux occurrences du texte "
"sélectionné et du style de paragraphe"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:386
msgid "I&gnore format"
msgstr "Ignorer le &format"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:399
msgid "E&xpand macros" msgid "E&xpand macros"
msgstr "&Déployer les macros" msgstr "&Déployer les macros"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:406 #: src/frontends/qt/ui/FindAndReplaceUi.ui:380
msgid "Restrict search to math environments only"
msgstr "Restreindre la recherche aux seuls environnements mathématiques"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
msgid "Search onl&y in maths"
msgstr "Rechercher uniquement dans les formules mat&hématiques"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:390
msgid "" msgid ""
"Keep the case of the replacement's first letter as in each matching text " "Keep the case of the replacement's first letter as in each matching text "
"first letter" "first letter"
@ -2082,10 +2077,61 @@ msgstr ""
"Conserver la casse de la première lettre du remplacement telle quelle dans " "Conserver la casse de la première lettre du remplacement telle quelle dans "
"chaque chaîne correspondante" "chaque chaîne correspondante"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:409 #: src/frontends/qt/ui/FindAndReplaceUi.ui:393
msgid "&Preserve first case on replace" msgid "&Preserve first case on replace"
msgstr "&Préserver la casse du premier caractère lors du remplacement" msgstr "&Préserver la casse du premier caractère lors du remplacement"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:413
msgid "Do not search in content that is not output (e.g., notes)"
msgstr "Ne pas rechercher dans les contenus non exportables (e.g., les notes)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:416
msgid "Ignore &non-output content"
msgstr "Ignorer les &éléments non exportables"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:425
msgid ""
"If the search string is formatted in a non-default way, only find strings "
"formatted like the search string in the checked respects"
msgstr ""
"Si la chaîne à rechercher est mise ne forme d'une manière non implicite, "
"trouver seulement les chaînes mises en forme comme la chaîne à rechercher "
"pour le rubriques cochées"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
msgid "Adhe&re to search string formatting of"
msgstr "&Appliquer la mise en forme de la chaîne recherchée pour"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
msgid "Strike-through"
msgstr "Rayé"
# à revoir, accord avec les autres mots incertain
# Pas nécessaire (JPC)
#: src/frontends/qt/ui/FindAndReplaceUi.ui:461
msgid "Emph/noun"
msgstr "En évidence/nom propre"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
msgid "Dese&lect all"
msgstr "Tout désé&lectionner"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
msgid "Sectioning markup"
msgstr "Balisage de sectionnement"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:496
msgid "Deletion (change)"
msgstr "Suppression (modifié)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:503
msgid "Underlining"
msgstr "Souligné"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
msgid "&Select all"
msgstr "Tout &sélectionner"
#: src/frontends/qt/ui/FloatPlacementUi.ui:14 #: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14 #: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form" msgid "Form"
@ -4506,59 +4552,65 @@ msgstr ""
"Définir un patron de recherche (voir le Manuel de lutilisateur pour la " "Définir un patron de recherche (voir le Manuel de lutilisateur pour la "
"syntaxe)" "syntaxe)"
#: src/frontends/qt/ui/PrefEditUi.ui:167 src/LyXRC.cpp:3175 #: src/frontends/qt/ui/PrefEditUi.ui:167
msgid ""
"Configure the width of the text cursor. Automatic zoom-controlled cursor "
"width used when set to 0."
msgstr ""
"Configurer le largeur du curseur de texte. Si la valeur vaut 0, une largeur "
"de curseur avec zoom automatique est utilisée."
#: src/frontends/qt/ui/PrefEditUi.ui:170
msgid "Cursor width (&pixels):" msgid "Cursor width (&pixels):"
msgstr "Largeur du curseur (&pixels) :" msgstr "Largeur du curseur (&pixels) :"
#: src/frontends/qt/ui/PrefEditUi.ui:198 #: src/frontends/qt/ui/PrefEditUi.ui:177
msgid ""
"Configure the width of the text cursor. \"Auto\" means that zoom-controlled "
"width is used."
msgstr ""
"Configurer le largeur du curseur de texte. Si la valeur vaut « Auto », le "
"zoom automatique fixe la largeur du curseur. "
#: src/frontends/qt/ui/PrefEditUi.ui:180
#: lib/citeengines/biblatex-natbib.citeengine:148
#: lib/citeengines/biblatex.citeengine:138
msgid "Auto"
msgstr "Auto"
#: src/frontends/qt/ui/PrefEditUi.ui:201
msgid "Skip trailing non-word characters" msgid "Skip trailing non-word characters"
msgstr "Sauter les caractères finaux non alphanumériques" msgstr "Sauter les caractères finaux non alphanumériques"
#: src/frontends/qt/ui/PrefEditUi.ui:201 #: src/frontends/qt/ui/PrefEditUi.ui:204
msgid "Use M&ac-style cursor movement" msgid "Use M&ac-style cursor movement"
msgstr "Utiliser les déplacements de curseur à la M&ac" msgstr "Utiliser les déplacements de curseur à la M&ac"
#: src/frontends/qt/ui/PrefEditUi.ui:208 #: src/frontends/qt/ui/PrefEditUi.ui:211
msgid "&Group environments by their category" msgid "&Group environments by their category"
msgstr "Re&grouper les environnements par catégorie" msgstr "Re&grouper les environnements par catégorie"
#: src/frontends/qt/ui/PrefEditUi.ui:218 #: src/frontends/qt/ui/PrefEditUi.ui:221
msgid "Fullscreen" msgid "Fullscreen"
msgstr "Plein écran" msgstr "Plein écran"
#: src/frontends/qt/ui/PrefEditUi.ui:230 #: src/frontends/qt/ui/PrefEditUi.ui:233
msgid "Hide &menubar" msgid "Hide &menubar"
msgstr "Cacher la barre des &menus" msgstr "Cacher la barre des &menus"
#: src/frontends/qt/ui/PrefEditUi.ui:237 #: src/frontends/qt/ui/PrefEditUi.ui:240
msgid "Hide scr&ollbar" msgid "Hide scr&ollbar"
msgstr "Cacher l'&ascenseur" msgstr "Cacher l'&ascenseur"
#: src/frontends/qt/ui/PrefEditUi.ui:260 #: src/frontends/qt/ui/PrefEditUi.ui:263
msgid "Hide sta&tusbar" msgid "Hide sta&tusbar"
msgstr "Cacher la barre d'&état" msgstr "Cacher la barre d'&état"
#: src/frontends/qt/ui/PrefEditUi.ui:267 #: src/frontends/qt/ui/PrefEditUi.ui:270
msgid "H&ide tabbar" msgid "H&ide tabbar"
msgstr "Cacher la barre des &onglets" msgstr "Cacher la barre des &onglets"
#: src/frontends/qt/ui/PrefEditUi.ui:305 #: src/frontends/qt/ui/PrefEditUi.ui:308
msgid "&Limit text width" msgid "&Limit text width"
msgstr "&Limitation de la largeur du texte" msgstr "&Limitation de la largeur du texte"
#: src/frontends/qt/ui/PrefEditUi.ui:328 #: src/frontends/qt/ui/PrefEditUi.ui:331
msgid "Screen used (pi&xels):" msgid "Screen used (pi&xels):"
msgstr "Écran &utilisé (pixels) :" msgstr "Écran &utilisé (pixels) :"
#: src/frontends/qt/ui/PrefEditUi.ui:375 #: src/frontends/qt/ui/PrefEditUi.ui:378
msgid "&Hide toolbars" msgid "&Hide toolbars"
msgstr "Cacher les palettes d'&outils" msgstr "Cacher les palettes d'&outils"
@ -5618,7 +5670,7 @@ msgstr "Sans préfixe"
msgid "Find previous occurrence (Shift+Enter)" msgid "Find previous occurrence (Shift+Enter)"
msgstr "Rechercher l'occurrence précédente (Maj+Entrée)" msgstr "Rechercher l'occurrence précédente (Maj+Entrée)"
#: src/frontends/qt/ui/SearchUi.ui:55 src/frontends/qt/FindAndReplace.cpp:642 #: src/frontends/qt/ui/SearchUi.ui:55 src/frontends/qt/FindAndReplace.cpp:711
msgid "&< Find" msgid "&< Find"
msgstr "&< Rechercher" msgstr "&< Rechercher"
@ -6682,11 +6734,6 @@ msgstr "Entrée bibliographique complète."
msgid "Autocite" msgid "Autocite"
msgstr "Autocite" msgstr "Autocite"
#: lib/citeengines/biblatex-natbib.citeengine:148
#: lib/citeengines/biblatex.citeengine:138
msgid "Auto"
msgstr "Auto"
#: lib/citeengines/biblatex-natbib.citeengine:150 #: lib/citeengines/biblatex-natbib.citeengine:150
#: lib/citeengines/biblatex.citeengine:142 #: lib/citeengines/biblatex.citeengine:142
msgid "F&orce full title[[Possible substitute to All aut&hors]]" msgid "F&orce full title[[Possible substitute to All aut&hors]]"
@ -28330,7 +28377,7 @@ msgid "greyedout inset text"
msgstr "texte d'insert grisé" msgstr "texte d'insert grisé"
#: src/BufferParams.cpp:1718 src/BufferParams.cpp:1872 #: src/BufferParams.cpp:1718 src/BufferParams.cpp:1872
#: src/BufferParams.cpp:2315 src/Encoding.cpp:264 src/Paragraph.cpp:3014 #: src/BufferParams.cpp:2315 src/Encoding.cpp:264 src/Paragraph.cpp:3026
#: src/frontends/qt/LaTeXHighlighter.cpp:143 #: src/frontends/qt/LaTeXHighlighter.cpp:143
#: src/frontends/qt/LaTeXHighlighter.cpp:257 #: src/frontends/qt/LaTeXHighlighter.cpp:257
#: src/insets/InsetCommandParams.cpp:508 src/insets/InsetCommandParams.cpp:516 #: src/insets/InsetCommandParams.cpp:508 src/insets/InsetCommandParams.cpp:516
@ -28342,7 +28389,7 @@ msgid "LyX Warning: "
msgstr "Avertissement LyX : " msgstr "Avertissement LyX : "
#: src/BufferParams.cpp:1719 src/BufferParams.cpp:1873 #: src/BufferParams.cpp:1719 src/BufferParams.cpp:1873
#: src/BufferParams.cpp:2316 src/Encoding.cpp:265 src/Paragraph.cpp:3015 #: src/BufferParams.cpp:2316 src/Encoding.cpp:265 src/Paragraph.cpp:3027
#: src/insets/InsetCommandParams.cpp:509 src/insets/InsetCommandParams.cpp:517 #: src/insets/InsetCommandParams.cpp:509 src/insets/InsetCommandParams.cpp:517
#: src/insets/InsetGraphics.cpp:901 src/insets/InsetGraphics.cpp:909 #: src/insets/InsetGraphics.cpp:901 src/insets/InsetGraphics.cpp:909
#: src/insets/InsetListings.cpp:300 src/insets/InsetListings.cpp:308 #: src/insets/InsetListings.cpp:300 src/insets/InsetListings.cpp:308
@ -30250,6 +30297,14 @@ msgstr ""
"déplacez avec la barre de défilement. Cochez si vous préférez avoir toujours " "déplacez avec la barre de défilement. Cochez si vous préférez avoir toujours "
"le curseur à l'écran." "le curseur à l'écran."
#: src/LyXRC.cpp:3175
msgid ""
"Configure the width of the text cursor. Automatic zoom-controlled cursor "
"width used when set to 0."
msgstr ""
"Configurer le largeur du curseur de texte. Si la valeur vaut 0, une largeur "
"de curseur avec zoom automatique est utilisée."
#: src/LyXRC.cpp:3179 #: src/LyXRC.cpp:3179
msgid "" msgid ""
"LyX normally doesn't allow the user to scroll further than the bottom of the " "LyX normally doesn't allow the user to scroll further than the bottom of the "
@ -30740,15 +30795,15 @@ msgstr "Revenir à la version enregistrée du document ?"
msgid "&Revert" msgid "&Revert"
msgstr "&Revenir à la Sauvegarde" msgstr "&Revenir à la Sauvegarde"
#: src/Paragraph.cpp:2152 #: src/Paragraph.cpp:2164
msgid "Senseless with this layout!" msgid "Senseless with this layout!"
msgstr "Inapproprié avec ce style !" msgstr "Inapproprié avec ce style !"
#: src/Paragraph.cpp:2206 #: src/Paragraph.cpp:2218
msgid "Alignment not permitted" msgid "Alignment not permitted"
msgstr "Alignement non autorisé" msgstr "Alignement non autorisé"
#: src/Paragraph.cpp:2207 #: src/Paragraph.cpp:2219
msgid "" msgid ""
"The new layout does not permit the alignment previously used.\n" "The new layout does not permit the alignment previously used.\n"
"Setting to default." "Setting to default."
@ -30853,7 +30908,7 @@ msgstr ", Char: 0x"
msgid ", Boundary: " msgid ", Boundary: "
msgstr ", Frontière : " msgstr ", Frontière : "
#: src/Text2.cpp:406 #: src/Text2.cpp:407
msgid "No font change defined." msgid "No font change defined."
msgstr "Aucune modification de police définie." msgstr "Aucune modification de police définie."
@ -30877,36 +30932,36 @@ msgstr "Mode « expression régulière »"
msgid "Layout " msgid "Layout "
msgstr "Environnement " msgstr "Environnement "
#: src/Text3.cpp:1619 src/Text3.cpp:2193 #: src/Text3.cpp:1619 src/Text3.cpp:2203
msgid " not known" msgid " not known"
msgstr " inconnu" msgstr " inconnu"
#: src/Text3.cpp:2192 #: src/Text3.cpp:2202
msgid "Table Style " msgid "Table Style "
msgstr "Style de tableau " msgstr "Style de tableau "
#: src/Text3.cpp:2385 src/frontends/qt/GuiApplication.cpp:1887 #: src/Text3.cpp:2395 src/frontends/qt/GuiApplication.cpp:1887
msgid "Missing argument" msgid "Missing argument"
msgstr "Paramètre manquant" msgstr "Paramètre manquant"
#: src/Text3.cpp:2550 #: src/Text3.cpp:2560
msgid "Invalid argument (number exceeds stack size)!" msgid "Invalid argument (number exceeds stack size)!"
msgstr "Argument invalide (le nombre est supérieur à la taille de la pile) !" msgstr "Argument invalide (le nombre est supérieur à la taille de la pile) !"
#: src/Text3.cpp:2554 #: src/Text3.cpp:2564
msgid "Invalid argument (must be a non-negative number)!" msgid "Invalid argument (must be a non-negative number)!"
msgstr "Argument invalide (nombre non négatif obligatoire)" msgstr "Argument invalide (nombre non négatif obligatoire)"
#: src/Text3.cpp:2559 src/Text3.cpp:2573 #: src/Text3.cpp:2569 src/Text3.cpp:2583
#, c-format #, c-format
msgid "Text properties applied: %1$s" msgid "Text properties applied: %1$s"
msgstr "Propriétés du texte appliquées : %1$s" msgstr "Propriétés du texte appliquées : %1$s"
#: src/Text3.cpp:2732 #: src/Text3.cpp:2742
msgid "Path to thesaurus directory not set!" msgid "Path to thesaurus directory not set!"
msgstr "Chemin d'accès au répertoire du thésaurus non précisé !" msgstr "Chemin d'accès au répertoire du thésaurus non précisé !"
#: src/Text3.cpp:2733 #: src/Text3.cpp:2743
msgid "" msgid ""
"The path to the thesaurus directory has not been specified.\n" "The path to the thesaurus directory has not been specified.\n"
"The thesaurus is not functional.\n" "The thesaurus is not functional.\n"
@ -30918,7 +30973,7 @@ msgstr ""
"Se référer au Guide de l'utilisateur, section 6.15.1, pour\n" "Se référer au Guide de l'utilisateur, section 6.15.1, pour\n"
"les instructions de réglage." "les instructions de réglage."
#: src/Text3.cpp:2859 src/Text3.cpp:2870 #: src/Text3.cpp:2869 src/Text3.cpp:2880
msgid "Paragraph layout set" msgid "Paragraph layout set"
msgstr "Style du paragraphe redéfini" msgstr "Style du paragraphe redéfini"
@ -31294,15 +31349,15 @@ msgstr ""
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526 #: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895 #: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895
#: src/lyxfind.cpp:310 src/lyxfind.cpp:337 src/lyxfind.cpp:358 #: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
#: src/lyxfind.cpp:701 src/lyxfind.cpp:729 #: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&Yes" msgid "&Yes"
msgstr "&Oui" msgstr "&Oui"
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526 #: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895 #: src/frontends/qt/FindAndReplace.cpp:381 src/frontends/qt/GuiPrefs.cpp:1895
#: src/lyxfind.cpp:310 src/lyxfind.cpp:337 src/lyxfind.cpp:358 #: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
#: src/lyxfind.cpp:701 src/lyxfind.cpp:729 #: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&No" msgid "&No"
msgstr "&Non" msgstr "&Non"
@ -31507,8 +31562,8 @@ msgstr "Recherche avancée en cours (appuyer sur ESC pour annuler) . . ."
msgid "Advanced search cancelled by user" msgid "Advanced search cancelled by user"
msgstr "Recherche avancée annulée par l'utilisateur" msgstr "Recherche avancée annulée par l'utilisateur"
#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:357 #: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:364
#: src/lyxfind.cpp:700 src/lyxfind.cpp:728 #: src/lyxfind.cpp:707 src/lyxfind.cpp:735
msgid "Wrap search?" msgid "Wrap search?"
msgstr "Recherche récursive ?" msgstr "Recherche récursive ?"
@ -31516,23 +31571,23 @@ msgstr "Recherche récursive ?"
msgid "Nothing to search" msgid "Nothing to search"
msgstr "Rien à rechercher" msgstr "Rien à rechercher"
#: src/frontends/qt/FindAndReplace.cpp:479 #: src/frontends/qt/FindAndReplace.cpp:519
msgid "No open document(s) in which to search" msgid "No open document(s) in which to search"
msgstr "Aucun document ouvert dans lequel rechercher" msgstr "Aucun document ouvert dans lequel rechercher"
#: src/frontends/qt/FindAndReplace.cpp:588 #: src/frontends/qt/FindAndReplace.cpp:657
msgid "Advanced Find and Replace" msgid "Advanced Find and Replace"
msgstr "Rechercher et remplacer (élaboré)" msgstr "Rechercher et remplacer (élaboré)"
#: src/frontends/qt/FindAndReplace.cpp:643 #: src/frontends/qt/FindAndReplace.cpp:712
msgid "Find previous occurrence (Shift+Enter, forwards: Enter)" msgid "Find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr "Trouver loccurrence précédente (Maj+Entrée, vers l'avant : Entrée)" msgstr "Trouver loccurrence précédente (Maj+Entrée, vers l'avant : Entrée)"
#: src/frontends/qt/FindAndReplace.cpp:644 #: src/frontends/qt/FindAndReplace.cpp:713
msgid "< Rep&lace" msgid "< Rep&lace"
msgstr "< &Remplacer" msgstr "< &Remplacer"
#: src/frontends/qt/FindAndReplace.cpp:645 #: src/frontends/qt/FindAndReplace.cpp:714
msgid "Replace and find previous occurrence (Shift+Enter, forwards: Enter)" msgid "Replace and find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr "" msgstr ""
"Remplacer et rechercher l'occurrence précédente (Maj+Entrée, vers l'avant : " "Remplacer et rechercher l'occurrence précédente (Maj+Entrée, vers l'avant : "
@ -37331,15 +37386,15 @@ msgstr "Aperçu prêt"
msgid "Preview failed" msgid "Preview failed"
msgstr "Échec de l'aperçu" msgstr "Échec de l'aperçu"
#: src/lyxfind.cpp:275 #: src/lyxfind.cpp:282
msgid "Search error" msgid "Search error"
msgstr "Erreur de recherche" msgstr "Erreur de recherche"
#: src/lyxfind.cpp:275 #: src/lyxfind.cpp:282
msgid "Search string is empty" msgid "Search string is empty"
msgstr "La chaîne de caractères à chercher est vide" msgstr "La chaîne de caractères à chercher est vide"
#: src/lyxfind.cpp:307 #: src/lyxfind.cpp:314
msgid "" msgid ""
"The search string matches the selection, and search is limited to " "The search string matches the selection, and search is limited to "
"selection.\n" "selection.\n"
@ -37349,11 +37404,11 @@ msgstr ""
"à la sélection.\n" "à la sélection.\n"
"Continuer à chercher en dehors?" "Continuer à chercher en dehors?"
#: src/lyxfind.cpp:309 src/lyxfind.cpp:336 #: src/lyxfind.cpp:316 src/lyxfind.cpp:343
msgid "Search outside selection?" msgid "Search outside selection?"
msgstr "Rechercher en-dehors de la sélection ?" msgstr "Rechercher en-dehors de la sélection ?"
#: src/lyxfind.cpp:334 #: src/lyxfind.cpp:341
msgid "" msgid ""
"The search string was not found within the selection.\n" "The search string was not found within the selection.\n"
"Continue search outside?" "Continue search outside?"
@ -37361,7 +37416,7 @@ msgstr ""
"La chaîne recherchée n'a pas été trouvée dans la sélection.\n" "La chaîne recherchée n'a pas été trouvée dans la sélection.\n"
"Continuer à chercher en-dehors ?" "Continuer à chercher en-dehors ?"
#: src/lyxfind.cpp:352 src/lyxfind.cpp:698 #: src/lyxfind.cpp:359 src/lyxfind.cpp:705
msgid "" msgid ""
"End of file reached while searching forward.\n" "End of file reached while searching forward.\n"
"Continue searching from the beginning?" "Continue searching from the beginning?"
@ -37369,7 +37424,7 @@ msgstr ""
"Fin du fichier atteinte lors de la recherche en avant.\n" "Fin du fichier atteinte lors de la recherche en avant.\n"
"Continuer la recherche depuis le début ?" "Continuer la recherche depuis le début ?"
#: src/lyxfind.cpp:355 src/lyxfind.cpp:726 #: src/lyxfind.cpp:362 src/lyxfind.cpp:733
msgid "" msgid ""
"Beginning of file reached while searching backward.\n" "Beginning of file reached while searching backward.\n"
"Continue searching from the end?" "Continue searching from the end?"
@ -37377,63 +37432,63 @@ msgstr ""
"Début du fichier atteint lors de la recherche en arrière.\n" "Début du fichier atteint lors de la recherche en arrière.\n"
"Continuer la recherche depuis la fin ?" "Continuer la recherche depuis la fin ?"
#: src/lyxfind.cpp:371 #: src/lyxfind.cpp:378
msgid "Search reached end of document, continuing from beginning." msgid "Search reached end of document, continuing from beginning."
msgstr "Fin du document atteinte, la recherche continue à partir du début." msgstr "Fin du document atteinte, la recherche continue à partir du début."
#: src/lyxfind.cpp:372 #: src/lyxfind.cpp:379
msgid "Search reached beginning of document, continuing from end." msgid "Search reached beginning of document, continuing from end."
msgstr "" msgstr ""
"La recherche a atteint le début du document, elle continue depuis la fin." "La recherche a atteint le début du document, elle continue depuis la fin."
#: src/lyxfind.cpp:671 #: src/lyxfind.cpp:678
msgid "String not found in selection." msgid "String not found in selection."
msgstr "Chaîne de caractères introuvable dans le sélection." msgstr "Chaîne de caractères introuvable dans le sélection."
#: src/lyxfind.cpp:673 #: src/lyxfind.cpp:680
msgid "String not found." msgid "String not found."
msgstr "Chaîne de caractères introuvable." msgstr "Chaîne de caractères introuvable."
#: src/lyxfind.cpp:676 #: src/lyxfind.cpp:683
msgid "String found." msgid "String found."
msgstr "Chaîne de caractères trouvée." msgstr "Chaîne de caractères trouvée."
#: src/lyxfind.cpp:678 #: src/lyxfind.cpp:685
msgid "String has been replaced." msgid "String has been replaced."
msgstr "Chaîne remplacée." msgstr "Chaîne remplacée."
#: src/lyxfind.cpp:681 #: src/lyxfind.cpp:688
#, c-format #, c-format
msgid "%1$d strings have been replaced in the selection." msgid "%1$d strings have been replaced in the selection."
msgstr "%1$d chaînes remplacées dans le sélection." msgstr "%1$d chaînes remplacées dans le sélection."
#: src/lyxfind.cpp:682 #: src/lyxfind.cpp:689
#, c-format #, c-format
msgid "%1$d strings have been replaced." msgid "%1$d strings have been replaced."
msgstr "%1$d chaînes remplacées." msgstr "%1$d chaînes remplacées."
#: src/lyxfind.cpp:4679 #: src/lyxfind.cpp:4769
msgid "One match has been replaced." msgid "One match has been replaced."
msgstr "Une correspondance a été remplacée." msgstr "Une correspondance a été remplacée."
#: src/lyxfind.cpp:4682 #: src/lyxfind.cpp:4772
msgid "Two matches have been replaced." msgid "Two matches have been replaced."
msgstr "Deux correspondances ont été remplacées." msgstr "Deux correspondances ont été remplacées."
#: src/lyxfind.cpp:4685 #: src/lyxfind.cpp:4775
#, c-format #, c-format
msgid "%1$d matches have been replaced." msgid "%1$d matches have been replaced."
msgstr "%1$d correspondances ont été remplacées." msgstr "%1$d correspondances ont été remplacées."
#: src/lyxfind.cpp:4691 #: src/lyxfind.cpp:4781
msgid "Match not found." msgid "Match not found."
msgstr "Chaîne de caractères introuvable." msgstr "Chaîne de caractères introuvable."
#: src/lyxfind.cpp:4697 #: src/lyxfind.cpp:4787
msgid "Match has been replaced." msgid "Match has been replaced."
msgstr "Chaîne de caractères remplacée." msgstr "Chaîne de caractères remplacée."
#: src/lyxfind.cpp:4699 #: src/lyxfind.cpp:4789
msgid "Match found." msgid "Match found."
msgstr "Chaîne de caractères reconnue." msgstr "Chaîne de caractères reconnue."
@ -38037,6 +38092,16 @@ msgstr ""
msgid "Unknown user" msgid "Unknown user"
msgstr "Utilisateur inconnu" msgstr "Utilisateur inconnu"
#~ msgid ""
#~ "If unchecked, the search will be limited to occurrences of the selected "
#~ "text and paragraph style"
#~ msgstr ""
#~ "Case non cochée, la recherche sera limitée aux occurrences du texte "
#~ "sélectionné et du style de paragraphe"
#~ msgid "I&gnore format"
#~ msgstr "Ignorer le &format"
#~ msgid "foot" #~ msgid "foot"
#~ msgstr "bas" #~ msgstr "bas"
@ -39277,9 +39342,6 @@ msgstr "Utilisateur inconnu"
#~ msgid " (version control)" #~ msgid " (version control)"
#~ msgstr " (contrôle de version)" #~ msgstr " (contrôle de version)"
#~ msgid " (changed)"
#~ msgstr " (modifié)"
#~ msgid " (read only)" #~ msgid " (read only)"
#~ msgstr " (en lecture seule)" #~ msgstr " (en lecture seule)"

View File

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: LyX-2.4\n" "Project-Id-Version: LyX-2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n" "Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
"POT-Creation-Date: 2022-04-24 17:25+0200\n" "POT-Creation-Date: 2022-05-11 18:56+0200\n"
"PO-Revision-Date: 2022-04-24 15:29+0000\n" "PO-Revision-Date: 2022-05-11 16:59+0000\n"
"Last-Translator: Kornel Benko <kornel@lyx.org>\n" "Last-Translator: Kornel Benko <kornel@lyx.org>\n"
"Language-Team: Slovak <kornel@lyx.org>\n" "Language-Team: Slovak <kornel@lyx.org>\n"
"Language: sk\n" "Language: sk\n"
@ -980,7 +980,7 @@ msgstr "&Farba:"
#: src/frontends/qt/ui/CharacterUi.ui:185 #: src/frontends/qt/ui/CharacterUi.ui:185
msgid "U&nderlining:" msgid "U&nderlining:"
msgstr "Po&dčiarnutie:" msgstr "Po&dčiarknutie:"
#: src/frontends/qt/ui/CharacterUi.ui:201 #: src/frontends/qt/ui/CharacterUi.ui:201
msgid "Underlining of text" msgid "Underlining of text"
@ -1675,25 +1675,13 @@ msgstr "Vš&etky príručky"
msgid "Restrict search to math environments only" msgid "Restrict search to math environments only"
msgstr "Obmedziť hľadanie na mat. prostredia" msgstr "Obmedziť hľadanie na mat. prostredia"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:373 #: src/frontends/qt/ui/FindAndReplaceUi.ui:383
msgid "Search on&ly in maths" msgid "Search onl&y in maths"
msgstr "Prehľadať len mat. vzork&y" msgstr "Prehľadať len mat. vzork&y"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:383 #: src/frontends/qt/ui/FindAndReplaceUi.ui:373
msgid ""
"If unchecked, the search will be limited to occurrences of the selected text "
"and paragraph style"
msgstr ""
"Keď nezaškrtnuté, hľadanie je ohraničené len na výskyty v označenom texte a "
"v štýle odstavca"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:386
msgid "I&gnore format"
msgstr "&Ignorovať formát"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:399
msgid "E&xpand macros" msgid "E&xpand macros"
msgstr "&Rozvinúť makrá" msgstr "Rozvinúť &makrá"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:406 #: src/frontends/qt/ui/FindAndReplaceUi.ui:406
msgid "" msgid ""
@ -1705,6 +1693,54 @@ msgstr "Udržovať veľkosť prvých písiem v slove tak, ako v nájdenom texte"
msgid "&Preserve first case on replace" msgid "&Preserve first case on replace"
msgstr "&Zachovať veľkosť prvých písiem" msgstr "&Zachovať veľkosť prvých písiem"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:413
msgid "Do not search in content that is not output (e.g., notes)"
msgstr "Nehľadať v častiach dokumentu ktoré nebudú vo výstupe (napr. poznámky)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:416
msgid "Ignore &non-output content"
msgstr "&Ignorovať prvky bez výstupu"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:425
msgid ""
"If the search string is formatted in a non-default way, only find strings "
"formatted like the search string in the checked respects"
msgstr ""
"Reťazec formátovaný na ne-štandardný spôsob nájde reťazce s príznačne "
"zaškrtnutými vlastnosťami"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:428
msgid "Adhe&re to search string formatting of"
msgstr "D&ržať hľadaný reťazec s vlastnosťou pre"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:440
msgid "Strike-through"
msgstr "preškrtanie"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:461
msgid "Emph/noun"
msgstr "dôraz/meno"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:468
msgid "Dese&lect all"
msgstr "Vypnú&ť všetko"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:489
msgid "Sectioning markup"
msgstr "značkovanie členenia"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:496
msgid "Deletion (change)"
msgstr "vymazanie (zmena)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:503
msgid "Underlining"
msgstr "podčiarknutie"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:517
msgid "&Select all"
msgstr "Vybrať všet&ko"
#: src/frontends/qt/ui/FloatPlacementUi.ui:14 #: src/frontends/qt/ui/FloatPlacementUi.ui:14
#: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14 #: src/frontends/qt/ui/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form" msgid "Form"
@ -4088,6 +4124,14 @@ msgstr ""
msgid "Cursor width (&pixels):" msgid "Cursor width (&pixels):"
msgstr "Šírka kurzoru (pi&xel):" msgstr "Šírka kurzoru (pi&xel):"
#: src/frontends/qt/ui/PrefEditUi.ui:177
msgid ""
"Configure the width of the text cursor. \"Auto\" means that zoom-controlled "
"width is used."
msgstr ""
"Konfigurovanie šírky textového kurzoru. \"Auto\" znamená že šírka je "
"kontrolovaná lupou."
#: src/frontends/qt/ui/PrefEditUi.ui:198 #: src/frontends/qt/ui/PrefEditUi.ui:198
msgid "Skip trailing non-word characters" msgid "Skip trailing non-word characters"
msgstr "Vynechať bočné písmená nepatriace k slovu" msgstr "Vynechať bočné písmená nepatriace k slovu"
@ -37322,6 +37366,16 @@ msgstr ""
msgid "Unknown user" msgid "Unknown user"
msgstr "Neznámy používateľ" msgstr "Neznámy používateľ"
#~ msgid "I&gnore formatting"
#~ msgstr "&Ignorovať formát"
#~ msgid ""
#~ "If unchecked, the search will be limited to occurrences of the selected "
#~ "text and paragraph style"
#~ msgstr ""
#~ "Keď nezaškrtnuté, hľadanie je ohraničené len na výskyty v označenom texte "
#~ "a v štýle odstavca"
#~ msgid "Find and replace mechanism" #~ msgid "Find and replace mechanism"
#~ msgstr "Mechanizmus hľadať a nahradiť" #~ msgstr "Mechanizmus hľadať a nahradiť"
@ -42762,3 +42816,6 @@ msgstr "Neznámy používateľ"
#~ msgid "Set inner lines" #~ msgid "Set inner lines"
#~ msgstr "Nastaviť vnútorné čiary" #~ msgstr "Nastaviť vnútorné čiary"
#~ msgid "I&gnore format"
#~ msgstr "&Ignorovať formát"

View File

@ -2531,8 +2531,8 @@ void BufferView::mouseEventDispatch(FuncRequest const & cmd0)
// Notify left insets // Notify left insets
if (cur != old) { if (cur != old) {
bool badcursor = old.fixIfBroken() | cur.fixIfBroken(); bool badcursor = old.fixIfBroken() || cur.fixIfBroken();
badcursor |= notifyCursorLeavesOrEnters(old, cur); badcursor = badcursor || notifyCursorLeavesOrEnters(old, cur);
if (badcursor) if (badcursor)
cursor().fixIfBroken(); cursor().fixIfBroken();
} }

View File

@ -336,12 +336,19 @@ int Font::latexWriteStartChanges(otexstream & os, BufferParams const & bparams,
p.reduce(prev.bits_); p.reduce(prev.bits_);
if (f.size() != INHERIT_SIZE) { if (f.size() != INHERIT_SIZE) {
if (!runparams.find_effective()) {
os << '{'; os << '{';
++count; ++count;
os << '\\' os << '\\'
<< LaTeXSizeSwitchNames[f.size()] << termcmd; << LaTeXSizeSwitchNames[f.size()] << termcmd;
count += strlen(LaTeXSizeSwitchNames[f.size()]) + 1; count += strlen(LaTeXSizeSwitchNames[f.size()]) + 1;
} }
else {
os << '\\'
<< LaTeXSizeSwitchNames[f.size()] << '{';
count += strlen(LaTeXSizeSwitchNames[f.size()]) + 2;
}
}
if (f.family() != INHERIT_FAMILY) { if (f.family() != INHERIT_FAMILY) {
if (non_inherit_inset) { if (non_inherit_inset) {
os << '{'; os << '{';

View File

@ -433,7 +433,12 @@ public:
SearchNonOutput = 8 SearchNonOutput = 8
}; };
int for_search = NoSearch; inline bool find_effective(void) const { return (for_search != OutputParams::NoSearch); }
inline bool find_with_non_output() const { return ((for_search & OutputParams::SearchNonOutput) != 0); }
inline bool find_with_deleted() const { return ((for_search & OutputParams::SearchWithDeleted) != 0); }
inline void find_set_feature(enum Search set_) { for_search = set_; }
inline void find_add_feature(enum Search add_) { for_search |= add_; }
inline void find_clean_features(void) { for_search = OutputParams::NoSearch; }
/// Are we generating this material for instant preview? /// Are we generating this material for instant preview?
bool for_preview = false; bool for_preview = false;
@ -446,6 +451,8 @@ public:
/// A postponed \\noindent (after VSpace) /// A postponed \\noindent (after VSpace)
mutable bool need_noindent = false; mutable bool need_noindent = false;
private:
int for_search = NoSearch;
}; };

View File

@ -1209,27 +1209,42 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
{ {
char_type const c = owner_->getUChar(bparams, runparams, i); char_type const c = owner_->getUChar(bparams, runparams, i);
if (style.pass_thru || runparams.pass_thru || (runparams.for_search != OutputParams::NoSearch) if (style.pass_thru || runparams.pass_thru || runparams.find_effective()
|| contains(style.pass_thru_chars, c) || contains(style.pass_thru_chars, c)
|| contains(runparams.pass_thru_chars, c)) { || contains(runparams.pass_thru_chars, c)) {
if (runparams.for_search != OutputParams::NoSearch) { if (runparams.find_effective()) {
if (c == '\\') switch (c) {
case '\\':
os << "\\\\"; os << "\\\\";
else if (c == '{') return;
case '{':
os << "\\braceleft "; os << "\\braceleft ";
else if (c == '}') return;
case '}':
os << "\\braceright "; os << "\\braceright ";
else if (c != '\0') return;
case '$':
os << "\\lyxdollar ";
return;
case '~':
os << "\\lyxtilde ";
return;
case ' ':
case '\0':
break;
default:
os.put(c); os.put(c);
return;
}
} }
else if (c != '\0') { else if (c != '\0') {
Encoding const * const enc = runparams.encoding; Encoding const * const enc = runparams.encoding;
if (enc && !enc->encodable(c)) if (enc && !enc->encodable(c))
throw EncodingException(c); throw EncodingException(c);
os.put(c); os.put(c);
}
return; return;
} }
}
// TIPA uses its own T3 encoding // TIPA uses its own T3 encoding
if (runparams.inIPA && latexSpecialT3(c, os, i, column)) if (runparams.inIPA && latexSpecialT3(c, os, i, column))
@ -2610,7 +2625,7 @@ void Paragraph::latex(BufferParams const & bparams,
runparams); runparams);
runningChange = Change(Change::UNCHANGED); runningChange = Change(Change::UNCHANGED);
os << (isEnvSeparator(i) ? "}]~" : "}] "); os << ((isEnvSeparator(i) && !runparams.find_effective()) ? "}]~" : "}] ");
column +=3; column +=3;
} }
// For InTitle commands, we have already opened a group // For InTitle commands, we have already opened a group
@ -2640,10 +2655,10 @@ void Paragraph::latex(BufferParams const & bparams,
// Check whether a display math inset follows // Check whether a display math inset follows
bool output_changes; bool output_changes;
if (runparams.for_search == OutputParams::NoSearch) if (!runparams.find_effective())
output_changes = bparams.output_changes; output_changes = bparams.output_changes;
else else
output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0); output_changes = runparams.find_with_deleted();
if (c == META_INSET if (c == META_INSET
&& i >= start_pos && (end_pos == -1 || i < end_pos)) { && i >= start_pos && (end_pos == -1 || i < end_pos)) {
if (isDeleted(i)) if (isDeleted(i))
@ -4586,7 +4601,7 @@ int Paragraph::find(docstring const & str, bool cs, bool mw,
odocstringstream os; odocstringstream os;
if (inset->lyxCode() == lyx::QUOTE_CODE) { if (inset->lyxCode() == lyx::QUOTE_CODE) {
OutputParams op(0); OutputParams op(0);
op.for_search = OutputParams::SearchQuick; op.find_set_feature(OutputParams::SearchQuick);
inset->plaintext(os, op); inset->plaintext(os, op);
} }
else { else {

View File

@ -162,6 +162,7 @@ void Text::setInsetFont(BufferView const & bv, pit_type pit,
void Text::setLayout(pit_type start, pit_type end, void Text::setLayout(pit_type start, pit_type end,
docstring const & layout) docstring const & layout)
{ {
// FIXME: make this work in multicell selection case
LASSERT(start != end, return); LASSERT(start != end, return);
Buffer const & buffer = owner_->buffer(); Buffer const & buffer = owner_->buffer();

View File

@ -1875,8 +1875,18 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
bvcur.resetAnchor(); bvcur.resetAnchor();
if (!bv->mouseSetCursor(cur, cmd.modifier() == ShiftModifier)) if (!bv->mouseSetCursor(cur, cmd.modifier() == ShiftModifier))
cur.screenUpdateFlags(Update::SinglePar | Update::FitCursor); cur.screenUpdateFlags(Update::SinglePar | Update::FitCursor);
if (bvcur.wordSelection()) // FIXME: move this to mouseSetCursor?
selectWord(bvcur, WHOLE_WORD); if (bvcur.wordSelection() && bvcur.inTexted()) {
// select word around new position
Cursor c = bvcur;
c.selection(false);
c.text()->selectWord(c, WHOLE_WORD);
// use the correct word boundary, depending on selection direction
if (bvcur.top() > bvcur.normalAnchor())
bvcur.pos() = c.selEnd().pos();
else
bvcur.pos() = c.selBegin().pos();
}
break; break;
case mouse_button::button2: case mouse_button::button2:
@ -3575,8 +3585,10 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
docstring const req_layout = ignoreautonests ? from_utf8(cmd.getArg(0)) : cmd.argument(); docstring const req_layout = ignoreautonests ? from_utf8(cmd.getArg(0)) : cmd.argument();
docstring const layout = resolveLayout(req_layout, cur); docstring const layout = resolveLayout(req_layout, cur);
enable = !owner_->forcePlainLayout() && !layout.empty(); // FIXME: make this work in multicell selection case
status.setOnOff(!owner_->forcePlainLayout() && isAlreadyLayout(layout, cur)); enable = !owner_->forcePlainLayout() && !layout.empty() && !cur.selIsMultiCell();
status.setOnOff(!owner_->forcePlainLayout() && !cur.selIsMultiCell()
&& isAlreadyLayout(layout, cur));
break; break;
} }

View File

@ -421,7 +421,7 @@ bool FindAndReplaceWidget::findAndReplaceScope(FindAndReplaceOptions & opt, bool
/// Return true if a match was found /// Return true if a match was found
bool FindAndReplaceWidget::findAndReplace( bool FindAndReplaceWidget::findAndReplace(
bool casesensitive, bool matchword, bool backwards, bool casesensitive, bool matchword, bool backwards,
bool expandmacros, bool ignoreformat, bool replace, bool expandmacros, bool adhereformat, bool replace,
bool keep_case, bool replace_all) bool keep_case, bool replace_all)
{ {
Buffer & find_buf = find_work_area_->bufferView().buffer(); Buffer & find_buf = find_work_area_->bufferView().buffer();
@ -460,19 +460,59 @@ bool FindAndReplaceWidget::findAndReplace(
<< ", matchword=" << matchword << ", matchword=" << matchword
<< ", backwards=" << backwards << ", backwards=" << backwards
<< ", expandmacros=" << expandmacros << ", expandmacros=" << expandmacros
<< ", ignoreformat=" << ignoreformat << ", adhereformat=" << adhereformat
<< ", repl_buf_name" << repl_buf_name << ", repl_buf_name" << repl_buf_name
<< ", keep_case=" << keep_case << ", keep_case=" << keep_case
<< ", scope=" << scope << ", scope=" << scope
<< ", restr=" << restr); << ", restr=" << restr);
FindAndReplaceOptions opt(find_buf_name, casesensitive, matchword, FindAndReplaceOptions opt(find_buf_name, casesensitive, matchword,
!backwards, expandmacros, ignoreformat, !backwards, expandmacros, !adhereformat,
repl_buf_name, keep_case, scope, restr); repl_buf_name, keep_case, scope, restr);
if (adhereformat) {
// Formats to adhere
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("language",
!adhereLanguageCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("color",
!adhereColorCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("family",
!adhereFFamilyCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("series",
!adhereFSeriesCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("shape",
!adhereFShapeCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("size",
!adhereFSizeCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("markup",
!adhereMarkupCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("underline",
!adhereUnderlineCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("strike",
!adhereStrikeCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("deleted",
!adhereDeletedCB->isChecked())));
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("sectioning",
!adhereSectioningCB->isChecked())));
}
lyx::dispatch(FuncRequest(LFUN_SEARCH_IGNORE, checkState("non-output-content",
ignoreNonOutputCB->isChecked())));
return findAndReplaceScope(opt, replace_all); return findAndReplaceScope(opt, replace_all);
} }
docstring const FindAndReplaceWidget::checkState(string const s, bool const b)
{
docstring res = from_ascii(s) + from_ascii(" ");
if (b)
res += from_ascii("true");
else
res += from_ascii("false");
return res;
}
bool FindAndReplaceWidget::findAndReplace(bool backwards, bool replace, bool replace_all) bool FindAndReplaceWidget::findAndReplace(bool backwards, bool replace, bool replace_all)
{ {
if (! view_.currentMainWorkArea()) { if (! view_.currentMainWorkArea()) {
@ -492,7 +532,7 @@ bool FindAndReplaceWidget::findAndReplace(bool backwards, bool replace, bool rep
wordsCB->isChecked(), wordsCB->isChecked(),
backwards, backwards,
expandMacrosCB->isChecked(), expandMacrosCB->isChecked(),
ignoreFormatCB->isChecked(), adhereFormatGB->isChecked(),
replace, replace,
keepCaseCB->isChecked(), keepCaseCB->isChecked(),
replace_all); replace_all);
@ -532,6 +572,34 @@ void FindAndReplaceWidget::on_searchbackCB_clicked()
} }
void FindAndReplaceWidget::setFormatIgnores(bool const b)
{
adhereLanguageCB->setChecked(b);
adhereColorCB->setChecked(b);
adhereFFamilyCB->setChecked(b);
adhereFSeriesCB->setChecked(b);
adhereFShapeCB->setChecked(b);
adhereFSizeCB->setChecked(b);
adhereMarkupCB->setChecked(b);
adhereUnderlineCB->setChecked(b);
adhereStrikeCB->setChecked(b);
adhereDeletedCB->setChecked(b);
adhereSectioningCB->setChecked(b);
}
void FindAndReplaceWidget::on_selectAllPB_clicked()
{
setFormatIgnores(true);
}
void FindAndReplaceWidget::on_deselectAllPB_clicked()
{
setFormatIgnores(false);
}
// Copy selected elements from bv's BufferParams to the dest_bv's // Copy selected elements from bv's BufferParams to the dest_bv's
static void copy_params(BufferView const & bv, BufferView & dest_bv) { static void copy_params(BufferView const & bv, BufferView & dest_bv) {
Buffer const & doc_buf = bv.buffer(); Buffer const & doc_buf = bv.buffer();
@ -584,7 +652,8 @@ void FindAndReplace::updateView()
FindAndReplace::FindAndReplace(GuiView & parent, FindAndReplace::FindAndReplace(GuiView & parent,
Qt::DockWidgetArea area, Qt::WindowFlags flags) Qt::DockWidgetArea area,
Qt::WindowFlags flags)
: DockView(parent, "findreplaceadv", qt_("Advanced Find and Replace"), : DockView(parent, "findreplaceadv", qt_("Advanced Find and Replace"),
area, flags) area, flags)
{ {

View File

@ -16,6 +16,7 @@
// This is needed so that ui_FindAndReplaceUi.h can find qt_() // This is needed so that ui_FindAndReplaceUi.h can find qt_()
#include "qt_helpers.h" #include "qt_helpers.h"
#include "ui_FindAndReplaceUi.h" #include "ui_FindAndReplaceUi.h"
#include "support/docstring.h"
#include <string> #include <string>
@ -66,11 +67,17 @@ private:
void hideDialog(); void hideDialog();
void setFormatIgnores(bool const b);
docstring const checkState(std::string const s, bool const b);
protected Q_SLOTS: protected Q_SLOTS:
void on_findNextPB_clicked(); void on_findNextPB_clicked();
void on_replacePB_clicked(); void on_replacePB_clicked();
void on_replaceallPB_clicked(); void on_replaceallPB_clicked();
void on_searchbackCB_clicked(); void on_searchbackCB_clicked();
void on_selectAllPB_clicked();
void on_deselectAllPB_clicked();
}; };

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>374</width> <width>374</width>
<height>380</height> <height>664</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -263,7 +263,7 @@
<attribute name="title"> <attribute name="title">
<string>Settin&amp;gs</string> <string>Settin&amp;gs</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="dynamicLayoutAdvanced_" stretch="0,0,1"> <layout class="QVBoxLayout" name="dynamicLayoutAdvanced_" stretch="0,0,0,1">
<item> <item>
<widget class="QGroupBox" name="groupBox_2"> <widget class="QGroupBox" name="groupBox_2">
<property name="enabled"> <property name="enabled">
@ -365,32 +365,6 @@
<enum>QLayout::SetMinimumSize</enum> <enum>QLayout::SetMinimumSize</enum>
</property> </property>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QCheckBox" name="OnlyMaths">
<property name="toolTip">
<string>Restrict search to math environments only</string>
</property>
<property name="text">
<string>Search on&amp;ly in maths</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="ignoreFormatCB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="toolTip">
<string>If unchecked, the search will be limited to occurrences of the selected text and paragraph style</string>
</property>
<property name="text">
<string>I&amp;gnore format</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="expandMacrosCB"> <widget class="QCheckBox" name="expandMacrosCB">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
@ -401,6 +375,16 @@
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QCheckBox" name="OnlyMaths">
<property name="toolTip">
<string>Restrict search to math environments only</string>
</property>
<property name="text">
<string>Search onl&amp;y in maths</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="keepCaseCB"> <widget class="QCheckBox" name="keepCaseCB">
<property name="toolTip"> <property name="toolTip">
<string>Keep the case of the replacement's first letter as in each matching text first letter</string> <string>Keep the case of the replacement's first letter as in each matching text first letter</string>
@ -423,8 +407,127 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="4" column="0">
<widget class="QCheckBox" name="ignoreNonOutputCB">
<property name="toolTip">
<string>Do not search in content that is not output (e.g., notes)</string>
</property>
<property name="text">
<string>Ignore &amp;non-output content</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item>
<widget class="QGroupBox" name="adhereFormatGB">
<property name="toolTip">
<string>If the search string is formatted in a non-default way, only find strings formatted like the search string in the checked respects</string>
</property>
<property name="title">
<string>Adhe&amp;re to search string formatting of</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="2" column="1">
<widget class="QCheckBox" name="adhereStrikeCB">
<property name="text">
<string>Strike-through</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="adhereFSeriesCB">
<property name="text">
<string>Font series</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="adhereColorCB">
<property name="text">
<string>Font color</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="adhereMarkupCB">
<property name="text">
<string>Emph/noun</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QPushButton" name="deselectAllPB">
<property name="text">
<string>Dese&amp;lect all</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="adhereFFamilyCB">
<property name="text">
<string>Font family</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="adhereLanguageCB">
<property name="text">
<string>Language</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="adhereSectioningCB">
<property name="text">
<string>Sectioning markup</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="adhereDeletedCB">
<property name="text">
<string>Deletion (change)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="adhereUnderlineCB">
<property name="text">
<string>Underlining</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="adhereFShapeCB">
<property name="text">
<string>Font shape</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QPushButton" name="selectAllPB">
<property name="text">
<string>&amp;Select all</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="adhereFSizeCB">
<property name="text">
<string>Font size</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item> <item>
<spacer name="verticalSpacer_2"> <spacer name="verticalSpacer_2">
<property name="orientation"> <property name="orientation">

View File

@ -163,9 +163,6 @@
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QLabel" name="label_3"> <widget class="QLabel" name="label_3">
<property name="toolTip">
<string>Configure the width of the text cursor. Automatic zoom-controlled cursor width used when set to 0.</string>
</property>
<property name="text"> <property name="text">
<string>Cursor width (&amp;pixels):</string> <string>Cursor width (&amp;pixels):</string>
</property> </property>
@ -176,6 +173,12 @@
</item> </item>
<item> <item>
<widget class="QSpinBox" name="cursorWidthSB"> <widget class="QSpinBox" name="cursorWidthSB">
<property name="toolTip">
<string>Configure the width of the text cursor. &quot;Auto&quot; means that zoom-controlled width is used.</string>
</property>
<property name="specialValueText">
<string>Auto</string>
</property>
<property name="minimum"> <property name="minimum">
<number>0</number> <number>0</number>
</property> </property>

View File

@ -983,7 +983,7 @@ int InsetBibtex::plaintext(odocstringstream & os,
// We could output more information here, e.g., what databases are included // We could output more information here, e.g., what databases are included
// and information about options. But I don't necessarily see any reason to // and information about options. But I don't necessarily see any reason to
// do this right now. // do this right now.
if (op.for_tooltip || op.for_toc || op.for_search != OutputParams::NoSearch) { if (op.for_tooltip || op.for_toc || op.find_effective()) {
os << '[' << reflabel << ']' << '\n'; os << '[' << reflabel << ']' << '\n';
return PLAINTEXT_NEWLINE; return PLAINTEXT_NEWLINE;
} }

View File

@ -321,7 +321,7 @@ bool InsetBranch::producesOutput() const
void InsetBranch::latex(otexstream & os, OutputParams const & runparams) const void InsetBranch::latex(otexstream & os, OutputParams const & runparams) const
{ {
if (producesOutput() || ((runparams.for_search & OutputParams::SearchNonOutput) != 0)) { if (producesOutput() || runparams.find_with_non_output()) {
OutputParams rp = runparams; OutputParams rp = runparams;
rp.inbranch = true; rp.inbranch = true;
InsetText::latex(os, rp); InsetText::latex(os, rp);
@ -335,7 +335,7 @@ void InsetBranch::latex(otexstream & os, OutputParams const & runparams) const
int InsetBranch::plaintext(odocstringstream & os, int InsetBranch::plaintext(odocstringstream & os,
OutputParams const & runparams, size_t max_length) const OutputParams const & runparams, size_t max_length) const
{ {
if (!producesOutput() && ((runparams.for_search & OutputParams::SearchNonOutput) == 0)) if (!producesOutput() && !runparams.find_with_non_output())
return 0; return 0;
int len = InsetText::plaintext(os, runparams, max_length); int len = InsetText::plaintext(os, runparams, max_length);

View File

@ -1006,14 +1006,14 @@ int InsetInclude::plaintext(odocstringstream & os,
{ {
// just write the filename if we're making a tooltip or toc entry, // just write the filename if we're making a tooltip or toc entry,
// or are generating this for advanced search // or are generating this for advanced search
if (op.for_tooltip || op.for_toc || op.for_search != OutputParams::NoSearch) { if (op.for_tooltip || op.for_toc || op.find_effective()) {
os << '[' << screenLabel() << '\n' os << '[' << screenLabel() << '\n'
<< ltrim(getParam("filename")) << "\n]"; << ltrim(getParam("filename")) << "\n]";
return PLAINTEXT_NEWLINE + 1; // one char on a separate line return PLAINTEXT_NEWLINE + 1; // one char on a separate line
} }
if (isVerbatim(params()) || isListings(params())) { if (isVerbatim(params()) || isListings(params())) {
if (op.for_search != OutputParams::NoSearch) { if (op.find_effective()) {
os << '[' << screenLabel() << ']'; os << '[' << screenLabel() << ']';
} }
else { else {

View File

@ -146,7 +146,7 @@ void InsetIndex::latex(otexstream & ios, OutputParams const & runparams_in) cons
odocstringstream ourlatex; odocstringstream ourlatex;
otexstream ots(ourlatex); otexstream ots(ourlatex);
InsetText::latex(ots, runparams); InsetText::latex(ots, runparams);
if (runparams.for_search != OutputParams::NoSearch) { if (runparams.find_effective()) {
// No need for special handling, if we are only searching for some patterns // No need for special handling, if we are only searching for some patterns
os << ourlatex.str() << "}"; os << ourlatex.str() << "}";
return; return;

View File

@ -207,12 +207,12 @@ bool InsetNote::isMacroScope() const
void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const
{ {
if (params_.type != InsetNoteParams::Greyedout if (params_.type != InsetNoteParams::Greyedout
&& runparams_in.for_search != OutputParams::NoSearch && runparams_in.find_effective()
&& (runparams_in.for_search & OutputParams::SearchNonOutput) == 0) && !runparams_in.find_with_non_output())
return; return;
if (params_.type == InsetNoteParams::Note) { if (params_.type == InsetNoteParams::Note) {
if ((runparams_in.for_search & OutputParams::SearchNonOutput) != 0) { if (runparams_in.find_with_non_output()) {
OutputParams runparams(runparams_in); OutputParams runparams(runparams_in);
InsetCollapsible::latex(os, runparams); InsetCollapsible::latex(os, runparams);
runparams_in.encoding = runparams.encoding; runparams_in.encoding = runparams.encoding;
@ -251,11 +251,11 @@ void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const
int InsetNote::plaintext(odocstringstream & os, int InsetNote::plaintext(odocstringstream & os,
OutputParams const & runparams_in, size_t max_length) const OutputParams const & runparams_in, size_t max_length) const
{ {
if ((runparams_in.for_search & OutputParams::SearchNonOutput) == 0) { if (!runparams_in.find_with_non_output()) {
if (params_.type == InsetNoteParams::Note) if (params_.type == InsetNoteParams::Note)
return 0; return 0;
else if (params_.type == InsetNoteParams::Comment else if (params_.type == InsetNoteParams::Comment
&& (runparams_in.for_search != OutputParams::NoSearch)) && runparams_in.find_effective())
return 0; return 0;
} }
@ -265,10 +265,10 @@ int InsetNote::plaintext(odocstringstream & os,
// Ignore files that are exported inside a comment // Ignore files that are exported inside a comment
runparams.exportdata.reset(new ExportData); runparams.exportdata.reset(new ExportData);
} }
if ((runparams_in.for_search & OutputParams::SearchNonOutput) == 0) if (!runparams_in.find_with_non_output())
os << '[' << buffer().B_("note") << ":\n"; os << '[' << buffer().B_("note") << ":\n";
InsetText::plaintext(os, runparams, max_length); InsetText::plaintext(os, runparams, max_length);
if ((runparams_in.for_search & OutputParams::SearchNonOutput) == 0) if (!runparams_in.find_with_non_output())
os << "\n]"; os << "\n]";
return PLAINTEXT_NEWLINE + 1; // one char on a separate line return PLAINTEXT_NEWLINE + 1; // one char on a separate line

View File

@ -851,7 +851,7 @@ void InsetQuotes::latex(otexstream & os, OutputParams const & runparams) const
docstring qstr; docstring qstr;
// In pass-thru context, we output plain quotes // In pass-thru context, we output plain quotes
if (runparams.pass_thru || runparams.for_search != OutputParams::NoSearch) if (runparams.pass_thru || runparams.find_effective())
qstr = (level_ == QuoteLevel::Primary) ? from_ascii("\"") : from_ascii("'"); qstr = (level_ == QuoteLevel::Primary) ? from_ascii("\"") : from_ascii("'");
else if (style == QuoteStyle::Plain && fontspec_) { else if (style == QuoteStyle::Plain && fontspec_) {
// For XeTeX and LuaTeX,we need to disable mapping to get straight // For XeTeX and LuaTeX,we need to disable mapping to get straight
@ -944,7 +944,7 @@ void InsetQuotes::latex(otexstream & os, OutputParams const & runparams) const
int InsetQuotes::plaintext(odocstringstream & os, int InsetQuotes::plaintext(odocstringstream & os,
OutputParams const & op, size_t) const OutputParams const & op, size_t) const
{ {
if (op.for_search == OutputParams::NoSearch) { if (!op.find_effective()) {
docstring const str = displayString(); docstring const str = displayString();
os << str; os << str;
return str.size(); return str.size();

View File

@ -579,94 +579,120 @@ void InsetSpace::latex(otexstream & os, OutputParams const & runparams) const
{ {
switch (params_.kind) { switch (params_.kind) {
case InsetSpaceParams::NORMAL: case InsetSpaceParams::NORMAL:
os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? " " : "\\ "); if (runparams.find_effective())
os << "~";
else
os << (runparams.free_spacing ? " " : "\\ ");
break; break;
case InsetSpaceParams::PROTECTED: case InsetSpaceParams::PROTECTED:
if (runparams.local_font && if (runparams.find_effective())
os.put(0xa0);
else if (runparams.local_font &&
runparams.local_font->language()->lang() == "polutonikogreek") runparams.local_font->language()->lang() == "polutonikogreek")
// in babel's polutonikogreek, ~ is active // in babel's polutonikogreek, ~ is active
os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? " " : "\\nobreakspace{}"); os << (runparams.free_spacing ? " " : "\\nobreakspace{}");
else else
os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? ' ' : '~'); os << (runparams.free_spacing ? ' ' : '~');
break; break;
case InsetSpaceParams::VISIBLE: case InsetSpaceParams::VISIBLE:
os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? " " : "\\textvisiblespace{}"); if (runparams.find_effective())
os.put(0x2423);
else
os << (runparams.free_spacing ? " " : "\\textvisiblespace{}");
break; break;
case InsetSpaceParams::THIN: case InsetSpaceParams::THIN:
if (runparams.for_search != OutputParams::NoSearch) if (runparams.find_effective())
os << "\\thinspace{}"; os.put(0x2009);
else else
os << (runparams.free_spacing ? " " : "\\,"); os << (runparams.free_spacing ? " " : "\\,");
break; break;
case InsetSpaceParams::MEDIUM: case InsetSpaceParams::MEDIUM:
if (runparams.for_search != OutputParams::NoSearch) if (runparams.find_effective())
os << "\\medspace{}"; os.put(0x2005);
else if (params_.math) else if (params_.math)
os << (runparams.free_spacing ? " " : "\\:"); os << (runparams.free_spacing ? " " : "\\:");
else else
os << (runparams.free_spacing ? " " : "\\medspace{}"); os << (runparams.free_spacing ? " " : "\\medspace{}");
break; break;
case InsetSpaceParams::THICK: case InsetSpaceParams::THICK:
if (runparams.for_search != OutputParams::NoSearch) if (runparams.find_effective())
os << "\\thickspace{}"; os.put(0x2004);
else if (params_.math) else if (params_.math)
os << (runparams.free_spacing ? " " : "\\;"); os << (runparams.free_spacing ? " " : "\\;");
else else
os << (runparams.free_spacing ? " " : "\\thickspace{}"); os << (runparams.free_spacing ? " " : "\\thickspace{}");
break; break;
case InsetSpaceParams::QUAD: case InsetSpaceParams::QUAD:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\quad{}"); if (runparams.find_effective())
os.put(0x2003);
else
os << (runparams.free_spacing ? " " : "\\quad{}");
break; break;
case InsetSpaceParams::QQUAD: case InsetSpaceParams::QQUAD:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\qquad{}"); if (runparams.find_effective()) {
os.put(0x2003);
os.put(0x2003);
}
else
os << (runparams.free_spacing ? " " : "\\qquad{}");
break; break;
case InsetSpaceParams::ENSPACE: case InsetSpaceParams::ENSPACE:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\enspace{}"); if (runparams.find_effective())
os.put(0x2002);
else
os << (runparams.free_spacing ? " " : "\\enspace{}");
break; break;
case InsetSpaceParams::ENSKIP: case InsetSpaceParams::ENSKIP:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\enskip{}"); if (runparams.find_effective())
os.put(0x2002);
else
os << (runparams.free_spacing ? " " : "\\enskip{}");
break; break;
case InsetSpaceParams::NEGTHIN: case InsetSpaceParams::NEGTHIN:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\negthinspace{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negthinspace{}");
break; break;
case InsetSpaceParams::NEGMEDIUM: case InsetSpaceParams::NEGMEDIUM:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\negmedspace{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negmedspace{}");
break; break;
case InsetSpaceParams::NEGTHICK: case InsetSpaceParams::NEGTHICK:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\negthickspace{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negthickspace{}");
break; break;
case InsetSpaceParams::HFILL: case InsetSpaceParams::HFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\hfill{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hfill{}");
break; break;
case InsetSpaceParams::HFILL_PROTECTED: case InsetSpaceParams::HFILL_PROTECTED:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\hspace*{\\fill}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hspace*{\\fill}");
break; break;
case InsetSpaceParams::DOTFILL: case InsetSpaceParams::DOTFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\dotfill{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\dotfill{}");
break; break;
case InsetSpaceParams::HRULEFILL: case InsetSpaceParams::HRULEFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\hrulefill{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hrulefill{}");
break; break;
case InsetSpaceParams::LEFTARROWFILL: case InsetSpaceParams::LEFTARROWFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\leftarrowfill{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\leftarrowfill{}");
break; break;
case InsetSpaceParams::RIGHTARROWFILL: case InsetSpaceParams::RIGHTARROWFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\rightarrowfill{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\rightarrowfill{}");
break; break;
case InsetSpaceParams::UPBRACEFILL: case InsetSpaceParams::UPBRACEFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\upbracefill{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\upbracefill{}");
break; break;
case InsetSpaceParams::DOWNBRACEFILL: case InsetSpaceParams::DOWNBRACEFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\downbracefill{}"); os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\downbracefill{}");
break; break;
case InsetSpaceParams::CUSTOM: case InsetSpaceParams::CUSTOM:
if (runparams.free_spacing) if (runparams.find_effective())
os.put(0x00a0);
else if (runparams.free_spacing)
os << " "; os << " ";
else else
os << "\\hspace{" << from_ascii(params_.length.asLatexString()) << "}"; os << "\\hspace{" << from_ascii(params_.length.asLatexString()) << "}";
break; break;
case InsetSpaceParams::CUSTOM_PROTECTED: case InsetSpaceParams::CUSTOM_PROTECTED:
if (runparams.free_spacing) if (runparams.find_effective())
os.put(0x00a0);
else if (runparams.free_spacing)
os << " "; os << " ";
else else
os << "\\hspace*{" << from_ascii(params_.length.asLatexString()) << "}"; os << "\\hspace*{" << from_ascii(params_.length.asLatexString()) << "}";

View File

@ -88,6 +88,8 @@ class IgnoreFormats {
/// ///
bool getShape() const { return ignoreShape_; } bool getShape() const { return ignoreShape_; }
/// ///
bool getSize() const { return ignoreSize_; }
///
bool getUnderline() const { return ignoreUnderline_; } bool getUnderline() const { return ignoreUnderline_; }
/// ///
bool getMarkUp() const { return ignoreMarkUp_; } bool getMarkUp() const { return ignoreMarkUp_; }
@ -118,6 +120,8 @@ private:
/// ///
bool ignoreShape_ = false; bool ignoreShape_ = false;
/// ///
bool ignoreSize_ = true;
///
bool ignoreUnderline_ = false; bool ignoreUnderline_ = false;
/// ///
bool ignoreMarkUp_ = false; bool ignoreMarkUp_ = false;
@ -166,6 +170,9 @@ void IgnoreFormats::setIgnoreFormat(string const & type, bool value, bool fromUs
else if (type == "shape") { else if (type == "shape") {
ignoreShape_ = value; ignoreShape_ = value;
} }
else if (type == "size") {
ignoreSize_ = value;
}
else if (type == "family") { else if (type == "family") {
ignoreFamily_ = value; ignoreFamily_ = value;
} }
@ -805,10 +812,48 @@ namespace {
typedef vector<pair<string, string> > Escapes; typedef vector<pair<string, string> > Escapes;
static string getRegexSpaceCount(int count)
{
if (count > 0) {
if (count > 1)
return "\\s{" + std::to_string(count) + "}";
else
return "\\s";
}
return "";
}
string string2regex(string in) string string2regex(string in)
{ {
static std::regex specialChars { R"([-[\]{}()*+?.,\^$|#\s\$\\])" }; static std::regex specialChars { R"([-[\]{}()*+?.,\^$|#\$\\])" };
string temp = std::regex_replace(in, specialChars, R"(\$&)" ); string tempx = std::regex_replace(in, specialChars, R"(\$&)" );
// Special handling for ' '
string temp("");
int blanks = 0;
for (unsigned i = 0; i < tempx.size(); i++) {
if (tempx[i] == ' ' || tempx[i] == '~' ) {
// normal blanks
blanks++;
}
else if ((tempx[i] == '\302' && tempx[i+1] == '\240')
|| (tempx[i] == '\342' && tempx[i+1] == '\200')) {
// protected space
// thin space
blanks++;
i++;
}
else {
if (blanks > 0) {
temp += getRegexSpaceCount(blanks);
}
temp += tempx[i];
blanks = 0;
}
}
if (blanks > 0) {
temp += getRegexSpaceCount(blanks);
}
string temp2(""); string temp2("");
size_t lastpos = 0; size_t lastpos = 0;
size_t fl_pos = 0; size_t fl_pos = 0;
@ -838,7 +883,8 @@ string correctRegex(string t, bool withformat)
* and \{, \}, \[, \] => {, }, [, ] * and \{, \}, \[, \] => {, }, [, ]
*/ */
string s(""); string s("");
regex wordre("(\\\\)*(\\\\(([A-Za-z]+|[\\{\\}%])( |\\{\\})?|[\\[\\]\\{\\}]))"); static std::regex wordre("(\\\\)*(\\\\(( |[A-Za-z]+|[\\{\\}%])( |\\{\\})?|[\\[\\]\\{\\}]))");
static std::regex protectedSpace { R"(~)" };
size_t lastpos = 0; size_t lastpos = 0;
smatch sub; smatch sub;
bool backslashed = false; bool backslashed = false;
@ -846,6 +892,7 @@ string correctRegex(string t, bool withformat)
buildAccentsMap(); buildAccentsMap();
//LYXERR0("correctRegex input '" << t << "'"); //LYXERR0("correctRegex input '" << t << "'");
int skip = 0;
for (sregex_iterator it(t.begin(), t.end(), wordre), end; it != end; ++it) { for (sregex_iterator it(t.begin(), t.end(), wordre), end; it != end; ++it) {
sub = *it; sub = *it;
string replace; string replace;
@ -858,10 +905,14 @@ string correctRegex(string t, bool withformat)
{ {
// transforms '\backslash \{' into '\{' // transforms '\backslash \{' into '\{'
string next = t.substr(sub.position(2) + sub.str(2).length(), 2); string next = t.substr(sub.position(2) + sub.str(2).length(), 2);
if ((next == "\\{") || (next == "\\}")) { if ((next == "\\{") || (next == "\\}") || (next == "\\ ")) {
replace = ""; replace = "";
backslashed = true; backslashed = true;
} }
else if (withformat && next[0] == '$') {
replace = accents["lyxdollar"];
skip = 1; // Skip following '$'
}
} }
} }
else if (sub.str(4) == "mathcircumflex") else if (sub.str(4) == "mathcircumflex")
@ -873,6 +924,8 @@ string correctRegex(string t, bool withformat)
replace = accents["braceleft"]; replace = accents["braceleft"];
else if (sub.str(3) == "}") else if (sub.str(3) == "}")
replace = accents["braceright"]; replace = accents["braceright"];
else if (sub.str(3) == " ")
replace = "\\ ";
else { else {
// else part should not exist // else part should not exist
LASSERT(0, /**/); LASSERT(0, /**/);
@ -883,6 +936,8 @@ string correctRegex(string t, bool withformat)
replace = "\\{"; replace = "\\{";
else if (sub.str(3) == "}") else if (sub.str(3) == "}")
replace = "\\}"; replace = "\\}";
else if (sub.str(3) == " ")
replace = "\\ ";
else { else {
// else part should not exist // else part should not exist
LASSERT(0, /**/); LASSERT(0, /**/);
@ -895,6 +950,8 @@ string correctRegex(string t, bool withformat)
replace = "}"; replace = "}";
else if (sub.str(4) == "%") else if (sub.str(4) == "%")
replace = "%"; replace = "%";
else if (sub.str(4) == " ")
replace = " ";
else { else {
AccentsIterator it_ac = accents.find(sub.str(4)); AccentsIterator it_ac = accents.find(sub.str(4));
if (it_ac == accents.end()) { if (it_ac == accents.end()) {
@ -906,14 +963,15 @@ string correctRegex(string t, bool withformat)
} }
} }
if (lastpos < (size_t) sub.position(2)) if (lastpos < (size_t) sub.position(2))
s += t.substr(lastpos, sub.position(2) - lastpos); s += std::regex_replace(t.substr(lastpos, sub.position(2) - lastpos), protectedSpace, R"( )");
s += replace; s += replace;
lastpos = sub.position(2) + sub.length(2); lastpos = sub.position(2) + sub.length(2) + skip;
skip = 0;
} }
if (lastpos == 0) if (lastpos == 0)
s = t; s = std::regex_replace(t, protectedSpace, R"( )");
else if (lastpos < t.length()) else if (lastpos < t.length())
s += t.substr(lastpos, t.length() - lastpos); s += std::regex_replace(t.substr(lastpos, t.length() - lastpos), protectedSpace, R"( )");
// Handle quotes in regex // Handle quotes in regex
// substitute all '„', '“', '»', '«' with '"' // substitute all '„', '“', '»', '«' with '"'
// and all '', '', '', '' with "\'" // and all '', '', '', '' with "\'"
@ -1088,6 +1146,15 @@ void MatchStringAdv::FillResults(MatchResult &found_mr)
valid_matches = 0; valid_matches = 0;
} }
static void setFindParams(OutputParams &runparams)
{
runparams.flavor = Flavor::XeTeX;
//runparams.use_polyglossia = true;
runparams.linelen = 10000; //lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
}
static docstring buffer_to_latex(Buffer & buffer) static docstring buffer_to_latex(Buffer & buffer)
{ {
//OutputParams runparams(&buffer.params().encoding()); //OutputParams runparams(&buffer.params().encoding());
@ -1095,16 +1162,13 @@ static docstring buffer_to_latex(Buffer & buffer)
odocstringstream ods; odocstringstream ods;
otexstream os(ods); otexstream os(ods);
runparams.nice = true; runparams.nice = true;
runparams.flavor = Flavor::XeTeX; setFindParams(runparams);
runparams.linelen = 10000; //lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
if (ignoreFormats.getDeleted()) if (ignoreFormats.getDeleted())
runparams.for_search = OutputParams::SearchWithoutDeleted; runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
else else
runparams.for_search = OutputParams::SearchWithDeleted; runparams.find_set_feature(OutputParams::SearchWithDeleted);
if (ignoreFormats.getNonContent()) { if (ignoreFormats.getNonContent()) {
runparams.for_search |= OutputParams::SearchNonOutput; runparams.find_add_feature(OutputParams::SearchNonOutput);
} }
pit_type const endpit = buffer.paragraphs().size(); pit_type const endpit = buffer.paragraphs().size();
for (pit_type pit = 0; pit != endpit; ++pit) { for (pit_type pit = 0; pit != endpit; ++pit) {
@ -1114,7 +1178,7 @@ static docstring buffer_to_latex(Buffer & buffer)
return ods.str(); return ods.str();
} }
static string latexNamesToUtf8(docstring strIn) static string latexNamesToUtf8(docstring strIn, bool withformat)
{ {
string addtmp = to_utf8(strIn); string addtmp = to_utf8(strIn);
static regex const rmAcc("(\\\\)*(" static regex const rmAcc("(\\\\)*("
@ -1156,6 +1220,10 @@ static string latexNamesToUtf8(docstring strIn)
add = addtmp; add = addtmp;
else if (addtmp.length() > lastpos) else if (addtmp.length() > lastpos)
add += addtmp.substr(lastpos, addtmp.length() - lastpos); add += addtmp.substr(lastpos, addtmp.length() - lastpos);
if (!withformat) {
static std::regex repltilde { R"(~)" };
add = std::regex_replace(add, repltilde, accents["lyxtilde"]);
}
LYXERR(Debug::FINDVERBOSE, "Adding to search string: '" LYXERR(Debug::FINDVERBOSE, "Adding to search string: '"
<< add << "'"); << add << "'");
return add; return add;
@ -1170,26 +1238,24 @@ static docstring stringifySearchBuffer(Buffer & buffer, FindAndReplaceOptions co
// OutputParams runparams(&buffer.params().encoding()); // OutputParams runparams(&buffer.params().encoding());
OutputParams runparams(encodings.fromLyXName("utf8")); OutputParams runparams(encodings.fromLyXName("utf8"));
runparams.nice = true; runparams.nice = true;
runparams.flavor = Flavor::XeTeX; setFindParams(runparams);
runparams.linelen = 10000; //lyxrc.plaintext_linelen;
runparams.dryrun = true;
int option = AS_STR_INSETS |AS_STR_PLAINTEXT; int option = AS_STR_INSETS |AS_STR_PLAINTEXT;
if (ignoreFormats.getDeleted()) { if (ignoreFormats.getDeleted()) {
option |= AS_STR_SKIPDELETE; option |= AS_STR_SKIPDELETE;
runparams.for_search = OutputParams::SearchWithoutDeleted; runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
} }
else { else {
runparams.for_search = OutputParams::SearchWithDeleted; runparams.find_set_feature(OutputParams::SearchWithDeleted);
} }
if (ignoreFormats.getNonContent()) { if (ignoreFormats.getNonContent()) {
runparams.for_search |= OutputParams::SearchNonOutput; runparams.find_add_feature(OutputParams::SearchNonOutput);
} }
string t(""); string t("");
for (pos_type pit = pos_type(0); pit < (pos_type)buffer.paragraphs().size(); ++pit) { for (pos_type pit = pos_type(0); pit < (pos_type)buffer.paragraphs().size(); ++pit) {
Paragraph const & par = buffer.paragraphs().at(pit); Paragraph const & par = buffer.paragraphs().at(pit);
string add = latexNamesToUtf8(par.asString(pos_type(0), par.size(), string add = latexNamesToUtf8(par.asString(pos_type(0), par.size(),
option, option,
&runparams)); &runparams), !opt.ignoreformat);
LYXERR(Debug::FINDVERBOSE, "Adding to search string: '" LYXERR(Debug::FINDVERBOSE, "Adding to search string: '"
<< add << "'"); << add << "'");
t += add; t += add;
@ -1222,7 +1288,7 @@ static size_t identifyLeading(string const & s)
|| regex_replace(t, t, "^\\\\begin\\{[a-zA-Z_]*\\*?\\}", "")) || regex_replace(t, t, "^\\\\begin\\{[a-zA-Z_]*\\*?\\}", ""))
; ;
LYXERR(Debug::FINDVERBOSE, " after removing leading $, \\[ , \\emph{, \\textbf{, etc.: '" << t << "'"); LYXERR(Debug::FINDVERBOSE, " after removing leading $, \\[ , \\emph{, \\textbf{, etc.: '" << t << "'");
return s.find(t); return s.size() - t.size();
} }
/* /*
@ -1375,6 +1441,7 @@ public:
void removeAccents(); void removeAccents();
void setForDefaultLang(KeyInfo const & defLang) const; void setForDefaultLang(KeyInfo const & defLang) const;
int findclosing(int start, int end, char up, char down, int repeat); int findclosing(int start, int end, char up, char down, int repeat);
void removeInvalidClosings(void);
void handleParentheses(int lastpos, bool closingAllowed); void handleParentheses(int lastpos, bool closingAllowed);
bool hasTitle; bool hasTitle;
// Number of disabled language specs up // Number of disabled language specs up
@ -1884,7 +1951,6 @@ static void buildAccentsMap()
accents["cdot"] = "·"; accents["cdot"] = "·";
accents["textasciicircum"] = "^"; accents["textasciicircum"] = "^";
accents["mathcircumflex"] = "^"; accents["mathcircumflex"] = "^";
accents["sim"] = "~";
accents["guillemotright"] = "»"; accents["guillemotright"] = "»";
accents["guillemotleft"] = "«"; accents["guillemotleft"] = "«";
accents["hairspace"] = getutf8(0xf0000); // select from free unicode plane 15 accents["hairspace"] = getutf8(0xf0000); // select from free unicode plane 15
@ -1905,6 +1971,9 @@ static void buildAccentsMap()
accents["lyxarrow"] = getutf8(0xf0020); accents["lyxarrow"] = getutf8(0xf0020);
accents["braceleft"] = getutf8(0xf0030); accents["braceleft"] = getutf8(0xf0030);
accents["braceright"] = getutf8(0xf0031); accents["braceright"] = getutf8(0xf0031);
accents["lyxtilde"] = getutf8(0xf0032);
accents["sim"] = getutf8(0xf0032);
accents["lyxdollar"] = getutf8(0xf0033);
accents["backslash lyx"] = getutf8(0xf0010); // Used logos inserted with starting \backslash accents["backslash lyx"] = getutf8(0xf0010); // Used logos inserted with starting \backslash
accents["backslash LyX"] = getutf8(0xf0010); accents["backslash LyX"] = getutf8(0xf0010);
accents["backslash tex"] = getutf8(0xf0011); accents["backslash tex"] = getutf8(0xf0011);
@ -2180,6 +2249,27 @@ int Intervall::findclosing(int start, int end, char up = '{', char down = '}', i
return end; return end;
} }
void Intervall::removeInvalidClosings(void)
{
// this can happen, if there are deleted parts
int skip = 0;
int depth = 0;
for (unsigned i = 0; i < par.size(); i += 1 + skip) {
char c = par[i];
skip = 0;
if (c == '\\') skip = 1;
else if (c == '{')
depth++;
else if (c == '}') {
if (depth == 0) {
addIntervall(i, i+1);
LYXERR(Debug::FINDVERBOSE, "removed invalid closing '}' at " << i);
}
else
--depth;
}
}
}
class MathInfo { class MathInfo {
class MathEntry { class MathEntry {
public: public:
@ -2267,6 +2357,7 @@ void LatexInfo::buildEntries(bool isPatternString)
static bool removeMathHull = false; static bool removeMathHull = false;
interval_.removeAccents(); interval_.removeAccents();
interval_.removeInvalidClosings();
for (sregex_iterator itmath(interval_.par.begin(), interval_.par.end(), rmath), end; itmath != end; ++itmath) { for (sregex_iterator itmath(interval_.par.begin(), interval_.par.end(), rmath), end; itmath != end; ++itmath) {
submath = *itmath; submath = *itmath;
@ -2725,9 +2816,14 @@ void LatexInfo::buildKeys(bool isPatternString)
// handle like standard keys with 1 parameter. // handle like standard keys with 1 parameter.
makeKey("url|href|vref|thanks", KeyInfo(KeyInfo::isStandard, 1, false), isPatternString); makeKey("url|href|vref|thanks", KeyInfo(KeyInfo::isStandard, 1, false), isPatternString);
if (ignoreFormats.getDeleted()) {
// Ignore deleted text // Ignore deleted text
makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 3, false), isPatternString); makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 3, false), isPatternString);
}
else {
// but preserve added text // but preserve added text
makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString);
}
makeKey("lyxadded", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString); makeKey("lyxadded", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString);
// Macros to remove, but let the parameter survive // Macros to remove, but let the parameter survive
@ -2750,9 +2846,10 @@ void LatexInfo::buildKeys(bool isPatternString)
makeKey("triangleuppar|triangledownpar|droppar", KeyInfo(KeyInfo::isStandard, 1, true), isPatternString); makeKey("triangleuppar|triangledownpar|droppar", KeyInfo(KeyInfo::isStandard, 1, true), isPatternString);
makeKey("triangleleftpar|shapepar|dropuppar", KeyInfo(KeyInfo::isStandard, 1, true), isPatternString); makeKey("triangleleftpar|shapepar|dropuppar", KeyInfo(KeyInfo::isStandard, 1, true), isPatternString);
makeKey("hphantom|vphantom|note|footnote|shortcut|include|includegraphics", KeyInfo(KeyInfo::isStandard, 1, true), isPatternString); makeKey("hphantom|vphantom|note|footnote|shortcut|include|includegraphics", KeyInfo(KeyInfo::isStandard, 1, true), isPatternString);
makeKey("textgreek|textcyrillic", KeyInfo(KeyInfo::isStandard, 1, true), false);
makeKey("parbox", KeyInfo(KeyInfo::doRemove, 1, true), isPatternString); makeKey("parbox", KeyInfo(KeyInfo::doRemove, 1, true), isPatternString);
// like ('tiny{}' or '\tiny ' ... ) // like ('tiny{}' or '\tiny ' ... )
makeKey("footnotesize|tiny|scriptsize|small|large|Large|LARGE|huge|Huge", KeyInfo(KeyInfo::isSize, 0, false), isPatternString); makeKey("footnotesize|tiny|scriptsize|small|large|Large|LARGE|huge|Huge", KeyInfo(KeyInfo::isSize, 0, ignoreFormats.getSize()), isPatternString);
// Survives, like known character // Survives, like known character
// makeKey("lyx|LyX|latex|LaTeX|latexe|LaTeXe|tex|TeX", KeyInfo(KeyInfo::isChar, 0, false), isPatternString); // makeKey("lyx|LyX|latex|LaTeX|latexe|LaTeXe|tex|TeX", KeyInfo(KeyInfo::isChar, 0, false), isPatternString);
@ -2809,6 +2906,8 @@ string Intervall::show(int lastpos)
int idx = 0; /* int intervalls */ int idx = 0; /* int intervalls */
string s; string s;
int i = 0; int i = 0;
if ((unsigned) lastpos > par.size())
lastpos = par.size();
for (idx = 0; idx <= ignoreidx; idx++) { for (idx = 0; idx <= ignoreidx; idx++) {
while (i < lastpos) { while (i < lastpos) {
int printsize; int printsize;
@ -3355,10 +3454,12 @@ static string correctlanguagesetting(string par, bool isPatternString, bool with
while ((parlen > 0) && (par[parlen-1] == '\n')) { while ((parlen > 0) && (par[parlen-1] == '\n')) {
parlen--; parlen--;
} }
#if 0
if (isPatternString && (parlen > 0) && (par[parlen-1] == '~')) { if (isPatternString && (parlen > 0) && (par[parlen-1] == '~')) {
// Happens to be there in case of description or labeling environment // Happens to be there in case of description or labeling environment
parlen--; parlen--;
} }
#endif
string result; string result;
if (withformat) { if (withformat) {
// Split the latex input into pieces which // Split the latex input into pieces which
@ -3688,12 +3789,15 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, int len, bool at_be
if (lng != str.size()) { if (lng != str.size()) {
str = str.substr(0, lng); str = str.substr(0, lng);
} }
// Replace occurences of '~' to ' '
static std::regex specialChars { R"(~)" };
str = std::regex_replace(str, specialChars, R"( )" );
} }
if (str.empty()) { if (str.empty()) {
mres.match_len = -1; mres.match_len = -1;
return mres; return mres;
} }
LYXERR(Debug::FINDVERBOSE, "After normalization: Matching against:\n'" << str << "'"); LYXERR(Debug::FINDVERBOSE|Debug::FIND, "After normalization: Matching against:\n'" << str << "'");
LASSERT(use_regexp, /**/); LASSERT(use_regexp, /**/);
{ {
@ -3753,7 +3857,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, int len, bool at_be
int matchend = match.capturedEnd(0); int matchend = match.capturedEnd(0);
size_t strsize = qstr.size(); size_t strsize = qstr.size();
if (!opt.ignoreformat) { if (!opt.ignoreformat) {
while (mres.match_len > 0) { while (mres.match_len > 1) {
QChar c = qstr.at(matchend - 1); QChar c = qstr.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) { if ((c == '\n') || (c == '}') || (c == '{')) {
mres.match_len--; mres.match_len--;
@ -3782,7 +3886,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, int len, bool at_be
int matchend = strend; int matchend = strend;
size_t strsize = str.size(); size_t strsize = str.size();
if (!opt.ignoreformat) { if (!opt.ignoreformat) {
while (mres.match_len > 0) { while (mres.match_len > 1) {
char c = str.at(matchend - 1); char c = str.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) { if ((c == '\n') || (c == '}') || (c == '{')) {
mres.match_len--; mres.match_len--;
@ -3872,8 +3976,79 @@ static bool simple_replace(string &t, string from, string to)
} }
#endif #endif
string MatchStringAdv::normalize(docstring const & s, bool ignore_format) const #if 1
static string convertLF2Space(docstring const &s, bool ignore_format)
{ {
// Using original docstring to handle '\n'
if (s.size() == 0) return "";
stringstream t;
size_t pos;
size_t start = 0;
size_t end = s.size() - 1;
if (!ignore_format) {
while (s[start] == '\n' && start <= end)
start++;
while (end >= start && s[end] == '\n')
end--;
if (start >= end + 1)
return "";
}
do {
bool dospace = true;
int skip = -1;
pos = s.find('\n', start);
if (pos >= end) {
t << lyx::to_utf8(s.substr(start, end + 1 - start));
break;
}
if (!ignore_format) {
if ((pos > start + 1) &&
s[pos-1] == '\\' &&
s[pos-2] == '\\') {
skip = 2;
if ((pos > start + 2) &&
(s[pos+1] == '~' || isSpace(s[pos+1]) ||
s[pos-3] == '~' || isSpace(s[pos-3]))) {
// discard '\n'
dospace = false;
}
}
else if (pos > start) {
if (s[pos-1] == '%') {
skip = 1;
while ((pos > start+skip) && (s[pos-1-skip] == '%'))
skip++;
if ((pos > start+skip) &&
(s[pos+1] == '~' || isSpace(s[pos+1]) ||
s[pos-1-skip] == '~' || isSpace(s[pos-1-skip]))) {
// discard '%%%%%\n'
dospace = false;
}
}
else if (!isAlnumASCII(s[pos+1]) || !isAlnumASCII(s[pos-1])) {
dospace = false;
skip = 0; // remove the '\n' only
}
}
}
else {
dospace = true;
skip = 0;
}
t << lyx::to_utf8(s.substr(start, pos-skip-start));
if (dospace)
t << ' ';
start = pos+1;
} while (start <= end);
return(t.str());
}
#else
static string convertLF2Space(docstring const & s, bool ignore_format)
{
// Using utf8-converted string to handle '\n'
string t; string t;
t = lyx::to_utf8(s); t = lyx::to_utf8(s);
// Remove \n at begin // Remove \n at begin
@ -3888,10 +4063,11 @@ string MatchStringAdv::normalize(docstring const & s, bool ignore_format) const
while ((pos = t.find("\n")) != string::npos) { while ((pos = t.find("\n")) != string::npos) {
if (pos > 1 && t[pos-1] == '\\' && t[pos-2] == '\\' ) { if (pos > 1 && t[pos-1] == '\\' && t[pos-2] == '\\' ) {
// Handle '\\\n' // Handle '\\\n'
if (isAlnumASCII(t[pos+1])) { if (isPrintableNonspace(t[pos+1]) && ((pos < 3) || isPrintableNonspace(t[pos-3]))) {
t.replace(pos-2, 3, " "); t.replace(pos-2, 3, " ");
} }
else { else {
// Already a space there
t.replace(pos-2, 3, ""); t.replace(pos-2, 3, "");
} }
} }
@ -3915,6 +4091,17 @@ string MatchStringAdv::normalize(docstring const & s, bool ignore_format) const
} }
} }
} }
return(t);
}
#endif
string MatchStringAdv::normalize(docstring const & s, bool ignore_format) const
{
string t = convertLF2Space(s, ignore_format);
// The following replaces are not appropriate in non-format-search mode
if (!ignore_format) {
// Remove stale empty \emph{}, \textbf{} and similar blocks from latexify // Remove stale empty \emph{}, \textbf{} and similar blocks from latexify
// Kornel: Added textsl, textsf, textit, texttt and noun // Kornel: Added textsl, textsf, textit, texttt and noun
// + allow to seach for colored text too // + allow to seach for colored text too
@ -3922,13 +4109,12 @@ string MatchStringAdv::normalize(docstring const & s, bool ignore_format) const
while (regex_replace(t, t, "\\\\(emph|noun|text(bf|sl|sf|it|tt)|(u|uu)line|(s|x)out|uwave)(\\{(\\{\\})?\\})+", "")) while (regex_replace(t, t, "\\\\(emph|noun|text(bf|sl|sf|it|tt)|(u|uu)line|(s|x)out|uwave)(\\{(\\{\\})?\\})+", ""))
LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\emph{}, \\textbf{} macros from: " << t); LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\emph{}, \\textbf{} macros from: " << t);
while (regex_replace(t, t, "\\\\((sub)?(((sub)?section)|paragraph)|part)\\*?(\\{(\\{\\})?\\})+", "")) while (regex_replace(t, t, "\\\\((sub)?(((sub)?section)|paragraph)|part)\\*?(\\{(\\{\\})?\\})+", ""))
LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\emph{}, \\textbf{} macros from: " << t); LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\section{}, \\part{}, \\paragraph{} macros from: " << t);
while (regex_replace(t, t, "\\\\(foreignlanguage|textcolor|item)\\{[a-z]+\\}(\\{(\\{\\})?\\})+", "")); while (regex_replace(t, t, "\\\\(foreignlanguage|textcolor|item)\\{[a-z]+\\}(\\{(\\{\\})?\\})+", ""));
}
return t; return t;
} }
docstring stringifyFromCursor(DocIterator const & cur, int len) docstring stringifyFromCursor(DocIterator const & cur, int len)
{ {
LYXERR(Debug::FINDVERBOSE, "Stringifying with len=" << len << " from cursor at pos: " << cur); LYXERR(Debug::FINDVERBOSE, "Stringifying with len=" << len << " from cursor at pos: " << cur);
@ -3941,27 +4127,24 @@ docstring stringifyFromCursor(DocIterator const & cur, int len)
// OutputParams runparams(&cur.buffer()->params().encoding()); // OutputParams runparams(&cur.buffer()->params().encoding());
OutputParams runparams(encodings.fromLyXName("utf8")); OutputParams runparams(encodings.fromLyXName("utf8"));
runparams.nice = true; runparams.nice = true;
runparams.flavor = Flavor::XeTeX; setFindParams(runparams);
runparams.linelen = 10000; //lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
int option = AS_STR_INSETS | AS_STR_PLAINTEXT; int option = AS_STR_INSETS | AS_STR_PLAINTEXT;
if (ignoreFormats.getDeleted()) { if (ignoreFormats.getDeleted()) {
option |= AS_STR_SKIPDELETE; option |= AS_STR_SKIPDELETE;
runparams.for_search = OutputParams::SearchWithoutDeleted; runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
} }
else { else {
runparams.for_search = OutputParams::SearchWithDeleted; runparams.find_set_feature(OutputParams::SearchWithDeleted);
} }
if (ignoreFormats.getNonContent()) { if (ignoreFormats.getNonContent()) {
runparams.for_search |= OutputParams::SearchNonOutput; runparams.find_add_feature(OutputParams::SearchNonOutput);
} }
LYXERR(Debug::FINDVERBOSE, "Stringifying with cur: " LYXERR(Debug::FINDVERBOSE, "Stringifying with cur: "
<< cur << ", from pos: " << cur.pos() << ", end: " << end); << cur << ", from pos: " << cur.pos() << ", end: " << end);
docstring res = from_utf8(latexNamesToUtf8(par.asString(cur.pos(), end, docstring res = from_utf8(latexNamesToUtf8(par.asString(cur.pos(), end,
option, option,
&runparams))); &runparams), false));
LYXERR(Debug::FIND, "Stringified text from pos(" << cur.pos() << ") len(" << len << "): " << res); LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Stringified text from pos(" << cur.pos() << ") len(" << len << "): " << res);
return res; return res;
} else if (cur.inMathed()) { } else if (cur.inMathed()) {
CursorSlice cs = cur.top(); CursorSlice cs = cur.top();
@ -3973,7 +4156,7 @@ docstring stringifyFromCursor(DocIterator const & cur, int len)
MathData md2; MathData md2;
for (MathData::const_iterator it = md.begin() + cs.pos(); it != it_end; ++it) for (MathData::const_iterator it = md.begin() + cs.pos(); it != it_end; ++it)
md2.push_back(*it); md2.push_back(*it);
docstring res = from_utf8(latexNamesToUtf8(asString(md2))); docstring res = from_utf8(latexNamesToUtf8(asString(md2), false));
LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Stringified math from pos(" << cur.pos() << ") len(" << len << "): " << res); LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Stringified math from pos(" << cur.pos() << ") len(" << len << "): " << res);
return res; return res;
} }
@ -3999,18 +4182,15 @@ docstring latexifyFromCursor(DocIterator const & cur, int len)
//OutputParams runparams(&buf.params().encoding()); //OutputParams runparams(&buf.params().encoding());
OutputParams runparams(encodings.fromLyXName("utf8")); OutputParams runparams(encodings.fromLyXName("utf8"));
runparams.nice = false; runparams.nice = false;
runparams.flavor = Flavor::XeTeX; setFindParams(runparams);
runparams.linelen = 8000; //lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
if (ignoreFormats.getDeleted()) { if (ignoreFormats.getDeleted()) {
runparams.for_search = OutputParams::SearchWithoutDeleted; runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
} }
else { else {
runparams.for_search = OutputParams::SearchWithDeleted; runparams.find_set_feature(OutputParams::SearchWithDeleted);
} }
if (ignoreFormats.getNonContent()) { if (ignoreFormats.getNonContent()) {
runparams.for_search |= OutputParams::SearchNonOutput; runparams.find_add_feature(OutputParams::SearchNonOutput);
} }
if (cur.inTexted()) { if (cur.inTexted()) {
@ -4020,7 +4200,7 @@ docstring latexifyFromCursor(DocIterator const & cur, int len)
endpos = cur.pos() + len; endpos = cur.pos() + len;
TeXOnePar(buf, *cur.innerText(), cur.pit(), os, runparams, TeXOnePar(buf, *cur.innerText(), cur.pit(), os, runparams,
string(), cur.pos(), endpos, true); string(), cur.pos(), endpos, true);
LYXERR(Debug::FIND, "Latexified text from pos(" << cur.pos() << ") len(" << len << "): " << ods.str()); LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Latexified text from pos(" << cur.pos() << ") len(" << len << "): " << ods.str());
return(ods.str()); return(ods.str());
} else if (cur.inMathed()) { } else if (cur.inMathed()) {
// Retrieve the math environment type, and add '$' or '$[' or others (\begin{equation}) accordingly // Retrieve the math environment type, and add '$' or '$[' or others (\begin{equation}) accordingly
@ -4609,9 +4789,7 @@ static int findAdvReplace(BufferView * bv, FindAndReplaceOptions const & opt, Ma
// OutputParams runparams(&repl_buffer.params().encoding()); // OutputParams runparams(&repl_buffer.params().encoding());
OutputParams runparams(encodings.fromLyXName("utf8")); OutputParams runparams(encodings.fromLyXName("utf8"));
runparams.nice = false; runparams.nice = false;
runparams.flavor = Flavor::XeTeX; setFindParams(runparams);
runparams.linelen = 8000; //lyxrc.plaintext_linelen;
runparams.dryrun = true;
TeXOnePar(repl_buffer, repl_buffer.text(), 0, os, runparams, string(), -1, -1, true); TeXOnePar(repl_buffer, repl_buffer.text(), 0, os, runparams, string(), -1, -1, true);
//repl_buffer.getSourceCode(ods, 0, repl_buffer.paragraphs().size(), false); //repl_buffer.getSourceCode(ods, 0, repl_buffer.paragraphs().size(), false);
docstring repl_latex = ods.str(); docstring repl_latex = ods.str();

View File

@ -2359,10 +2359,10 @@ int InsetMathHull::plaintext(odocstringstream & os,
Encoding const * const enc = encodings.fromLyXName("utf8"); Encoding const * const enc = encodings.fromLyXName("utf8");
TeXMathStream::OutputType ot; TeXMathStream::OutputType ot;
if (op.for_search == OutputParams::NoSearch) if (op.find_effective())
ot = TeXMathStream::wsDefault;
else
ot = TeXMathStream::wsSearchAdv; ot = TeXMathStream::wsSearchAdv;
else
ot = TeXMathStream::wsDefault;
// Fix Bug #6139 // Fix Bug #6139
if (type_ == hullRegexp) { if (type_ == hullRegexp) {
TeXMathStream wi(ots, false, true, ot, enc); TeXMathStream wi(ots, false, true, ot, enc);

View File

@ -359,7 +359,7 @@ void InsetMathNest::normalize(NormalStream & os) const
void InsetMathNest::latex(otexstream & os, OutputParams const & runparams) const void InsetMathNest::latex(otexstream & os, OutputParams const & runparams) const
{ {
TeXMathStream::OutputType ot; TeXMathStream::OutputType ot;
if (runparams.for_search != OutputParams::NoSearch) if (runparams.find_effective())
ot = TeXMathStream::wsSearchAdv; ot = TeXMathStream::wsSearchAdv;
else if (runparams.dryrun) else if (runparams.dryrun)
ot = TeXMathStream::wsDryrun; ot = TeXMathStream::wsDryrun;

View File

@ -462,10 +462,10 @@ void TeXEnvironment(Buffer const & buf, Text const & text,
// Do not output empty environments if the whole paragraph has // Do not output empty environments if the whole paragraph has
// been deleted with ct and changes are not output. // been deleted with ct and changes are not output.
bool output_changes; bool output_changes;
if (runparams.for_search == OutputParams::NoSearch) if (!runparams.find_effective())
output_changes = buf.params().output_changes; output_changes = buf.params().output_changes;
else else
output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0); output_changes = runparams.find_with_deleted();
if (size_t(pit + 1) < paragraphs.size()) { if (size_t(pit + 1) < paragraphs.size()) {
ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1); ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1);
Paragraph const & cpar = paragraphs.at(pit); Paragraph const & cpar = paragraphs.at(pit);
@ -578,7 +578,7 @@ void getArgInsets(otexstream & os, OutputParams const & runparams, Layout::LaTeX
} }
} }
} }
if ((runparams.for_search != OutputParams::NoSearch) && argnr > 1) { if (runparams.find_effective() && argnr > 1) {
// Mark end of arguments for findadv() only // Mark end of arguments for findadv() only
os << "\\endarguments{}"; os << "\\endarguments{}";
} }
@ -746,7 +746,7 @@ void parStartCommand(Paragraph const & par, otexstream & os,
break; break;
case LATEX_ITEM_ENVIRONMENT: case LATEX_ITEM_ENVIRONMENT:
case LATEX_LIST_ENVIRONMENT: case LATEX_LIST_ENVIRONMENT:
if (runparams.for_search != OutputParams::NoSearch) { if (runparams.find_effective()) {
os << "\\" + style.itemcommand() << "{" << style.latexname() << "}"; os << "\\" + style.itemcommand() << "{" << style.latexname() << "}";
} }
else { else {
@ -758,7 +758,7 @@ void parStartCommand(Paragraph const & par, otexstream & os,
} }
break; break;
case LATEX_ENVIRONMENT: case LATEX_ENVIRONMENT:
if (runparams.for_search != OutputParams::NoSearch) { if (runparams.find_effective()) {
os << "\\latexenvironment{" << style.latexname() << "}{"; os << "\\latexenvironment{" << style.latexname() << "}{";
} }
break; break;
@ -796,7 +796,7 @@ void TeXOnePar(Buffer const & buf,
// Do not output empty commands if the whole paragraph has // Do not output empty commands if the whole paragraph has
// been deleted with ct and changes are not output. // been deleted with ct and changes are not output.
if (((runparams_in.for_search & OutputParams::SearchWithDeleted) == 0) && style.latextype != LATEX_ENVIRONMENT if (!runparams_in.find_with_deleted() && style.latextype != LATEX_ENVIRONMENT
&& !par.empty() && par.isDeleted(0, par.size()) && !bparams.output_changes) && !par.empty() && par.isDeleted(0, par.size()) && !bparams.output_changes)
return; return;
@ -936,7 +936,7 @@ void TeXOnePar(Buffer const & buf,
bool const have_prior_nptpar = bool const have_prior_nptpar =
prior_nontitle_par && !prior_nontitle_par->isPassThru(); prior_nontitle_par && !prior_nontitle_par->isPassThru();
Language const * const prev_language = Language const * const prev_language =
runparams_in.for_search != OutputParams::NoSearch runparams_in.find_effective()
? languages.getLanguage("ignore") ? languages.getLanguage("ignore")
: (have_prior_nptpar) : (have_prior_nptpar)
? (use_prev_env_language ? (use_prev_env_language
@ -988,7 +988,7 @@ void TeXOnePar(Buffer const & buf,
&& !(have_prior_nptpar && !(have_prior_nptpar
&& (prev_language->rightToLeft() != par_language->rightToLeft())); && (prev_language->rightToLeft() != par_language->rightToLeft()));
bool const localswitch = bool const localswitch =
(runparams_in.for_search != OutputParams::NoSearch (runparams_in.find_effective()
|| text.inset().forceLocalFontSwitch() || text.inset().forceLocalFontSwitch()
|| (using_begin_end && text.inset().forcePlainLayout()) || (using_begin_end && text.inset().forcePlainLayout())
|| in_polyglossia_rtl_env) || in_polyglossia_rtl_env)
@ -1003,7 +1003,7 @@ void TeXOnePar(Buffer const & buf,
bool const localswitch_needed = localswitch && par_lang != outer_lang; bool const localswitch_needed = localswitch && par_lang != outer_lang;
// localswitches need to be closed and reopened at each par // localswitches need to be closed and reopened at each par
if ((runparams_in.for_search != OutputParams::NoSearch) || ((par_lang != prev_lang || localswitch_needed) if (runparams_in.find_effective() || ((par_lang != prev_lang || localswitch_needed)
// check if we already put language command in TeXEnvironment() // check if we already put language command in TeXEnvironment()
&& !(style.isEnvironment() && !(style.isEnvironment()
&& (pit == 0 || (priorpar->layout() != par.layout() && (pit == 0 || (priorpar->layout() != par.layout()
@ -1071,7 +1071,7 @@ void TeXOnePar(Buffer const & buf,
// With CJK, the CJK tag has to be closed first (see below) // With CJK, the CJK tag has to be closed first (see below)
if ((runparams.encoding->package() != Encoding::CJK if ((runparams.encoding->package() != Encoding::CJK
|| bparams.useNonTeXFonts || bparams.useNonTeXFonts
|| (runparams.for_search != OutputParams::NoSearch)) || runparams.find_effective())
&& (par_lang != openLanguageName(state) || localswitch || intitle_command) && (par_lang != openLanguageName(state) || localswitch || intitle_command)
&& !par_lang.empty()) { && !par_lang.empty()) {
string bc = use_polyglossia ? string bc = use_polyglossia ?
@ -1312,7 +1312,7 @@ void TeXOnePar(Buffer const & buf,
// when the paragraph uses CJK, the language has to be closed earlier // when the paragraph uses CJK, the language has to be closed earlier
if ((font.language()->encoding()->package() != Encoding::CJK) if ((font.language()->encoding()->package() != Encoding::CJK)
|| bparams.useNonTeXFonts || bparams.useNonTeXFonts
|| (runparams_in.for_search != OutputParams::NoSearch)) { || runparams_in.find_effective()) {
if (lang_end_command.empty()) { if (lang_end_command.empty()) {
// If this is a child, we should restore the // If this is a child, we should restore the
// master language after the last paragraph. // master language after the last paragraph.
@ -1708,10 +1708,10 @@ void latexParagraphs(Buffer const & buf,
// Do not output empty environments if the whole paragraph has // Do not output empty environments if the whole paragraph has
// been deleted with ct and changes are not output. // been deleted with ct and changes are not output.
bool output_changes; bool output_changes;
if (runparams.for_search == OutputParams::NoSearch) if (!runparams.find_effective())
output_changes = bparams.output_changes; output_changes = bparams.output_changes;
else else
output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0); output_changes = runparams.find_with_deleted();
bool const lastpar = size_t(pit + 1) >= paragraphs.size(); bool const lastpar = size_t(pit + 1) >= paragraphs.size();
if (!lastpar) { if (!lastpar) {
ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1); ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1);
@ -1854,7 +1854,7 @@ pair<bool, int> switchEncoding(odocstream & os, BufferParams const & bparams,
|| oldEnc.package() == Encoding::japanese || oldEnc.package() == Encoding::japanese
|| oldEnc.package() == Encoding::none || oldEnc.package() == Encoding::none
|| newEnc.package() == Encoding::none || newEnc.package() == Encoding::none
|| (runparams.for_search != OutputParams::NoSearch)) || runparams.find_effective())
return make_pair(false, 0); return make_pair(false, 0);
// FIXME We ignore encoding switches from/to encodings that do // FIXME We ignore encoding switches from/to encodings that do
// neither support the inputenc package nor the CJK package here. // neither support the inputenc package nor the CJK package here.