
Encontrei um programa que pode converter PDF em LaTeX e, portanto, tenho .tex
arquivos de vários livros de matemática. Quero fazer uma lista de teoremas do livro e, por isso, copio e colo manualmente do .tex
arquivo. Existe alguma maneira de automatizar esse processo? Por exemplo, eu poderia copiar cada linha/parágrafo que começa com a palavra teorema. Especificamente, estou usando LyX.
Responder1
Isso pode não funcionar bem com o LyX (não testei), mas aqui está uma solução para separar ambientes específicos de um arquivo de origem para um arquivo de destino. Defina a função:
(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
e basta aplicá-lo ( M-x **strip-stuff
) dentro do seu arquivo.
Eu postei um vídeo de exemplo disso funcionandono YouTube. Ele demonstra como aplicar a função a vários arquivos automaticamente usando uma macro de teclado simples.
Responder2
Esta não é uma questão relacionada ao TeX. Se quiser recortar e colar apenas alguns parágrafos, você vai querer se familiarizar com um editor de texto sério. Eu uso nvi, mas normalmente você gostaria de verificar o Vim e o Emacs antes de considerar outros editores. Para automação em massa, você vai querer usar a própria lista para aprender sed (editor de streaming) e shell script ou algum tipo de linguagem de script (Perl, Python vem à mente). É assumido o aprendizado de expressões regulares.
Observe que a falta de linguagem de script nativa tornará o sistema operacional Windows inútil para qualquer processamento de texto sério, então você terá que usar algum tipo de sistema operacional UNIX ou semelhante ao UNIX.
Isenção de responsabilidade: ouvi falar do PowerShell para Windows, mas nunca fiz nada sério com esse sistema operacional.