¿Copiar y pegar automatizado?

¿Copiar y pegar automatizado?

Encontré un programa que puede convertir PDF a LaTeX, por lo que tengo .texarchivos de varios libros de texto de matemáticas. Quiero hacer una lista de teoremas del libro, por lo que he estado copiando y pegando manualmente desde el .texarchivo. ¿Hay alguna manera de automatizar este proceso? Por ejemplo, podría copiar cada línea/párrafo que comience con la palabra teorema. Específicamente, estoy usando LyX.

Respuesta1

Puede que esto no funcione bien con LyX (no lo he probado), pero aquí hay una solución para eliminar entornos específicos de un archivo de origen a un archivo de destino. Definir la función:

(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

y simplemente aplíquelo ( M-x **strip-stuff) dentro de su archivo.

He publicado un vídeo de ejemplo de este funcionamiento.en Youtube. Demuestra cómo aplicar la función a varios archivos automáticamente usando una simple macro de teclado.

Respuesta2

Esta no es una pregunta relacionada con TeX. Si desea cortar y pegar sólo unos pocos párrafos, deberá familiarizarse con un editor de texto serio. Utilizo nvi, pero normalmente querrás comprobar Vim y Emacs antes de considerar otros editores. Para la automatización masiva, querrá utilizar la lista para aprender sed (editor de transmisión) y script de shell o algún tipo de lenguaje de scripting (me viene a la mente Perl, Python). Se supone que aprende expresiones regulares.

Tenga en cuenta que la falta de un lenguaje de programación nativo hará que el sistema operativo Windows sea inútil para cualquier procesamiento de texto serio, por lo que tendrá que utilizar algún tipo de sistema operativo UNIX o similar a UNIX.

Descargo de responsabilidad: escuché sobre PowerShell para Windows, pero nunca hice nada serio con ese sistema operativo.

información relacionada