From: Tommaso Cucinotta Date: Fri, 21 Aug 2009 16:45:28 +0000 (+0000) Subject: Added Advanced Search manual. X-Git-Tag: 2.0.0~5624 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=724b2c87e8c522beca9136c84096e9733c5a5715;p=features.git Added Advanced Search manual. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31176 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/lib/doc/AdvancedSearch.lyx b/lib/doc/AdvancedSearch.lyx new file mode 100644 index 0000000000..bdc0f34e37 --- /dev/null +++ b/lib/doc/AdvancedSearch.lyx @@ -0,0 +1,369 @@ +#LyX 1.5.0svn created this file. For more info see http://www.lyx.org/ +\lyxformat 276 +\begin_document +\begin_header +\textclass article +\language english +\inputencoding auto +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 +\graphics default +\paperfontsize default +\papersize default +\use_geometry false +\use_amsmath 1 +\use_esint 1 +\cite_engine basic +\use_bibtopic false +\paperorientation portrait +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\author "" +\author "" +\end_header + +\begin_body + +\begin_layout Section +Introduction to the find advanced feature +\end_layout + +\begin_layout Standard +This is an introduction to the find advanced feature of LyX, that is activated + through the [C-S-f] sequence (Ctrl+Shift+f). +\end_layout + +\begin_layout Standard +First, leave the ignore format option +\series bold +checked +\series default +. +\end_layout + +\begin_layout Enumerate +Search for the word +\series bold +about +\series default + and see how it is found both in text mode and in math mode, and both in + emphasized, bold or normal face, and both in section titles and in standard + text. + When finished typing the text to find in the +\noun on +Find... + +\noun default + box, pressing repeatidly +\noun on +[Enter] +\noun default + will search for it forward, while pressing +\noun on +[Shift+Enter] +\noun default + will search backwards. +\end_layout + +\begin_layout Enumerate +Search for some math by typing in the +\noun on +Find... + +\noun default + box a +\begin_inset Formula $x^{2}$ +\end_inset + + in simple math (C-m) mode (you can directly copy it from this text and + paste into the +\noun on +Find... + +\noun default + box), or also something more elaborate like +\begin_inset Formula $\frac{gh}{ij}$ +\end_inset + +. + See how it is found both when alone and when in subformulas and nested + parts of subformulas. +\end_layout + +\begin_layout Standard +Now, uncheck the ignore format option. +\end_layout + +\begin_layout Enumerate +Search for a plain 'about' word and see how emphasized and boldface instances, + as well as the ones in non-standard style, are not found anymore. +\end_layout + +\begin_layout Enumerate +Search for +\emph on +emphasized about +\emph default + or +\series bold +boldface about +\series default + and see how you can find the respective instances with same face only, + and within same text style only (e.g. + in order to find the words in this paragraph, you need to also add an enumerate + style). + Note that e.g. + emphasized text is found not only when alone, but also when it is in a + longer emphasized sentence. +\end_layout + +\begin_layout Enumerate +Search for the word 'about' (again plain face) giving it a Section style + from the style selection dropdown menu, and see how it is found only within + Section titles. + Repeat with the word ' +\emph on +advanced +\emph default +' in emphasized face, with +\noun on +Section +\noun default + style, and see how its corresponding instance is found. +\end_layout + +\begin_layout Enumerate +Search for some math in centered line math (C-S-m) mode, like this +\begin_inset Formula \[ +x^{2}\] + +\end_inset + +and see how only instances of the text within the same kind of environment + are found. +\end_layout + +\begin_layout Subsection +About using regular expressions in the Find... + box +\end_layout + +\begin_layout Standard +Now you can try the regular expression based searching facility. + Users may arbitrarily insert, within text or math material, regexp-mode + insets that allow to enter regular subexpressions. + This is done either through +\noun on +[Insert]->[Regexp] +\noun default + or by typing [C-S-r]. + Characters entered in the +\noun on +[Find...] +\noun default + box within regexp insets are matched according to the regular expression + matching rules +\begin_inset Foot +status collapsed + +\begin_layout Standard +but under the constraint that any subexpression must match a well-formed + LyX text segment, i.e. + when matching LaTeX code, no segments with unbalanced {} braces are allowed + to match subexpressions entered by the user. +\end_layout + +\end_inset + +, while text entered outside regexp insets is matched exactly against the + same text in the document. + Note that it is allowed to cut and paste regexp-mode insets as usual. + In order to try the feature, first leave the ignore format option checked. +\end_layout + +\begin_layout Enumerate +Search for the fraction +\begin_inset Formula $\frac{\regexp{.*}}{mn}$ +\end_inset + +, where the '.*' on the numerator is the match-everything regular expression + that may be added by pressing the +\noun on +[Match...]->[Anything] +\noun default + button, or entering the regexp-mode through C-S-r and by typing '.*'. + See how all fractions with the specified denominator are found. +\end_layout + +\begin_layout Enumerate +Now uncheck the Ignore Format option and search for ' +\series bold +.* +\series default +' in boldface, or ' +\emph on +.* +\emph default +' in emphasized face. + See how, respectively, all boldface and all emphasized text is found. +\end_layout + +\begin_layout Enumerate +Search for a plain '.*' giving it a Section style, and navigate across section + titles (similarly, navigate across enumerated or bulletted lists). +\end_layout + +\begin_layout Enumerate +You can use references to subexpressions as usual, enclosing parts of the + regex expression within round braces '()', and referring back to them through + +\backslash +1, +\backslash +2, etc... + (within either the same or another regexp-mode inset, where a ' +\backslash +' symbol is entered by pressing twice the ' +\backslash +' key). + For example, try searching for ' +\begin_inset Formula \regexp{[\^a-z]([a-z]+)} +\end_inset + + +\begin_inset Formula \regexp{\backslash1} +\end_inset + +' in order to find word repetitions, if any. +\end_layout + +\begin_layout Standard +What follows is just a set of meaningless formulas and sentences useful + for for testing purposes. +\end_layout + +\begin_layout Standard +\begin_inset Formula $y+x+X^{2}+\frac{gh}{ij}-1+x_{j}^{i}+y_{jk}^{ip}+i$ +\end_inset + + and +\begin_inset Formula $z+x_{j}^{i}.$ +\end_inset + + +\end_layout + +\begin_layout Standard +Hi, world ! +\emph on +what +\emph default + about your +\begin_inset Formula $X+y^{2}+\frac{x+x^{2}+\frac{gh}{ij}}{y^{x+x^{2}}+\frac{kl}{mn}}-about$ +\end_inset + + ? +\end_layout + +\begin_layout Standard +\begin_inset Formula \[ +X+y^{2}+\frac{x+x^{2}+\frac{gh}{ij}}{y^{x+x^{2}}+\frac{kl}{mn}}-about\] + +\end_inset + +Hi, universe ! what +\emph on +about +\emph default + my +\begin_inset Formula $c+\frac{kl}{mn}+\frac{\sqrt{\frac{gh}{ij}}}{mn}-\frac{1+\sqrt{\frac{about}{mn}}}{mn}+\textrm{about}$ +\end_inset + + ? +\end_layout + +\begin_layout Section +Conclusion and future work about the find +\emph on +advanced +\emph default + feature +\end_layout + +\begin_layout Standard +This feature seems very useful to me. + Hope others will find it useful as well. + Currently, I'm not really happy with the implementation, because it has + at least quadratic complexity (document size multiplied by maximum paragraph + size, plus regexp matching complexity, if enabled, and infact it is quite + slow), but hopefully that will be fixable by changing the TeXOnePar() function + and simpleTeXOnePar() method, and possibly other TeX related methods. +\end_layout + +\begin_layout Standard +Infact, a DocIterator could be used to keep track of the current position, + and an externally supplied functor could be called at each position providing + the DocIterator and LaTeX string translated so far to the external code. + This would allow to couple each DocIterator state with the position in + the output LaTeX string, allowing to recover the DocIterator positions + after a regexp-based find operation made (only once this time) on translated + LaTeX. +\end_layout + +\begin_layout Standard +Again, a few meaningless sentences useful for testing purposes on about. +\end_layout + +\begin_layout Standard +But +\emph on +what about your +\emph default + health ? +\end_layout + +\begin_layout Standard +But +\series bold +what about your health +\series default + ? +\end_layout + +\begin_layout Itemize +search for plain 'about' +\end_layout + +\begin_layout Itemize +search for +\emph on +emphasized about +\emph default + or +\series bold +boldface about +\end_layout + +\begin_layout Standard +\begin_inset Formula $y+x-x^{2}\cdot2$ +\end_inset + + +\end_layout + +\end_body +\end_document