
In proofing texts I have found that much of the work is awkward and repetitive keystrokes to: Combine words broken across lines Insert non-ASCII 7 letters (umlauts, accents, ...) Insert page numbers {345} Insert illustration tags, footnote tags, italics,.... After experimenting with AutoHotKey (www.autohotkey.com) I have developed a script which reduces many of these tasks to a single convenient keystroke, and in some cases automates the task, as in keeping track of page numbers. The attached sample is what I am using on the current book and represents only a trivial exploitation of the tool. I hope you find this useful. The syntax is a little tricky; (the help files are good), but the results are worth the effort. I have also started using Dragon "Naturally Speaking" and have found it ideal for replacing scannos. By controlling position in the document using the mouse in my right hand, and the "AutoHotKeys" with my left hand I can correct most errors. The few remaining are corrected by selecting the erroneous text with the mouse and speaking the correction. This works well for words, phrases and whole sections. My typing does not introduce new spelling errors. Even single letters ("press x") works well. I only need to type ambiguous or unusual words that I cannot pronounce or Dragon does not recognize. This system at least doubles my production because I don't have to take my eyes off the text to position my hands for corrections or contorted control sequences. I use EditPlus; other editors may require different control keys Peace and Light, Don Kostuch ============== Comments ================== ";" begins one line comment !1:: ; Alt 1 pressed by user SendInput [Illustration: ] ; Substitude " [Illustration: ]" at insertion point return ; End substitution ; {} indicate key names, not text; {Enter} mean press "Enter" Key. as in SendInput {Enter}{Down}{Backspace}{Backspace}{Backspace} ====================Sample AutohotKey Script============================ pagenum=415 ; Define global variable !1:: SendInput [Illustration: ] return ;----------------------- ; Common non-Ascii7 characters and inserts !A:: SendInput â return ;----------------------- !B:: SendInput ä return ;----------------------- !C:: SendInput ç return ;----------------------- !D:: SendInput è return ;----------------------- !E:: SendInput é return ;----------------------- !F:: SendInput {Space}{Space}[Footnote : ] return ;----------------------- !G:: SendInput [Greek text] return ;----------------------- !N:: SendInput [Note return ;----------------------- !O:: SendInput ö return ;----------------------- !P:: SendInput {{}%pagenum%{}} ; Insert pagenumber within [{} pagenum++ ; Update page number return ;----------------------- !U:: SendInput ü return ;----------------------- ; These keys are selected so that the most frequently ; used functions are available without moving my left hand. ; The first three fingers are positioned over ; F1(wrap word down), F2(wrap word up), F3(delete). ; The first finger (F3) moves to F4("), F5(--), F6(Italic) ; F7(!), F8(?) as needed. ;----------------------- ; Assumes first fragment ends in hyphen+space ; Move word fragment down to next line (from cursor to end) deleting hyphen and space ; Select concatenated word F1:: ; Wrap hyphenated word to next line SendInput {Enter}{Down}{Backspace}{Backspace}{Backspace} KeyWait, F1 ; One insertion per key press of F1 return ;----------------------- ; Assumes first fragment ends in hyphen+space ; Move word fragment up to previous line (from cursor to beginning) deleting hyphen and space ; Select following word F2:: ; Wrap hyphenated word to previous line SendInput {Enter}{Up}{Backspace}{Backspace}{Backspace}{End}{Right}^w KeyWait, F2 return ;----------------------- F3:: ; Delete selected text Sendinput {Delete} KeyWait, F3 return ;----------------------- F4:: ; insert double quote (") SendInput " KeyWait, F4 return ;----------------------- F5:: ; insert Mdash SendInput -- KeyWait, F5 return ;----------------------- F6:: ; mark selected text as Italics (with underscore) SendInput ^c Sleep, 50 ; wait for system SendInput _ ; Open italics right = %clipboard% ; this loop renders newlines correctly ; trailing "!" are lost (???) ; (the native logic duplicates newlines) loop { nl := RegExMatch( right , "\n" ) ; locate newline if ( nl = 0 ) ; no newline--output remaining text break left := SubStr( right , 1, nl-1 ) ; before next newline SendInput %left% right := SubStr( right , nl+1) ; after next newline } SendInput %right%_ ; end italics KeyWait, F6 return ;----------------------- F7:: ; insert ! SendInput {!} KeyWait, F7 return ;----------------------- F8:: ; insert ? SendInput {?} KeyWait, F8 return ;----------------------- ; Move to top of page in PDF source document. ; (These documents are two column format.) ; Adjust numbers for your specific document and ; window size. Escape:: SendInput {PgUp 2} SendInput {Up 5} return
participants (1)
-
Don Kostuch