数学環境内の文字を太字で置き換えようとしています。残念ながら、これらの文字はテキストの残りの部分でも発生します。Regexpを使用してラテックスファイル内の数式を置き換える
マイテキスト: 内部
text text text text Gtext G G text ....
\begin{align}
f&=gG \\
G &= tG
\end{align}
text textG text $G$ text.
すべてのG \ {揃える}始める\エンド{揃える} と $ G $ が
に置き換えされなければならないドル記号の間\ mathbf {G}。
その他は変更しないでください。
私はすべてのアイデアに感謝:)
はあなたに
BIG EDITありがとう:これまでのところ を、私は、stackoverflowので助言や他のいくつかの発見のおかげで、作業プログラム(パイソン)を持っています。
しかし、プログラムがf.e \クワッド \ にqは広告を "置き換え" に置き換えられます。 "u"をと置き換えたい場合は、 "置き換える"と置き換えてください。
うまくいけば、私は右の書式しまっfrom tempfile import mkstemp
from shutil import move
from os import remove, close
import shutil
def replace(file, outputfile, pattern, subst, boundary1, boundary2):
#Create temp file
fh, abs_path = mkstemp()
newfile="tempfile.tmp"
new_file = open(newfile,'w')
old_file = open(file)
inAlign=False
for line in old_file:
if boundary1 in line:
inAlign = True
if inAlign:
print line
print line.replace(pattern, subst)
new_file.write(line.replace(pattern, subst))
else:
new_file.write(line)
if boundary2 in line:
inAlign = False;
#close temp file
new_file.close()
close(fh)
old_file.close()
shutil.move(newfile,outputfile)
replace("texfile.tex","texfile_copy.tex","G", "\\mathbf{G}", "\\begin{align}", "\\end{align}")
...
なぜfind&replaceを使用しないのですか?その仕事は少しですが、結果はあなたが望む通りに正確になります。 – Mica
厳密に「通常の」表現は、ラテックスのような文脈自由言語を解析するほど強力ではないので、確実に行うことはできません。あなたがたぶん数学モードを頻繁に入れ子にしないように、あなたはほとんどのケースを得るヒューリスティックを見つけることができないと言っているわけではありません。 – dmckee
RE:検索と置換を使うのはなぜですか? これは愚かなモンキーなので、 –