※2023.3.16 よりよい方法を見つけたので加筆修正しました。
おきもち
論文の一部をDeepLなどの翻訳サイトにコピペする際に、
- 引用数字がテキストに混ざる
- 変な改行が入る(特にChromeでPDFからコピーするとき)
- 単語がハイフンで分割して改行されている
といったことがよく起こり、正しく翻訳されなかったり、文章丸ごとすっ飛ばされることがある。
→手作業で調整するのは面倒くさいので、正規表現で消したいな〜〜
ということでやりました。
Automatorの設定
ワークフローの設定
受け取る項目:テキスト
検索対象:すべてのアプリケーション
選択されたテキストを出力で置き換える:チェックを入れる
ワークフローの中身:「シェルスクリプトを実行」を左側のサイドメニューからドラッグ&ドロップ
ワークフローの名前はそのまま使用時に選択する項目名になります。
シェルスクリプトの設定
- シェル:
/usr/local/bin/python3
- 入力の引き渡し:引数として
シェルスクリプトのコード
import re
import sys
# step 1
res = re.sub(r'([.,;:])\[?\d+\]?(?:[,-]\s?\[?\d+\]?)*\s?([A-Za-z])', r'\1\2', sys.argv[1].strip() + ' ')
# step 2
res = re.sub(r'-\s', '', res)
res = re.sub(r'([^,.])\n(.)', r'\1 \2', res)
print(res)
説明
re.sub(pattern, repl, text)
text において pattern にマッチする文字列を repl に置換する
Step 1
引用文献の参照を削除する。
This is a pen.1 That...
This is a pen.[2] That...
This is a pen.3,4 That...
This is a pen.[5-6] That...
This is a pen.7That...
Step 2
- 変な改行をなくす(単語と単語の間が改行のみの場合)
- 単語の分割を元に戻す(アルファベットとアルファベットの間がハイフンのみの場合)
ショートカット設定
- macのシステム設定→キーボード→キーボードショートカット
- サービス→(クイックアクションの名前)→ショートカットを設定
使い方
- テキストをコピーして、DeepLのアプリケーションの入力窓に貼り付ける。
- 貼り付けたテキストを全選択→右クリック→「サービス」→ワークフローを選択