|
|
1.1 root 1: awk '
2: /{\\(em|sl)[ a-zA-Z]*/ {
3: save=$0
4: sub(/{\\(em|sl)/,"XX",$0)
5: i=index($0,"XX")
6: string = substr(save,i)
7: save=string
8: left=gsub(/{\\(em|sl)/,"{",save)
9: right=gsub(/}/,"}",save)
10: if(right == 0){
11: getline
12: string = string " " $0
13: right=gsub(/}/,"}",string)
14: save=string
15: left = gsub(/{\\(em|sl)/,"{", save)
16: }
17: if(left == 1){
18: findterm(string)
19: next
20: }
21: else {
22: for(j=1;j<=left;j++){
23: findterm(string)
24: sub(/{\\(em|sl)/,"YY",string)
25: save=string
26: sub(/{\\(em|sl)/,"XX",save)
27: i=index(save,"XX")
28: string = substr(string,i)
29: }
30: }
31: }
32: function findterm(string){
33: num = split(string,a," ")
34: term = a[1]
35: for(i=2;i<=num;i++){
36: term = term " " a[i]
37: if(term ~ /}/){
38: if(i > 2 || term ~ /[,\.]/)break
39: if(length(a[i+1]) > 3 && a[i+1] !~ /\(/){
40: term = term " " a[i+1]
41: break
42: }
43: else break
44: }
45: }
46: sub(/[\.,:;]/, "", term)
47: print term
48: }' $1.tex
49:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.