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/
\lyxformat 574
\lyxformat 609
\begin_document
\begin_header
\save_transient_properties true
\origin unavailable
\textclass article
\use_default_options true
\maintain_unincluded_children false
\maintain_unincluded_children no
\language polish
\language_package default
\inputencoding auto-legacy
@ -18,7 +18,9 @@
\font_default_family default
\use_non_tex_fonts 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_tt_scale 100 100
\use_microtype false
@ -55,6 +57,7 @@
\justification true
\use_refstyle 1
\use_minted 0
\use_lineno 0
\index Index
\shortcut idx
\color #008000
@ -73,9 +76,13 @@
\tablestyle default
\tracking_changes false
\output_changes false
\change_bars false
\postpone_fragile_content false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\docbook_table_output 0
\docbook_mathml_prefix 1
\end_header
\begin_body
@ -127,7 +134,7 @@ lll which becomes
\begin_inset Quotes prd
\end_inset
with pdfTeX and a missing symbol with LuaTeX..
.
\end_layout
\end_body

View File

@ -231,10 +231,10 @@ AC_DEFUN([QT_DO_IT_ALL],
CPPFLAGS="$save_CPPFLAGS $QT_CORE_INCLUDES"
AC_CHECK_HEADER(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,
[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])
if test x$USE_QT6 = xyes ; then
dnl FIXME: Check whether defining QPA_XCB makes sense with Qt6

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -10,7 +10,7 @@ KK: a WYSIWYG LaTeX editor.\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: LyX\[Return]
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: \[Delete]
# Uncheck ignore format
#KK: \At\Ai\Ah
#KK: \At\Ar\Ak\Ah
#KK: \CF
KK: LaTeX\[Return]
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: \CF
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Amd
KK: x^2\[Return]
@ -33,7 +33,7 @@ KK: \[Escape]\C\[Home]
CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \CF
KK: \[Delete]
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Amd
KK: x^2\[Return]

View File

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

View File

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

View File

@ -17,7 +17,7 @@ CP: Key (queried) [action=buffer-begin][Ctrl+Home]
KK: \CF
KK: \[Delete]
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
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

View File

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

View File

@ -5,7 +5,7 @@ PrepareShortcuts
#
Lang sk_SK.utf8
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
KK: \Cm
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
KK: \[Escape]\C\[Home]
KK: \CF
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \[Return]
CP: Identified Features

View File

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

View File

@ -9,7 +9,7 @@ KK: for a WYSIWYG LaTeX editor.\C\[Home]
KK: \Cs
KK: \CF
# Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Axspecialchar-insert lyx\[Return]\[Tab]
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
KK: \CF
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\(\[Return]
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
KK: \CF
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\[\[Return]
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
KK: \CF
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\\\\[Return]
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
KK: \CF
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]%\[Return]
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
KK: \CF
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\^\[Return]
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
KK: \CF
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\{\[Return]
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
KK: \CF
# Uncheck ignore format
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \C\[F20]\\}\[Return]
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: \CF
# Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Ce
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]+
KK: \CF
# Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Ce
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]+
KK: \CF
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Ce
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]+
KK: \CF
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
KK: \Ce
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: \CF
# Uncheck ignore format (depends on IT language)
KK: \At\Ai\Ah
KK: \At\Ar\Ak\Ah
KK: \CF
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

View File

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

View File

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

View File

@ -165,6 +165,7 @@ logicalmkup
\author 5863344 "Enrico Forestieri"
\author 244031559 "Yuriy"
\author 630872221 "Jean-Pierre Chrétien" jeanpierre.chretien@free.fr
\author 1549938239 "Kornel Benko"
\author 1675569489 "Stephan Witt"
\end_header
@ -8973,14 +8974,12 @@ Verbatim
\end_layout
\begin_layout Verbatim
This is Verbatim.
\end_layout
\begin_layout Verbatim
\noindent
\align block
The following 2 lines are empty:
\end_layout
@ -8993,7 +8992,6 @@ The following 2 lines are empty:
\end_layout
\begin_layout Verbatim
Almost everything is allowed in Verbatim:"%&$§#~'`
\backslash
}][{|
@ -9017,7 +9015,6 @@ Verbatim
\end_layout
\begin_layout Verbatim*
This is Verbatim*.
\end_layout
@ -38775,7 +38772,7 @@ R
.
\end_layout
\begin_layout Subsection
\begin_layout Subsubsection
Advanced usage
\end_layout
@ -38863,12 +38860,25 @@ Find
\end_layout
\begin_layout Enumerate
Searching for all text with a given style: for example, after unchecking
the
Searching for all text with a given style: for example, after
\change_deleted 1549938239 1651390777
un
\change_unchanged
checking the
\change_inserted 1549938239 1651390710
\family sans
'Adhere to search string formatting of'
\change_deleted 1549938239 1651390724
Ignore format
\change_unchanged
\family default
option from the
\change_inserted 1549938239 1651390961
and the 'Select all'
\change_unchanged
option from the
\family sans
Settings
\family default
@ -38888,8 +38898,109 @@ Settings
regular expression in a bullet or enumerated list or a section heading,
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
\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
Finally, references to (sub)expressions in regexp may be used as usual:
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
\end_inset
\change_inserted 1549938239 1651393222
\backslash
b(
\backslash
w+)
\backslash
s
\backslash
1
\backslash
b
\change_deleted 1549938239 1651393089
[[:space:]]([[:alpha:]]+)[[:space:]]
\backslash
1[[:space:]]
\change_unchanged
\begin_inset Newline newline
\end_inset
@ -38919,7 +39046,11 @@ in order to find word repetitions, if there are any.
\end_layout
\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
\begin_layout Standard

View File

@ -414,7 +414,7 @@ Menuset
Menu "context-edit-regexp"
Item "Anything|A" "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 "User Defined|U" "regexp-mode"
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
# 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
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_EGREP_CPP(yes,[
AC_CACHE_CHECK([for EILSEQ], [ac_cv_decl_EILSEQ], [
AC_EGREP_CPP([yes],[
#include <errno.h>
#ifdef EILSEQ
yes
#endif
], have_eilseq=1)
], [have_eilseq=1])
if test -n "$have_eilseq"; then
dnl EILSEQ exists in <errno.h>. Don't need to define EILSEQ ourselves.
ac_cv_decl_EILSEQ=yes
else
AC_EGREP_CPP(yes,[
AC_EGREP_CPP([yes],[
#include <errno.h>
#if HAVE_WCHAR_H
#include <wchar.h>
@ -37,11 +37,11 @@ yes
#ifdef EILSEQ
yes
#endif
], have_eilseq=1)
], [have_eilseq=1])
if test -n "$have_eilseq"; then
dnl EILSEQ exists in some other system header.
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>
#if HAVE_WCHAR_H
#include <wchar.h>
@ -62,6 +62,6 @@ yes
AC_DEFINE_UNQUOTED([EILSEQ], [$ac_cv_decl_EILSEQ],
[Define as good substitute value for EILSEQ.])
EILSEQ="$ac_cv_decl_EILSEQ"
AC_SUBST(EILSEQ)
AC_SUBST([EILSEQ])
fi
])

BIN
po/de.gmo

Binary file not shown.

224
po/de.po
View File

@ -94,15 +94,15 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX 2.4git\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
"POT-Creation-Date: 2022-04-24 16:54+0200\n"
"PO-Revision-Date: 2022-04-24 17:05+0200\n"
"POT-Creation-Date: 2022-05-10 13:31+0200\n"
"PO-Revision-Date: 2022-05-10 13:47+0200\n"
"Last-Translator: Jürgen Spitzmüller <spitz@lyx.org>\n"
"Language-Team: Deutsch <lyx-docs@lists.lyx.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\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"
#: src/frontends/qt/ui/AboutUi.ui:27
@ -1037,6 +1037,7 @@ msgid "Font Properties"
msgstr "Schrifteigenschaften"
#: src/frontends/qt/ui/CharacterUi.ui:36 src/frontends/qt/ui/CharacterUi.ui:55
#: src/frontends/qt/ui/FindAndReplaceUi.ui:475
msgid "Font family"
msgstr "Schriftfamilie"
@ -1045,6 +1046,7 @@ msgid "Fa&mily:"
msgstr "&Familie:"
#: src/frontends/qt/ui/CharacterUi.ui:62 src/frontends/qt/ui/CharacterUi.ui:81
#: src/frontends/qt/ui/FindAndReplaceUi.ui:447
msgid "Font series"
msgstr "Strichstärke"
@ -1053,6 +1055,7 @@ msgid "&Series:"
msgstr "S&trichstärke:"
#: src/frontends/qt/ui/CharacterUi.ui:88 src/frontends/qt/ui/CharacterUi.ui:107
#: src/frontends/qt/ui/FindAndReplaceUi.ui:510
msgid "Font shape"
msgstr "Schriftschnitt"
@ -1062,11 +1065,13 @@ msgstr "Sch&nitt:"
#: src/frontends/qt/ui/CharacterUi.ui:114
#: src/frontends/qt/ui/CharacterUi.ui:133
#: src/frontends/qt/ui/FindAndReplaceUi.ui:524
msgid "Font size"
msgstr "Schriftgrad"
#: src/frontends/qt/ui/CharacterUi.ui:159
#: src/frontends/qt/ui/CharacterUi.ui:178
#: src/frontends/qt/ui/FindAndReplaceUi.ui:454
msgid "Font color"
msgstr "Schriftfarbe"
@ -1100,12 +1105,14 @@ msgstr "Spracheinstellungen"
msgid "&Language:"
msgstr "S&prache:"
#: src/frontends/qt/ui/CharacterUi.ui:281 src/frontends/qt/ui/ListingsUi.ui:334
#: lib/layouts/bicaption.module:16 lib/layouts/europasscv.layout:440
#: lib/layouts/europasscv.layout:475 lib/layouts/europasscv.layout:482
#: lib/layouts/europecv.layout:321 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
#: src/frontends/qt/ui/CharacterUi.ui:281
#: src/frontends/qt/ui/FindAndReplaceUi.ui:482
#: src/frontends/qt/ui/ListingsUi.ui:334 lib/layouts/bicaption.module:16
#: lib/layouts/europasscv.layout:440 lib/layouts/europasscv.layout:475
#: lib/layouts/europasscv.layout:482 lib/layouts/europecv.layout:321
#: 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"
msgstr "Sprache"
@ -1713,25 +1720,25 @@ msgid "Case &sensitive"
msgstr "&Groß-/Kleinschreibung beachten"
#: 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)"
msgstr ""
"Suche nächsten Treffer (Eingabetaste; rückwärts: Umschalt+Eingabetaste)"
#: 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 &>"
msgstr "Suchen &>"
#: 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)"
msgstr ""
"Ersetze und suche nächsten Treffer (Eingabetaste; rückwärts: Umschalt"
"+Eingabetaste)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:224
#: src/frontends/qt/FindAndReplace.cpp:649
#: src/frontends/qt/FindAndReplace.cpp:718
msgid "Rep&lace >"
msgstr "Erse&tzen >"
@ -1782,31 +1789,19 @@ msgstr "&Geöffnete Dokumente"
msgid "&All manuals"
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
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"
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 ""
"Keep the case of the replacement's first letter as in each matching text "
"first letter"
@ -1814,10 +1809,60 @@ msgstr ""
"Groß-/Kleinschreibung des ersten Buchstabens des gefundenen Textes "
"beibehalten"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:409
#: src/frontends/qt/ui/FindAndReplaceUi.ui:393
msgid "&Preserve first case on replace"
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/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form"
@ -5341,7 +5386,7 @@ msgstr "Ohne Präfix"
msgid "Find previous occurrence (Shift+Enter)"
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"
msgstr "&< Suchen"
@ -28023,7 +28068,7 @@ msgid "greyedout inset text"
msgstr "Grauschrift-Einfügungstext"
#: 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:257
#: src/insets/InsetCommandParams.cpp:508 src/insets/InsetCommandParams.cpp:516
@ -28035,7 +28080,7 @@ msgid "LyX Warning: "
msgstr "LyX-Warnung: "
#: 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/InsetGraphics.cpp:901 src/insets/InsetGraphics.cpp:909
#: src/insets/InsetListings.cpp:300 src/insets/InsetListings.cpp:308
@ -30455,15 +30500,15 @@ msgstr "Zur gespeicherten Version des Dokuments zurückkehren?"
msgid "&Revert"
msgstr "&Wiederherstellen"
#: src/Paragraph.cpp:2152
#: src/Paragraph.cpp:2164
msgid "Senseless with this layout!"
msgstr "Für dieses Format nicht relevant!"
#: src/Paragraph.cpp:2206
#: src/Paragraph.cpp:2218
msgid "Alignment not permitted"
msgstr "Ausrichtung nicht erlaubt"
#: src/Paragraph.cpp:2207
#: src/Paragraph.cpp:2219
msgid ""
"The new layout does not permit the alignment previously used.\n"
"Setting to default."
@ -30568,7 +30613,7 @@ msgstr ", Zeichen: 0x"
msgid ", Boundary: "
msgstr ", Grenze: "
#: src/Text2.cpp:406
#: src/Text2.cpp:407
msgid "No font change defined."
msgstr "Keine Schriftänderung definiert."
@ -30592,36 +30637,36 @@ msgstr "Regexp-Editor-Modus"
msgid "Layout "
msgstr "Format "
#: src/Text3.cpp:1619 src/Text3.cpp:2193
#: src/Text3.cpp:1619 src/Text3.cpp:2203
msgid " not known"
msgstr " unbekannt"
#: src/Text3.cpp:2192
#: src/Text3.cpp:2202
msgid "Table Style "
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"
msgstr "Fehlendes Argument"
#: src/Text3.cpp:2550
#: src/Text3.cpp:2560
msgid "Invalid argument (number exceeds stack size)!"
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)!"
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
msgid "Text properties applied: %1$s"
msgstr "Angewendete Texteigenschaften: %1$s"
#: src/Text3.cpp:2732
#: src/Text3.cpp:2742
msgid "Path to thesaurus directory not set!"
msgstr "Pfad zum Thesaurus-Wörterbuch nicht festlegt!"
#: src/Text3.cpp:2733
#: src/Text3.cpp:2743
msgid ""
"The path to the thesaurus directory has not been specified.\n"
"The thesaurus is not functional.\n"
@ -30633,7 +30678,7 @@ msgstr ""
"Im Benutzerhandbuch, Abschnitt 6.15.11, finden Sie Hinweise,\n"
"um den Thesaurus einzurichten."
#: src/Text3.cpp:2859 src/Text3.cpp:2870
#: src/Text3.cpp:2869 src/Text3.cpp:2880
msgid "Paragraph layout set"
msgstr "Absatzformat festgelegt"
@ -31020,15 +31065,15 @@ msgstr ""
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: 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:701 src/lyxfind.cpp:729
#: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
#: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&Yes"
msgstr "&Ja"
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: 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:701 src/lyxfind.cpp:729
#: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
#: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&No"
msgstr "&Nein"
@ -31237,8 +31282,8 @@ msgstr "Erweiterte Suche läuft (drücken Sie ESC, um abzubrechen) ..."
msgid "Advanced search cancelled by user"
msgstr "Erweiterte Suche durch den Benutzer abgebrochen"
#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:357
#: src/lyxfind.cpp:700 src/lyxfind.cpp:728
#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:364
#: src/lyxfind.cpp:707 src/lyxfind.cpp:735
msgid "Wrap search?"
msgstr "Von vorne suchen?"
@ -31246,24 +31291,24 @@ msgstr "Von vorne suchen?"
msgid "Nothing to search"
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"
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"
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)"
msgstr ""
"Suche vorhergehenden Treffer (Umschalt+Eingabetaste; vorwärts: Eingabetaste)"
#: src/frontends/qt/FindAndReplace.cpp:644
#: src/frontends/qt/FindAndReplace.cpp:713
msgid "< Rep&lace"
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)"
msgstr ""
"Ersetze und suche vorhergehenden Treffer (Umschalt+Eingabetaste; vorwärts: "
@ -37090,15 +37135,15 @@ msgstr "Vorschau bereit"
msgid "Preview failed"
msgstr "Die Vorschau ist fehlgeschlagen"
#: src/lyxfind.cpp:275
#: src/lyxfind.cpp:282
msgid "Search error"
msgstr "Fehler beim Suchen"
#: src/lyxfind.cpp:275
#: src/lyxfind.cpp:282
msgid "Search string is empty"
msgstr "Die Such-Zeichenkette ist leer"
#: src/lyxfind.cpp:307
#: src/lyxfind.cpp:314
msgid ""
"The search string matches the selection, and search is limited to "
"selection.\n"
@ -37108,11 +37153,11 @@ msgstr ""
"Suche ist auf die Auswahl begrenzt.\n"
"Außerhalb weitersuchen?"
#: src/lyxfind.cpp:309 src/lyxfind.cpp:336
#: src/lyxfind.cpp:316 src/lyxfind.cpp:343
msgid "Search outside selection?"
msgstr "Außerhalb der Auswahl suchen?"
#: src/lyxfind.cpp:334
#: src/lyxfind.cpp:341
msgid ""
"The search string was not found within the selection.\n"
"Continue search outside?"
@ -37120,7 +37165,7 @@ msgstr ""
"Der gesuchte Ausdruck wurde innerhalb der Auswahl nicht gefunden.\n"
"Außerhalb weitersuchen?"
#: src/lyxfind.cpp:352 src/lyxfind.cpp:698
#: src/lyxfind.cpp:359 src/lyxfind.cpp:705
msgid ""
"End of file reached while searching forward.\n"
"Continue searching from the beginning?"
@ -37128,7 +37173,7 @@ msgstr ""
"Das Ende des Dokuments wurde bei der Vorwärtssuche erreicht.\n"
"Suche am Anfang fortsetzen?"
#: src/lyxfind.cpp:355 src/lyxfind.cpp:726
#: src/lyxfind.cpp:362 src/lyxfind.cpp:733
msgid ""
"Beginning of file reached while searching backward.\n"
"Continue searching from the end?"
@ -37136,62 +37181,62 @@ msgstr ""
"Der Anfang des Dokuments wurde bei der Rückwärtssuche erreicht.\n"
"Suche am Ende fortsetzen?"
#: src/lyxfind.cpp:371
#: src/lyxfind.cpp:378
msgid "Search reached end of document, continuing from beginning."
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."
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."
msgstr "Der gesuchte Ausdruck wurde in der Auswahl nicht gefunden."
#: src/lyxfind.cpp:673
#: src/lyxfind.cpp:680
msgid "String not found."
msgstr "Die Zeichenkette wurde nicht gefunden."
#: src/lyxfind.cpp:676
#: src/lyxfind.cpp:683
msgid "String found."
msgstr "Zeichenkette gefunden."
#: src/lyxfind.cpp:678
#: src/lyxfind.cpp:685
msgid "String has been replaced."
msgstr "Die Zeichenkette wurde ersetzt."
#: src/lyxfind.cpp:681
#: src/lyxfind.cpp:688
#, c-format
msgid "%1$d strings have been replaced in the selection."
msgstr "%1$d Zeichenketten wurden in der Auswahl ersetzt."
#: src/lyxfind.cpp:682
#: src/lyxfind.cpp:689
#, c-format
msgid "%1$d strings have been replaced."
msgstr "%1$d Zeichenketten wurden ersetzt."
#: src/lyxfind.cpp:4679
#: src/lyxfind.cpp:4745
msgid "One match has been replaced."
msgstr "Ein Treffer wurde ersetzt."
#: src/lyxfind.cpp:4682
#: src/lyxfind.cpp:4748
msgid "Two matches have been replaced."
msgstr "Zwei Treffer wurden ersetzt."
#: src/lyxfind.cpp:4685
#: src/lyxfind.cpp:4751
#, c-format
msgid "%1$d matches have been replaced."
msgstr "%1$d Treffer wurden ersetzt."
#: src/lyxfind.cpp:4691
#: src/lyxfind.cpp:4757
msgid "Match not found."
msgstr "Die Zeichenkette wurde nicht gefunden!"
#: src/lyxfind.cpp:4697
#: src/lyxfind.cpp:4763
msgid "Match has been replaced."
msgstr "Die Zeichenkette wurde ersetzt."
#: src/lyxfind.cpp:4699
#: src/lyxfind.cpp:4765
msgid "Match found."
msgstr "Die Zeichenkette wurde gefunden!"
@ -37793,6 +37838,16 @@ msgstr ""
msgid "Unknown user"
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"
#~ msgstr "Fußnote"
@ -39448,9 +39503,6 @@ msgstr "Unbekannter Benutzer"
#~ msgid " (version control)"
#~ msgstr " (Versionskontrolle)"
#~ msgid " (changed)"
#~ msgstr " (geändert)"
#~ msgid " (read only)"
#~ msgstr " (schreibgeschützt)"

BIN
po/fr.gmo

Binary file not shown.

282
po/fr.po
View File

@ -362,8 +362,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX 2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
"POT-Creation-Date: 2022-04-24 17:20+0200\n"
"PO-Revision-Date: 2022-04-24 17:23+0200\n"
"POT-Creation-Date: 2022-05-12 14:41+0200\n"
"PO-Revision-Date: 2022-05-12 14:43+0200\n"
"Last-Translator: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>\n"
"Language-Team: lyxfr\n"
"Language: fr\n"
@ -1306,6 +1306,7 @@ msgid "Font Properties"
msgstr "Propriétés des polices"
#: src/frontends/qt/ui/CharacterUi.ui:36 src/frontends/qt/ui/CharacterUi.ui:55
#: src/frontends/qt/ui/FindAndReplaceUi.ui:475
msgid "Font family"
msgstr "Famille de police"
@ -1314,6 +1315,7 @@ msgid "Fa&mily:"
msgstr "&Famille :"
#: src/frontends/qt/ui/CharacterUi.ui:62 src/frontends/qt/ui/CharacterUi.ui:81
#: src/frontends/qt/ui/FindAndReplaceUi.ui:447
msgid "Font series"
msgstr "Série de police"
@ -1322,6 +1324,7 @@ msgid "&Series:"
msgstr "&Série :"
#: src/frontends/qt/ui/CharacterUi.ui:88 src/frontends/qt/ui/CharacterUi.ui:107
#: src/frontends/qt/ui/FindAndReplaceUi.ui:510
msgid "Font shape"
msgstr "Forme de police"
@ -1331,11 +1334,13 @@ msgstr "F&orme :"
#: src/frontends/qt/ui/CharacterUi.ui:114
#: src/frontends/qt/ui/CharacterUi.ui:133
#: src/frontends/qt/ui/FindAndReplaceUi.ui:524
msgid "Font size"
msgstr "Taille de police"
#: src/frontends/qt/ui/CharacterUi.ui:159
#: src/frontends/qt/ui/CharacterUi.ui:178
#: src/frontends/qt/ui/FindAndReplaceUi.ui:454
msgid "Font color"
msgstr "Couleur de police"
@ -1369,12 +1374,14 @@ msgstr "Paramètres de langue"
msgid "&Language:"
msgstr "Lan&gue :"
#: src/frontends/qt/ui/CharacterUi.ui:281 src/frontends/qt/ui/ListingsUi.ui:334
#: lib/layouts/bicaption.module:16 lib/layouts/europasscv.layout:440
#: lib/layouts/europasscv.layout:475 lib/layouts/europasscv.layout:482
#: lib/layouts/europecv.layout:321 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
#: src/frontends/qt/ui/CharacterUi.ui:281
#: src/frontends/qt/ui/FindAndReplaceUi.ui:482
#: src/frontends/qt/ui/ListingsUi.ui:334 lib/layouts/bicaption.module:16
#: lib/layouts/europasscv.layout:440 lib/layouts/europasscv.layout:475
#: lib/layouts/europasscv.layout:482 lib/layouts/europecv.layout:321
#: 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"
msgstr "Langue"
@ -1980,24 +1987,24 @@ msgid "Case &sensitive"
msgstr "Selon la &casse"
#: 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)"
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/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:647
#: src/frontends/qt/ui/SearchUi.ui:190 src/frontends/qt/FindAndReplace.cpp:716
msgid "Find &>"
msgstr "Rechercher &>"
#: 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)"
msgstr ""
"Remplacer et rechercher l'occurrence suivante (Entrée, vers l'arrière : Maj"
"+Entrée)"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:224
#: src/frontends/qt/FindAndReplace.cpp:649
#: src/frontends/qt/FindAndReplace.cpp:718
msgid "Rep&lace >"
msgstr "&Remplacer >"
@ -2050,31 +2057,19 @@ msgstr "Document &ouverts"
msgid "&All manuals"
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
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"
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 ""
"Keep the case of the replacement's first letter as in each matching text "
"first letter"
@ -2082,10 +2077,61 @@ msgstr ""
"Conserver la casse de la première lettre du remplacement telle quelle dans "
"chaque chaîne correspondante"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:409
#: src/frontends/qt/ui/FindAndReplaceUi.ui:393
msgid "&Preserve first case on replace"
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/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form"
@ -4506,59 +4552,65 @@ msgstr ""
"Définir un patron de recherche (voir le Manuel de lutilisateur pour la "
"syntaxe)"
#: src/frontends/qt/ui/PrefEditUi.ui:167 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/frontends/qt/ui/PrefEditUi.ui:170
#: src/frontends/qt/ui/PrefEditUi.ui:167
msgid "Cursor width (&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"
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"
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"
msgstr "Re&grouper les environnements par catégorie"
#: src/frontends/qt/ui/PrefEditUi.ui:218
#: src/frontends/qt/ui/PrefEditUi.ui:221
msgid "Fullscreen"
msgstr "Plein écran"
#: src/frontends/qt/ui/PrefEditUi.ui:230
#: src/frontends/qt/ui/PrefEditUi.ui:233
msgid "Hide &menubar"
msgstr "Cacher la barre des &menus"
#: src/frontends/qt/ui/PrefEditUi.ui:237
#: src/frontends/qt/ui/PrefEditUi.ui:240
msgid "Hide scr&ollbar"
msgstr "Cacher l'&ascenseur"
#: src/frontends/qt/ui/PrefEditUi.ui:260
#: src/frontends/qt/ui/PrefEditUi.ui:263
msgid "Hide sta&tusbar"
msgstr "Cacher la barre d'&état"
#: src/frontends/qt/ui/PrefEditUi.ui:267
#: src/frontends/qt/ui/PrefEditUi.ui:270
msgid "H&ide tabbar"
msgstr "Cacher la barre des &onglets"
#: src/frontends/qt/ui/PrefEditUi.ui:305
#: src/frontends/qt/ui/PrefEditUi.ui:308
msgid "&Limit text width"
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):"
msgstr "Écran &utilisé (pixels) :"
#: src/frontends/qt/ui/PrefEditUi.ui:375
#: src/frontends/qt/ui/PrefEditUi.ui:378
msgid "&Hide toolbars"
msgstr "Cacher les palettes d'&outils"
@ -5618,7 +5670,7 @@ msgstr "Sans préfixe"
msgid "Find previous occurrence (Shift+Enter)"
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"
msgstr "&< Rechercher"
@ -6682,11 +6734,6 @@ msgstr "Entrée bibliographique complète."
msgid "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.citeengine:142
msgid "F&orce full title[[Possible substitute to All aut&hors]]"
@ -28330,7 +28377,7 @@ msgid "greyedout inset text"
msgstr "texte d'insert grisé"
#: 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:257
#: src/insets/InsetCommandParams.cpp:508 src/insets/InsetCommandParams.cpp:516
@ -28342,7 +28389,7 @@ msgid "LyX Warning: "
msgstr "Avertissement LyX : "
#: 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/InsetGraphics.cpp:901 src/insets/InsetGraphics.cpp:909
#: 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 "
"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
msgid ""
"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"
msgstr "&Revenir à la Sauvegarde"
#: src/Paragraph.cpp:2152
#: src/Paragraph.cpp:2164
msgid "Senseless with this layout!"
msgstr "Inapproprié avec ce style !"
#: src/Paragraph.cpp:2206
#: src/Paragraph.cpp:2218
msgid "Alignment not permitted"
msgstr "Alignement non autorisé"
#: src/Paragraph.cpp:2207
#: src/Paragraph.cpp:2219
msgid ""
"The new layout does not permit the alignment previously used.\n"
"Setting to default."
@ -30853,7 +30908,7 @@ msgstr ", Char: 0x"
msgid ", Boundary: "
msgstr ", Frontière : "
#: src/Text2.cpp:406
#: src/Text2.cpp:407
msgid "No font change defined."
msgstr "Aucune modification de police définie."
@ -30877,36 +30932,36 @@ msgstr "Mode « expression régulière »"
msgid "Layout "
msgstr "Environnement "
#: src/Text3.cpp:1619 src/Text3.cpp:2193
#: src/Text3.cpp:1619 src/Text3.cpp:2203
msgid " not known"
msgstr " inconnu"
#: src/Text3.cpp:2192
#: src/Text3.cpp:2202
msgid "Table Style "
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"
msgstr "Paramètre manquant"
#: src/Text3.cpp:2550
#: src/Text3.cpp:2560
msgid "Invalid argument (number exceeds stack size)!"
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)!"
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
msgid "Text properties applied: %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!"
msgstr "Chemin d'accès au répertoire du thésaurus non précisé !"
#: src/Text3.cpp:2733
#: src/Text3.cpp:2743
msgid ""
"The path to the thesaurus directory has not been specified.\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"
"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"
msgstr "Style du paragraphe redéfini"
@ -31294,15 +31349,15 @@ msgstr ""
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: 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:701 src/lyxfind.cpp:729
#: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
#: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&Yes"
msgstr "&Oui"
#: src/VCBackend.cpp:1522 src/VCBackend.cpp:1526
#: 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:701 src/lyxfind.cpp:729
#: src/lyxfind.cpp:317 src/lyxfind.cpp:344 src/lyxfind.cpp:365
#: src/lyxfind.cpp:708 src/lyxfind.cpp:736
msgid "&No"
msgstr "&Non"
@ -31507,8 +31562,8 @@ msgstr "Recherche avancée en cours (appuyer sur ESC pour annuler) . . ."
msgid "Advanced search cancelled by user"
msgstr "Recherche avancée annulée par l'utilisateur"
#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:357
#: src/lyxfind.cpp:700 src/lyxfind.cpp:728
#: src/frontends/qt/FindAndReplace.cpp:380 src/lyxfind.cpp:364
#: src/lyxfind.cpp:707 src/lyxfind.cpp:735
msgid "Wrap search?"
msgstr "Recherche récursive ?"
@ -31516,23 +31571,23 @@ msgstr "Recherche récursive ?"
msgid "Nothing to search"
msgstr "Rien à rechercher"
#: src/frontends/qt/FindAndReplace.cpp:479
#: src/frontends/qt/FindAndReplace.cpp:519
msgid "No open document(s) in which to search"
msgstr "Aucun document ouvert dans lequel rechercher"
#: src/frontends/qt/FindAndReplace.cpp:588
#: src/frontends/qt/FindAndReplace.cpp:657
msgid "Advanced Find and Replace"
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)"
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"
msgstr "< &Remplacer"
#: src/frontends/qt/FindAndReplace.cpp:645
#: src/frontends/qt/FindAndReplace.cpp:714
msgid "Replace and find previous occurrence (Shift+Enter, forwards: Enter)"
msgstr ""
"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"
msgstr "Échec de l'aperçu"
#: src/lyxfind.cpp:275
#: src/lyxfind.cpp:282
msgid "Search error"
msgstr "Erreur de recherche"
#: src/lyxfind.cpp:275
#: src/lyxfind.cpp:282
msgid "Search string is empty"
msgstr "La chaîne de caractères à chercher est vide"
#: src/lyxfind.cpp:307
#: src/lyxfind.cpp:314
msgid ""
"The search string matches the selection, and search is limited to "
"selection.\n"
@ -37349,11 +37404,11 @@ msgstr ""
"à la sélection.\n"
"Continuer à chercher en dehors?"
#: src/lyxfind.cpp:309 src/lyxfind.cpp:336
#: src/lyxfind.cpp:316 src/lyxfind.cpp:343
msgid "Search outside selection?"
msgstr "Rechercher en-dehors de la sélection ?"
#: src/lyxfind.cpp:334
#: src/lyxfind.cpp:341
msgid ""
"The search string was not found within the selection.\n"
"Continue search outside?"
@ -37361,7 +37416,7 @@ msgstr ""
"La chaîne recherchée n'a pas été trouvée dans la sélection.\n"
"Continuer à chercher en-dehors ?"
#: src/lyxfind.cpp:352 src/lyxfind.cpp:698
#: src/lyxfind.cpp:359 src/lyxfind.cpp:705
msgid ""
"End of file reached while searching forward.\n"
"Continue searching from the beginning?"
@ -37369,7 +37424,7 @@ msgstr ""
"Fin du fichier atteinte lors de la recherche en avant.\n"
"Continuer la recherche depuis le début ?"
#: src/lyxfind.cpp:355 src/lyxfind.cpp:726
#: src/lyxfind.cpp:362 src/lyxfind.cpp:733
msgid ""
"Beginning of file reached while searching backward.\n"
"Continue searching from the end?"
@ -37377,63 +37432,63 @@ msgstr ""
"Début du fichier atteint lors de la recherche en arrière.\n"
"Continuer la recherche depuis la fin ?"
#: src/lyxfind.cpp:371
#: src/lyxfind.cpp:378
msgid "Search reached end of document, continuing from beginning."
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."
msgstr ""
"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."
msgstr "Chaîne de caractères introuvable dans le sélection."
#: src/lyxfind.cpp:673
#: src/lyxfind.cpp:680
msgid "String not found."
msgstr "Chaîne de caractères introuvable."
#: src/lyxfind.cpp:676
#: src/lyxfind.cpp:683
msgid "String found."
msgstr "Chaîne de caractères trouvée."
#: src/lyxfind.cpp:678
#: src/lyxfind.cpp:685
msgid "String has been replaced."
msgstr "Chaîne remplacée."
#: src/lyxfind.cpp:681
#: src/lyxfind.cpp:688
#, c-format
msgid "%1$d strings have been replaced in the selection."
msgstr "%1$d chaînes remplacées dans le sélection."
#: src/lyxfind.cpp:682
#: src/lyxfind.cpp:689
#, c-format
msgid "%1$d strings have been replaced."
msgstr "%1$d chaînes remplacées."
#: src/lyxfind.cpp:4679
#: src/lyxfind.cpp:4769
msgid "One match has been replaced."
msgstr "Une correspondance a été remplacée."
#: src/lyxfind.cpp:4682
#: src/lyxfind.cpp:4772
msgid "Two matches have been replaced."
msgstr "Deux correspondances ont été remplacées."
#: src/lyxfind.cpp:4685
#: src/lyxfind.cpp:4775
#, c-format
msgid "%1$d matches have been replaced."
msgstr "%1$d correspondances ont été remplacées."
#: src/lyxfind.cpp:4691
#: src/lyxfind.cpp:4781
msgid "Match not found."
msgstr "Chaîne de caractères introuvable."
#: src/lyxfind.cpp:4697
#: src/lyxfind.cpp:4787
msgid "Match has been replaced."
msgstr "Chaîne de caractères remplacée."
#: src/lyxfind.cpp:4699
#: src/lyxfind.cpp:4789
msgid "Match found."
msgstr "Chaîne de caractères reconnue."
@ -38037,6 +38092,16 @@ msgstr ""
msgid "Unknown user"
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"
#~ msgstr "bas"
@ -39277,9 +39342,6 @@ msgstr "Utilisateur inconnu"
#~ msgid " (version control)"
#~ msgstr " (contrôle de version)"
#~ msgid " (changed)"
#~ msgstr " (modifié)"
#~ msgid " (read only)"
#~ msgstr " (en lecture seule)"

View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: LyX-2.4\n"
"Report-Msgid-Bugs-To: lyx-devel@lists.lyx.org\n"
"POT-Creation-Date: 2022-04-24 17:25+0200\n"
"PO-Revision-Date: 2022-04-24 15:29+0000\n"
"POT-Creation-Date: 2022-05-11 18:56+0200\n"
"PO-Revision-Date: 2022-05-11 16:59+0000\n"
"Last-Translator: Kornel Benko <kornel@lyx.org>\n"
"Language-Team: Slovak <kornel@lyx.org>\n"
"Language: sk\n"
@ -980,7 +980,7 @@ msgstr "&Farba:"
#: src/frontends/qt/ui/CharacterUi.ui:185
msgid "U&nderlining:"
msgstr "Po&dčiarnutie:"
msgstr "Po&dčiarknutie:"
#: src/frontends/qt/ui/CharacterUi.ui:201
msgid "Underlining of text"
@ -1675,25 +1675,13 @@ msgstr "Vš&etky príručky"
msgid "Restrict search to math environments only"
msgstr "Obmedziť hľadanie na mat. prostredia"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:373
msgid "Search on&ly in maths"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:383
msgid "Search onl&y in maths"
msgstr "Prehľadať len mat. vzork&y"
#: 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 ""
"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
#: src/frontends/qt/ui/FindAndReplaceUi.ui:373
msgid "E&xpand macros"
msgstr "&Rozvinúť makrá"
msgstr "Rozvinúť &makrá"
#: src/frontends/qt/ui/FindAndReplaceUi.ui:406
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"
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/OutputUi.ui:14 src/frontends/qt/ui/PDFSupportUi.ui:14
msgid "Form"
@ -4088,6 +4124,14 @@ msgstr ""
msgid "Cursor width (&pixels):"
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
msgid "Skip trailing non-word characters"
msgstr "Vynechať bočné písmená nepatriace k slovu"
@ -37322,6 +37366,16 @@ msgstr ""
msgid "Unknown user"
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"
#~ msgstr "Mechanizmus hľadať a nahradiť"
@ -42762,3 +42816,6 @@ msgstr "Neznámy používateľ"
#~ msgid "Set inner lines"
#~ 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
if (cur != old) {
bool badcursor = old.fixIfBroken() | cur.fixIfBroken();
badcursor |= notifyCursorLeavesOrEnters(old, cur);
bool badcursor = old.fixIfBroken() || cur.fixIfBroken();
badcursor = badcursor || notifyCursorLeavesOrEnters(old, cur);
if (badcursor)
cursor().fixIfBroken();
}

View File

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

View File

@ -433,7 +433,12 @@ public:
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?
bool for_preview = false;
@ -446,6 +451,8 @@ public:
/// A postponed \\noindent (after VSpace)
mutable bool need_noindent = false;
private:
int for_search = NoSearch;
};

View File

@ -1209,26 +1209,41 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
{
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(runparams.pass_thru_chars, c)) {
if (runparams.for_search != OutputParams::NoSearch) {
if (c == '\\')
if (runparams.find_effective()) {
switch (c) {
case '\\':
os << "\\\\";
else if (c == '{')
return;
case '{':
os << "\\braceleft ";
else if (c == '}')
return;
case '}':
os << "\\braceright ";
else if (c != '\0')
return;
case '$':
os << "\\lyxdollar ";
return;
case '~':
os << "\\lyxtilde ";
return;
case ' ':
case '\0':
break;
default:
os.put(c);
return;
}
}
else if (c != '\0') {
Encoding const * const enc = runparams.encoding;
if (enc && !enc->encodable(c))
throw EncodingException(c);
os.put(c);
return;
}
return;
}
// TIPA uses its own T3 encoding
@ -2610,7 +2625,7 @@ void Paragraph::latex(BufferParams const & bparams,
runparams);
runningChange = Change(Change::UNCHANGED);
os << (isEnvSeparator(i) ? "}]~" : "}] ");
os << ((isEnvSeparator(i) && !runparams.find_effective()) ? "}]~" : "}] ");
column +=3;
}
// 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
bool output_changes;
if (runparams.for_search == OutputParams::NoSearch)
if (!runparams.find_effective())
output_changes = bparams.output_changes;
else
output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0);
output_changes = runparams.find_with_deleted();
if (c == META_INSET
&& i >= start_pos && (end_pos == -1 || i < end_pos)) {
if (isDeleted(i))
@ -4586,7 +4601,7 @@ int Paragraph::find(docstring const & str, bool cs, bool mw,
odocstringstream os;
if (inset->lyxCode() == lyx::QUOTE_CODE) {
OutputParams op(0);
op.for_search = OutputParams::SearchQuick;
op.find_set_feature(OutputParams::SearchQuick);
inset->plaintext(os, op);
}
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,
docstring const & layout)
{
// FIXME: make this work in multicell selection case
LASSERT(start != end, return);
Buffer const & buffer = owner_->buffer();

View File

@ -1875,8 +1875,18 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
bvcur.resetAnchor();
if (!bv->mouseSetCursor(cur, cmd.modifier() == ShiftModifier))
cur.screenUpdateFlags(Update::SinglePar | Update::FitCursor);
if (bvcur.wordSelection())
selectWord(bvcur, WHOLE_WORD);
// FIXME: move this to mouseSetCursor?
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;
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 layout = resolveLayout(req_layout, cur);
enable = !owner_->forcePlainLayout() && !layout.empty();
status.setOnOff(!owner_->forcePlainLayout() && isAlreadyLayout(layout, cur));
// FIXME: make this work in multicell selection case
enable = !owner_->forcePlainLayout() && !layout.empty() && !cur.selIsMultiCell();
status.setOnOff(!owner_->forcePlainLayout() && !cur.selIsMultiCell()
&& isAlreadyLayout(layout, cur));
break;
}

View File

@ -421,7 +421,7 @@ bool FindAndReplaceWidget::findAndReplaceScope(FindAndReplaceOptions & opt, bool
/// Return true if a match was found
bool FindAndReplaceWidget::findAndReplace(
bool casesensitive, bool matchword, bool backwards,
bool expandmacros, bool ignoreformat, bool replace,
bool expandmacros, bool adhereformat, bool replace,
bool keep_case, bool replace_all)
{
Buffer & find_buf = find_work_area_->bufferView().buffer();
@ -460,19 +460,59 @@ bool FindAndReplaceWidget::findAndReplace(
<< ", matchword=" << matchword
<< ", backwards=" << backwards
<< ", expandmacros=" << expandmacros
<< ", ignoreformat=" << ignoreformat
<< ", adhereformat=" << adhereformat
<< ", repl_buf_name" << repl_buf_name
<< ", keep_case=" << keep_case
<< ", scope=" << scope
<< ", restr=" << restr);
FindAndReplaceOptions opt(find_buf_name, casesensitive, matchword,
!backwards, expandmacros, ignoreformat,
!backwards, expandmacros, !adhereformat,
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);
}
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)
{
if (! view_.currentMainWorkArea()) {
@ -492,7 +532,7 @@ bool FindAndReplaceWidget::findAndReplace(bool backwards, bool replace, bool rep
wordsCB->isChecked(),
backwards,
expandMacrosCB->isChecked(),
ignoreFormatCB->isChecked(),
adhereFormatGB->isChecked(),
replace,
keepCaseCB->isChecked(),
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
static void copy_params(BufferView const & bv, BufferView & dest_bv) {
Buffer const & doc_buf = bv.buffer();
@ -584,8 +652,9 @@ void FindAndReplace::updateView()
FindAndReplace::FindAndReplace(GuiView & parent,
Qt::DockWidgetArea area, Qt::WindowFlags flags)
: DockView(parent, "findreplaceadv", qt_("Advanced Find and Replace"),
Qt::DockWidgetArea area,
Qt::WindowFlags flags)
: DockView(parent, "findreplaceadv", qt_("Advanced Find and Replace"),
area, flags)
{
widget_ = new FindAndReplaceWidget(parent);

View File

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

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>374</width>
<height>380</height>
<height>664</height>
</rect>
</property>
<property name="windowTitle">
@ -263,7 +263,7 @@
<attribute name="title">
<string>Settin&amp;gs</string>
</attribute>
<layout class="QVBoxLayout" name="dynamicLayoutAdvanced_" stretch="0,0,1">
<layout class="QVBoxLayout" name="dynamicLayoutAdvanced_" stretch="0,0,0,1">
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="enabled">
@ -365,32 +365,6 @@
<enum>QLayout::SetMinimumSize</enum>
</property>
<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">
<property name="enabled">
<bool>false</bool>
@ -401,6 +375,16 @@
</widget>
</item>
<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">
<property name="toolTip">
<string>Keep the case of the replacement's first letter as in each matching text first letter</string>
@ -423,8 +407,127 @@
</property>
</spacer>
</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>
</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>
<spacer name="verticalSpacer_2">
<property name="orientation">

View File

@ -163,9 +163,6 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<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">
<string>Cursor width (&amp;pixels):</string>
</property>
@ -176,6 +173,12 @@
</item>
<item>
<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">
<number>0</number>
</property>

View File

@ -983,7 +983,7 @@ int InsetBibtex::plaintext(odocstringstream & os,
// 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
// 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';
return PLAINTEXT_NEWLINE;
}

View File

@ -321,7 +321,7 @@ bool InsetBranch::producesOutput() 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;
rp.inbranch = true;
InsetText::latex(os, rp);
@ -335,7 +335,7 @@ void InsetBranch::latex(otexstream & os, OutputParams const & runparams) const
int InsetBranch::plaintext(odocstringstream & os,
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;
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,
// 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'
<< ltrim(getParam("filename")) << "\n]";
return PLAINTEXT_NEWLINE + 1; // one char on a separate line
}
if (isVerbatim(params()) || isListings(params())) {
if (op.for_search != OutputParams::NoSearch) {
if (op.find_effective()) {
os << '[' << screenLabel() << ']';
}
else {

View File

@ -146,7 +146,7 @@ void InsetIndex::latex(otexstream & ios, OutputParams const & runparams_in) cons
odocstringstream ourlatex;
otexstream ots(ourlatex);
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
os << ourlatex.str() << "}";
return;

View File

@ -207,12 +207,12 @@ bool InsetNote::isMacroScope() const
void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const
{
if (params_.type != InsetNoteParams::Greyedout
&& runparams_in.for_search != OutputParams::NoSearch
&& (runparams_in.for_search & OutputParams::SearchNonOutput) == 0)
&& runparams_in.find_effective()
&& !runparams_in.find_with_non_output())
return;
if (params_.type == InsetNoteParams::Note) {
if ((runparams_in.for_search & OutputParams::SearchNonOutput) != 0) {
if (runparams_in.find_with_non_output()) {
OutputParams runparams(runparams_in);
InsetCollapsible::latex(os, runparams);
runparams_in.encoding = runparams.encoding;
@ -251,11 +251,11 @@ void InsetNote::latex(otexstream & os, OutputParams const & runparams_in) const
int InsetNote::plaintext(odocstringstream & os,
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)
return 0;
else if (params_.type == InsetNoteParams::Comment
&& (runparams_in.for_search != OutputParams::NoSearch))
&& runparams_in.find_effective())
return 0;
}
@ -265,10 +265,10 @@ int InsetNote::plaintext(odocstringstream & os,
// Ignore files that are exported inside a comment
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";
InsetText::plaintext(os, runparams, max_length);
if ((runparams_in.for_search & OutputParams::SearchNonOutput) == 0)
if (!runparams_in.find_with_non_output())
os << "\n]";
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;
// 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("'");
else if (style == QuoteStyle::Plain && fontspec_) {
// 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,
OutputParams const & op, size_t) const
{
if (op.for_search == OutputParams::NoSearch) {
if (!op.find_effective()) {
docstring const str = displayString();
os << str;
return str.size();

View File

@ -579,94 +579,120 @@ void InsetSpace::latex(otexstream & os, OutputParams const & runparams) const
{
switch (params_.kind) {
case InsetSpaceParams::NORMAL:
os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? " " : "\\ ");
if (runparams.find_effective())
os << "~";
else
os << (runparams.free_spacing ? " " : "\\ ");
break;
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")
// in babel's polutonikogreek, ~ is active
os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? " " : "\\nobreakspace{}");
os << (runparams.free_spacing ? " " : "\\nobreakspace{}");
else
os << (runparams.free_spacing && (runparams.for_search == OutputParams::NoSearch) ? ' ' : '~');
os << (runparams.free_spacing ? ' ' : '~');
break;
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;
case InsetSpaceParams::THIN:
if (runparams.for_search != OutputParams::NoSearch)
os << "\\thinspace{}";
if (runparams.find_effective())
os.put(0x2009);
else
os << (runparams.free_spacing ? " " : "\\,");
break;
case InsetSpaceParams::MEDIUM:
if (runparams.for_search != OutputParams::NoSearch)
os << "\\medspace{}";
if (runparams.find_effective())
os.put(0x2005);
else if (params_.math)
os << (runparams.free_spacing ? " " : "\\:");
else
os << (runparams.free_spacing ? " " : "\\medspace{}");
break;
case InsetSpaceParams::THICK:
if (runparams.for_search != OutputParams::NoSearch)
os << "\\thickspace{}";
if (runparams.find_effective())
os.put(0x2004);
else if (params_.math)
os << (runparams.free_spacing ? " " : "\\;");
else
os << (runparams.free_spacing ? " " : "\\thickspace{}");
break;
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;
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;
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;
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;
case InsetSpaceParams::NEGTHIN:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\negthinspace{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negthinspace{}");
break;
case InsetSpaceParams::NEGMEDIUM:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\negmedspace{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negmedspace{}");
break;
case InsetSpaceParams::NEGTHICK:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\negthickspace{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\negthickspace{}");
break;
case InsetSpaceParams::HFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\hfill{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hfill{}");
break;
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;
case InsetSpaceParams::DOTFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\dotfill{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\dotfill{}");
break;
case InsetSpaceParams::HRULEFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\hrulefill{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\hrulefill{}");
break;
case InsetSpaceParams::LEFTARROWFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\leftarrowfill{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\leftarrowfill{}");
break;
case InsetSpaceParams::RIGHTARROWFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\rightarrowfill{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\rightarrowfill{}");
break;
case InsetSpaceParams::UPBRACEFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\upbracefill{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\upbracefill{}");
break;
case InsetSpaceParams::DOWNBRACEFILL:
os << (runparams.free_spacing && (runparams.for_search != OutputParams::NoSearch) ? " " : "\\downbracefill{}");
os << (runparams.free_spacing && runparams.find_effective() ? " " : "\\downbracefill{}");
break;
case InsetSpaceParams::CUSTOM:
if (runparams.free_spacing)
if (runparams.find_effective())
os.put(0x00a0);
else if (runparams.free_spacing)
os << " ";
else
os << "\\hspace{" << from_ascii(params_.length.asLatexString()) << "}";
break;
case InsetSpaceParams::CUSTOM_PROTECTED:
if (runparams.free_spacing)
if (runparams.find_effective())
os.put(0x00a0);
else if (runparams.free_spacing)
os << " ";
else
os << "\\hspace*{" << from_ascii(params_.length.asLatexString()) << "}";

View File

@ -88,6 +88,8 @@ class IgnoreFormats {
///
bool getShape() const { return ignoreShape_; }
///
bool getSize() const { return ignoreSize_; }
///
bool getUnderline() const { return ignoreUnderline_; }
///
bool getMarkUp() const { return ignoreMarkUp_; }
@ -118,6 +120,8 @@ private:
///
bool ignoreShape_ = false;
///
bool ignoreSize_ = true;
///
bool ignoreUnderline_ = false;
///
bool ignoreMarkUp_ = false;
@ -166,6 +170,9 @@ void IgnoreFormats::setIgnoreFormat(string const & type, bool value, bool fromUs
else if (type == "shape") {
ignoreShape_ = value;
}
else if (type == "size") {
ignoreSize_ = value;
}
else if (type == "family") {
ignoreFamily_ = value;
}
@ -805,10 +812,48 @@ namespace {
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)
{
static std::regex specialChars { R"([-[\]{}()*+?.,\^$|#\s\$\\])" };
string temp = std::regex_replace(in, specialChars, R"(\$&)" );
static std::regex 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("");
size_t lastpos = 0;
size_t fl_pos = 0;
@ -838,7 +883,8 @@ string correctRegex(string t, bool withformat)
* and \{, \}, \[, \] => {, }, [, ]
*/
string s("");
regex wordre("(\\\\)*(\\\\(([A-Za-z]+|[\\{\\}%])( |\\{\\})?|[\\[\\]\\{\\}]))");
static std::regex wordre("(\\\\)*(\\\\(( |[A-Za-z]+|[\\{\\}%])( |\\{\\})?|[\\[\\]\\{\\}]))");
static std::regex protectedSpace { R"(~)" };
size_t lastpos = 0;
smatch sub;
bool backslashed = false;
@ -846,6 +892,7 @@ string correctRegex(string t, bool withformat)
buildAccentsMap();
//LYXERR0("correctRegex input '" << t << "'");
int skip = 0;
for (sregex_iterator it(t.begin(), t.end(), wordre), end; it != end; ++it) {
sub = *it;
string replace;
@ -858,10 +905,14 @@ string correctRegex(string t, bool withformat)
{
// transforms '\backslash \{' into '\{'
string next = t.substr(sub.position(2) + sub.str(2).length(), 2);
if ((next == "\\{") || (next == "\\}")) {
if ((next == "\\{") || (next == "\\}") || (next == "\\ ")) {
replace = "";
backslashed = true;
}
else if (withformat && next[0] == '$') {
replace = accents["lyxdollar"];
skip = 1; // Skip following '$'
}
}
}
else if (sub.str(4) == "mathcircumflex")
@ -873,6 +924,8 @@ string correctRegex(string t, bool withformat)
replace = accents["braceleft"];
else if (sub.str(3) == "}")
replace = accents["braceright"];
else if (sub.str(3) == " ")
replace = "\\ ";
else {
// else part should not exist
LASSERT(0, /**/);
@ -883,6 +936,8 @@ string correctRegex(string t, bool withformat)
replace = "\\{";
else if (sub.str(3) == "}")
replace = "\\}";
else if (sub.str(3) == " ")
replace = "\\ ";
else {
// else part should not exist
LASSERT(0, /**/);
@ -895,6 +950,8 @@ string correctRegex(string t, bool withformat)
replace = "}";
else if (sub.str(4) == "%")
replace = "%";
else if (sub.str(4) == " ")
replace = " ";
else {
AccentsIterator it_ac = accents.find(sub.str(4));
if (it_ac == accents.end()) {
@ -906,14 +963,15 @@ string correctRegex(string t, bool withformat)
}
}
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;
lastpos = sub.position(2) + sub.length(2);
lastpos = sub.position(2) + sub.length(2) + skip;
skip = 0;
}
if (lastpos == 0)
s = t;
s = std::regex_replace(t, protectedSpace, R"( )");
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
// substitute all '„', '“', '»', '«' with '"'
// and all '', '', '', '' with "\'"
@ -1088,6 +1146,15 @@ void MatchStringAdv::FillResults(MatchResult &found_mr)
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)
{
//OutputParams runparams(&buffer.params().encoding());
@ -1095,16 +1162,13 @@ static docstring buffer_to_latex(Buffer & buffer)
odocstringstream ods;
otexstream os(ods);
runparams.nice = true;
runparams.flavor = Flavor::XeTeX;
runparams.linelen = 10000; //lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
setFindParams(runparams);
if (ignoreFormats.getDeleted())
runparams.for_search = OutputParams::SearchWithoutDeleted;
runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
else
runparams.for_search = OutputParams::SearchWithDeleted;
runparams.find_set_feature(OutputParams::SearchWithDeleted);
if (ignoreFormats.getNonContent()) {
runparams.for_search |= OutputParams::SearchNonOutput;
runparams.find_add_feature(OutputParams::SearchNonOutput);
}
pit_type const endpit = buffer.paragraphs().size();
for (pit_type pit = 0; pit != endpit; ++pit) {
@ -1114,7 +1178,7 @@ static docstring buffer_to_latex(Buffer & buffer)
return ods.str();
}
static string latexNamesToUtf8(docstring strIn)
static string latexNamesToUtf8(docstring strIn, bool withformat)
{
string addtmp = to_utf8(strIn);
static regex const rmAcc("(\\\\)*("
@ -1156,6 +1220,10 @@ static string latexNamesToUtf8(docstring strIn)
add = addtmp;
else if (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: '"
<< add << "'");
return add;
@ -1170,26 +1238,24 @@ static docstring stringifySearchBuffer(Buffer & buffer, FindAndReplaceOptions co
// OutputParams runparams(&buffer.params().encoding());
OutputParams runparams(encodings.fromLyXName("utf8"));
runparams.nice = true;
runparams.flavor = Flavor::XeTeX;
runparams.linelen = 10000; //lyxrc.plaintext_linelen;
runparams.dryrun = true;
setFindParams(runparams);
int option = AS_STR_INSETS |AS_STR_PLAINTEXT;
if (ignoreFormats.getDeleted()) {
option |= AS_STR_SKIPDELETE;
runparams.for_search = OutputParams::SearchWithoutDeleted;
runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
}
else {
runparams.for_search = OutputParams::SearchWithDeleted;
runparams.find_set_feature(OutputParams::SearchWithDeleted);
}
if (ignoreFormats.getNonContent()) {
runparams.for_search |= OutputParams::SearchNonOutput;
runparams.find_add_feature(OutputParams::SearchNonOutput);
}
string t("");
for (pos_type pit = pos_type(0); pit < (pos_type)buffer.paragraphs().size(); ++pit) {
Paragraph const & par = buffer.paragraphs().at(pit);
string add = latexNamesToUtf8(par.asString(pos_type(0), par.size(),
option,
&runparams));
&runparams), !opt.ignoreformat);
LYXERR(Debug::FINDVERBOSE, "Adding to search string: '"
<< add << "'");
t += add;
@ -1222,7 +1288,7 @@ static size_t identifyLeading(string const & s)
|| regex_replace(t, t, "^\\\\begin\\{[a-zA-Z_]*\\*?\\}", ""))
;
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 setForDefaultLang(KeyInfo const & defLang) const;
int findclosing(int start, int end, char up, char down, int repeat);
void removeInvalidClosings(void);
void handleParentheses(int lastpos, bool closingAllowed);
bool hasTitle;
// Number of disabled language specs up
@ -1884,7 +1951,6 @@ static void buildAccentsMap()
accents["cdot"] = "·";
accents["textasciicircum"] = "^";
accents["mathcircumflex"] = "^";
accents["sim"] = "~";
accents["guillemotright"] = "»";
accents["guillemotleft"] = "«";
accents["hairspace"] = getutf8(0xf0000); // select from free unicode plane 15
@ -1905,6 +1971,9 @@ static void buildAccentsMap()
accents["lyxarrow"] = getutf8(0xf0020);
accents["braceleft"] = getutf8(0xf0030);
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);
accents["backslash tex"] = getutf8(0xf0011);
@ -2180,6 +2249,27 @@ int Intervall::findclosing(int start, int end, char up = '{', char down = '}', i
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 MathEntry {
public:
@ -2267,6 +2357,7 @@ void LatexInfo::buildEntries(bool isPatternString)
static bool removeMathHull = false;
interval_.removeAccents();
interval_.removeInvalidClosings();
for (sregex_iterator itmath(interval_.par.begin(), interval_.par.end(), rmath), end; itmath != end; ++itmath) {
submath = *itmath;
@ -2725,9 +2816,14 @@ void LatexInfo::buildKeys(bool isPatternString)
// handle like standard keys with 1 parameter.
makeKey("url|href|vref|thanks", KeyInfo(KeyInfo::isStandard, 1, false), isPatternString);
// Ignore deleted text
makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 3, false), isPatternString);
// but preserve added text
if (ignoreFormats.getDeleted()) {
// Ignore deleted text
makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 3, false), isPatternString);
}
else {
// but preserve added text
makeKey("lyxdeleted", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString);
}
makeKey("lyxadded", KeyInfo(KeyInfo::doRemove, 2, false), isPatternString);
// 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("triangleleftpar|shapepar|dropuppar", 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);
// 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
// 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 */
string s;
int i = 0;
if ((unsigned) lastpos > par.size())
lastpos = par.size();
for (idx = 0; idx <= ignoreidx; idx++) {
while (i < lastpos) {
int printsize;
@ -3355,10 +3454,12 @@ static string correctlanguagesetting(string par, bool isPatternString, bool with
while ((parlen > 0) && (par[parlen-1] == '\n')) {
parlen--;
}
#if 0
if (isPatternString && (parlen > 0) && (par[parlen-1] == '~')) {
// Happens to be there in case of description or labeling environment
parlen--;
}
#endif
string result;
if (withformat) {
// 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()) {
str = str.substr(0, lng);
}
// Replace occurences of '~' to ' '
static std::regex specialChars { R"(~)" };
str = std::regex_replace(str, specialChars, R"( )" );
}
if (str.empty()) {
mres.match_len = -1;
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, /**/);
{
@ -3753,7 +3857,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, int len, bool at_be
int matchend = match.capturedEnd(0);
size_t strsize = qstr.size();
if (!opt.ignoreformat) {
while (mres.match_len > 0) {
while (mres.match_len > 1) {
QChar c = qstr.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) {
mres.match_len--;
@ -3782,7 +3886,7 @@ MatchResult MatchStringAdv::findAux(DocIterator const & cur, int len, bool at_be
int matchend = strend;
size_t strsize = str.size();
if (!opt.ignoreformat) {
while (mres.match_len > 0) {
while (mres.match_len > 1) {
char c = str.at(matchend - 1);
if ((c == '\n') || (c == '}') || (c == '{')) {
mres.match_len--;
@ -3872,8 +3976,79 @@ static bool simple_replace(string &t, string from, string to)
}
#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;
t = lyx::to_utf8(s);
// 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) {
if (pos > 1 && t[pos-1] == '\\' && t[pos-2] == '\\' ) {
// Handle '\\\n'
if (isAlnumASCII(t[pos+1])) {
if (isPrintableNonspace(t[pos+1]) && ((pos < 3) || isPrintableNonspace(t[pos-3]))) {
t.replace(pos-2, 3, " ");
}
else {
// Already a space there
t.replace(pos-2, 3, "");
}
}
@ -3915,20 +4091,30 @@ string MatchStringAdv::normalize(docstring const & s, bool ignore_format) const
}
}
}
// Remove stale empty \emph{}, \textbf{} and similar blocks from latexify
// Kornel: Added textsl, textsf, textit, texttt and noun
// + allow to seach for colored text too
LYXERR(Debug::FINDVERBOSE, "Removing stale empty macros from: " << t);
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);
while (regex_replace(t, t, "\\\\((sub)?(((sub)?section)|paragraph)|part)\\*?(\\{(\\{\\})?\\})+", ""))
LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\emph{}, \\textbf{} macros from: " << t);
while (regex_replace(t, t, "\\\\(foreignlanguage|textcolor|item)\\{[a-z]+\\}(\\{(\\{\\})?\\})+", ""));
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
// Kornel: Added textsl, textsf, textit, texttt and noun
// + allow to seach for colored text too
LYXERR(Debug::FINDVERBOSE, "Removing stale empty macros from: " << t);
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);
while (regex_replace(t, t, "\\\\((sub)?(((sub)?section)|paragraph)|part)\\*?(\\{(\\{\\})?\\})+", ""))
LYXERR(Debug::FINDVERBOSE, " further removing stale empty \\section{}, \\part{}, \\paragraph{} macros from: " << t);
while (regex_replace(t, t, "\\\\(foreignlanguage|textcolor|item)\\{[a-z]+\\}(\\{(\\{\\})?\\})+", ""));
}
return t;
}
docstring stringifyFromCursor(DocIterator const & cur, int len)
{
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(encodings.fromLyXName("utf8"));
runparams.nice = true;
runparams.flavor = Flavor::XeTeX;
runparams.linelen = 10000; //lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
setFindParams(runparams);
int option = AS_STR_INSETS | AS_STR_PLAINTEXT;
if (ignoreFormats.getDeleted()) {
option |= AS_STR_SKIPDELETE;
runparams.for_search = OutputParams::SearchWithoutDeleted;
runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
}
else {
runparams.for_search = OutputParams::SearchWithDeleted;
runparams.find_set_feature(OutputParams::SearchWithDeleted);
}
if (ignoreFormats.getNonContent()) {
runparams.for_search |= OutputParams::SearchNonOutput;
runparams.find_add_feature(OutputParams::SearchNonOutput);
}
LYXERR(Debug::FINDVERBOSE, "Stringifying with cur: "
<< cur << ", from pos: " << cur.pos() << ", end: " << end);
docstring res = from_utf8(latexNamesToUtf8(par.asString(cur.pos(), end,
option,
&runparams)));
LYXERR(Debug::FIND, "Stringified text from pos(" << cur.pos() << ") len(" << len << "): " << res);
&runparams), false));
LYXERR(Debug::FINDVERBOSE|Debug::FIND, "Stringified text from pos(" << cur.pos() << ") len(" << len << "): " << res);
return res;
} else if (cur.inMathed()) {
CursorSlice cs = cur.top();
@ -3973,7 +4156,7 @@ docstring stringifyFromCursor(DocIterator const & cur, int len)
MathData md2;
for (MathData::const_iterator it = md.begin() + cs.pos(); it != it_end; ++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);
return res;
}
@ -3999,18 +4182,15 @@ docstring latexifyFromCursor(DocIterator const & cur, int len)
//OutputParams runparams(&buf.params().encoding());
OutputParams runparams(encodings.fromLyXName("utf8"));
runparams.nice = false;
runparams.flavor = Flavor::XeTeX;
runparams.linelen = 8000; //lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
setFindParams(runparams);
if (ignoreFormats.getDeleted()) {
runparams.for_search = OutputParams::SearchWithoutDeleted;
runparams.find_set_feature(OutputParams::SearchWithoutDeleted);
}
else {
runparams.for_search = OutputParams::SearchWithDeleted;
runparams.find_set_feature(OutputParams::SearchWithDeleted);
}
if (ignoreFormats.getNonContent()) {
runparams.for_search |= OutputParams::SearchNonOutput;
runparams.find_add_feature(OutputParams::SearchNonOutput);
}
if (cur.inTexted()) {
@ -4020,7 +4200,7 @@ docstring latexifyFromCursor(DocIterator const & cur, int len)
endpos = cur.pos() + len;
TeXOnePar(buf, *cur.innerText(), cur.pit(), os, runparams,
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());
} else if (cur.inMathed()) {
// 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(encodings.fromLyXName("utf8"));
runparams.nice = false;
runparams.flavor = Flavor::XeTeX;
runparams.linelen = 8000; //lyxrc.plaintext_linelen;
runparams.dryrun = true;
setFindParams(runparams);
TeXOnePar(repl_buffer, repl_buffer.text(), 0, os, runparams, string(), -1, -1, true);
//repl_buffer.getSourceCode(ods, 0, repl_buffer.paragraphs().size(), false);
docstring repl_latex = ods.str();

View File

@ -2359,10 +2359,10 @@ int InsetMathHull::plaintext(odocstringstream & os,
Encoding const * const enc = encodings.fromLyXName("utf8");
TeXMathStream::OutputType ot;
if (op.for_search == OutputParams::NoSearch)
ot = TeXMathStream::wsDefault;
else
if (op.find_effective())
ot = TeXMathStream::wsSearchAdv;
else
ot = TeXMathStream::wsDefault;
// Fix Bug #6139
if (type_ == hullRegexp) {
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
{
TeXMathStream::OutputType ot;
if (runparams.for_search != OutputParams::NoSearch)
if (runparams.find_effective())
ot = TeXMathStream::wsSearchAdv;
else if (runparams.dryrun)
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
// been deleted with ct and changes are not output.
bool output_changes;
if (runparams.for_search == OutputParams::NoSearch)
if (!runparams.find_effective())
output_changes = buf.params().output_changes;
else
output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0);
output_changes = runparams.find_with_deleted();
if (size_t(pit + 1) < paragraphs.size()) {
ParagraphList::const_iterator nextpar = paragraphs.iterator_at(pit + 1);
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
os << "\\endarguments{}";
}
@ -746,7 +746,7 @@ void parStartCommand(Paragraph const & par, otexstream & os,
break;
case LATEX_ITEM_ENVIRONMENT:
case LATEX_LIST_ENVIRONMENT:
if (runparams.for_search != OutputParams::NoSearch) {
if (runparams.find_effective()) {
os << "\\" + style.itemcommand() << "{" << style.latexname() << "}";
}
else {
@ -758,7 +758,7 @@ void parStartCommand(Paragraph const & par, otexstream & os,
}
break;
case LATEX_ENVIRONMENT:
if (runparams.for_search != OutputParams::NoSearch) {
if (runparams.find_effective()) {
os << "\\latexenvironment{" << style.latexname() << "}{";
}
break;
@ -796,7 +796,7 @@ void TeXOnePar(Buffer const & buf,
// Do not output empty commands if the whole paragraph has
// 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)
return;
@ -936,7 +936,7 @@ void TeXOnePar(Buffer const & buf,
bool const have_prior_nptpar =
prior_nontitle_par && !prior_nontitle_par->isPassThru();
Language const * const prev_language =
runparams_in.for_search != OutputParams::NoSearch
runparams_in.find_effective()
? languages.getLanguage("ignore")
: (have_prior_nptpar)
? (use_prev_env_language
@ -988,7 +988,7 @@ void TeXOnePar(Buffer const & buf,
&& !(have_prior_nptpar
&& (prev_language->rightToLeft() != par_language->rightToLeft()));
bool const localswitch =
(runparams_in.for_search != OutputParams::NoSearch
(runparams_in.find_effective()
|| text.inset().forceLocalFontSwitch()
|| (using_begin_end && text.inset().forcePlainLayout())
|| in_polyglossia_rtl_env)
@ -1003,7 +1003,7 @@ void TeXOnePar(Buffer const & buf,
bool const localswitch_needed = localswitch && par_lang != outer_lang;
// 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()
&& !(style.isEnvironment()
&& (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)
if ((runparams.encoding->package() != Encoding::CJK
|| bparams.useNonTeXFonts
|| (runparams.for_search != OutputParams::NoSearch))
|| runparams.find_effective())
&& (par_lang != openLanguageName(state) || localswitch || intitle_command)
&& !par_lang.empty()) {
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
if ((font.language()->encoding()->package() != Encoding::CJK)
|| bparams.useNonTeXFonts
|| (runparams_in.for_search != OutputParams::NoSearch)) {
|| runparams_in.find_effective()) {
if (lang_end_command.empty()) {
// If this is a child, we should restore the
// 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
// been deleted with ct and changes are not output.
bool output_changes;
if (runparams.for_search == OutputParams::NoSearch)
if (!runparams.find_effective())
output_changes = bparams.output_changes;
else
output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0);
output_changes = runparams.find_with_deleted();
bool const lastpar = size_t(pit + 1) >= paragraphs.size();
if (!lastpar) {
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::none
|| newEnc.package() == Encoding::none
|| (runparams.for_search != OutputParams::NoSearch))
|| runparams.find_effective())
return make_pair(false, 0);
// FIXME We ignore encoding switches from/to encodings that do
// neither support the inputenc package nor the CJK package here.