自動コピー&ペースト?

自動コピー&ペースト?

PDF を LaTeX に変換できるプログラムを見つけたので、.texさまざまな数学の教科書のファイルを入手しました。この本の定理のリストを作成したいので、.texファイルから手動でコピーして貼り付けています。このプロセスを自動化する方法はありますか? たとえば、定理という単語で始まるすべての行/段落をコピーできます。具体的には、LyX を使用しています。

答え1

これは LyX ではうまく動作しない可能性があります (テストしていません) が、ソース ファイルから特定の環境を削除して宛先ファイルに取り込む解決策は次のとおりです。関数を定義します。

(require 'cl) ; place your cursor after this paren and pres C-x C-e

(defun **strip-stuff (file &optional environments)
  "Takes the current file and strips every environment from
`ENVIRONMENTS` into `FILE`."
  (interactive "FFile name: \nxList of Environments (\"one\" \"two\" \"etc\"): ")
  (if (every 'stringp environments)
      (progn
        (beginning-of-buffer)
        (let ((search-regex (concat "\\\\begin{"
                                    (mapconcat 'identity
                                               environments
                                               "\\|")
                                    "}")))
          (while (search-forward-regexp search-regex nil t)
            (LaTeX-mark-environment)
            (copy-region-as-kill (point) (mark))
            (save-excursion
              (find-file file)
              (end-of-buffer)
              (yank)
              (newline 2)
              (save-buffer)
              (previous-buffer))
            (exchange-point-and-mark)))
        (message "Strip complete.  Check %s for the output." file))
    (message (concat "The environment variable you provided"
                     " was not a list of strings.")))) ; here too

M-x **strip-stuffそして、それをファイル内に適用するだけです ( )。

この動作例のビデオを投稿しましたユーチューブで簡単なキーボード マクロを使用して、複数のファイルに関数を自動的に適用する方法を示します。

答え2

これは TeX 関連の質問ではありません。数段落​​だけを切り取って貼り付けたいのであれば、本格的なテキスト エディターに慣れておく必要があります。私は nvi を使用していますが、通常は他のエディターを検討する前に Vim と Emacs をチェックすることをお勧めします。大量の自動化を行うには、まず sed (ストリーミング エディター) とシェル スクリプト、または何らかのスクリプト言語 (Perl、Python が思い浮かびます) を学習する必要があります。正規表現を学習していることが前提となります。

ネイティブ スクリプト言語がないため、Windows OS は本格的なテキスト処理には役に立たないため、何らかの UNIX または UNIX ライクな OS を使用する必要があります。

免責事項: Windows 用の PowerShell については聞いたことがありますが、その OS で実際に何か本格的なことをしたことはありません。

関連情報