自动复制和粘贴?

自动复制和粘贴?

我找到了一个可以将 PDF 转换为 LaTeX 的程序,所以我有.tex各种数学教科书的文件。我想列出书中的定理,所以我一直在手动复制和粘贴文件.tex。有什么方法可以自动完成这个过程吗?例如,我可以复制以单词 theorem 开头的每一行/段落。具体来说,我使用的是 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您的文件中()。

我已经发布了一个视频示例在YouTube上. 它演示了如何使用简单的键盘宏自动将功能应用于多个文件。

答案2

这不是与 TeX 相关的问题。如果您只想剪切和粘贴几个段落,您将需要熟悉一个正规的文本编辑器。我使用 nvi,但通常您会希望在考虑其他编辑器之前检查 Vim 和 Emacs。对于大规模自动化,您将希望使用列表中的所有内容来学习 sed(流式编辑器)和 shell 脚本或某种脚本语言(Perl、Python 浮现在脑海中)。假设学习正则表达式。

请注意,缺少本机脚本语言将导致 Windows 操作系统无法进行任何严肃的文本处理,因此您必须使用某种 UNIX 或类似 UNIX 的操作系统。

免责声明:我听说过适用于 Windows 的 PowerShell,但从未真正用该操作系统做过任何严肃的事情。

相关内容