Regular expressions in TeXWorks
Sometimes you start typing a document and save to a text file, you can't anticipate it to be re-used for another purpose. I have text documents that use only typewriter quotes (single ' and double ") for both left and right. Now I am typesetting a book in LaTeX, and want to re-use these text files. I copy and paste these texts into TeXWorks.
Then I have a big problem. Latex treats left and right quotes as different entities. Single quotation marks are produced in LaTeX using ` and ', double quotation marks are produced by typing `` and ''. On British keyboards, the symbol ` is found on the key adjacent to the number 1. You can also use the " for right double quotes if you wish. That means I have to replace all left quotation marks ' (") with ` (``). For example,
'Alas! how perverse is he!' The Ti said, 'He is disobedient to orders, and tries to injure his peers.'
'What do you mean by "A good man," "A real man?"'
'In the Declaration of T'ang it is said, "Oh sun, when wilt thou expire? We will die together with thee." The people wished for Chieh's death, though they should die with him. Although he had towers, ponds, birds, and animals, how could he have pleasure alone?'
In these three paragraphes, the first paragraph uses only single quotes; the second mixes single and double quotes; and the third mixes single and double quotes plus two apostrophes in 's and T'ang. The former is possessive 's, meaning something belongs to somebody or something, in English we usually add 's to a singular noun and an apostrophe ' to a plural noun; the latter T' is an aspiration symbol.
I want to replace the left sigle or double quotation marks with a ` or ``, but leave possessive 's and aspiration sybbol as it is.
TeXworks is a simple environment for editing, typesetting, and previewing TeX works, comes with MikTeX. Because it's so simple, sometimes it's easy to overlook it's editing power with respect of find and replace. Actually, as TEXworks is built on the base of Qt4, the regular expressions, often referred to as regexp, available are a sub-set of the one found for Qt4.
For example, if you want to replace the vowels (aeiou) by §, you don't need to repeat 5 replace operations. Using regular expressions, five vowels can be defined as a set of characters [aeiou], only one replace operation is needed to accomplish this task.
- \n matches the ASCII line feed character (LF, Unix newline).
- \r matches the ASCII carriage return character (CR).
\n is used in TEXworks. So If one wants to insert at the beginning of some paragraphs separated or not by an empty line the same string, for example \noindent, or \item, one can replace \n\n or \n by \n\n\\noindent or \n\\noindent.
Now, everything is ready to deal my case. A boring and time consuming job become so easy! In the example above, the left single quote appears at the beginning of a paragraph, which means after a line feed \n, or after a white space which is a word boundary; the left double quotes only appears after a white space; possessive 's and aspiration symbol neither near a space nor new line.
To replace the left quotes at the beginning of a paragraph: in the dialogue box Replace ([Ctrl+R]) for Find: I put \n' and in With: \n`. \n< is the code to match a line feed.
To replace the left quotes inside the paragraph, in the dialogue box Replace for Find, I put a space and the quote ( '). A space is typed in literally.