我找到了一个可以将 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,但从未真正用该操作系统做过任何严肃的事情。