
Ich habe ein Programm gefunden, das PDF in LaTeX konvertieren kann, und habe daher .tex
Dateien von verschiedenen Mathematiklehrbüchern. Ich möchte eine Liste mit Theoremen aus dem Buch erstellen und habe daher manuell aus der .tex
Datei kopiert und eingefügt. Gibt es eine Möglichkeit, diesen Vorgang zu automatisieren? Ich könnte beispielsweise jede Zeile/jeden Absatz kopieren, der mit dem Wort Theorem beginnt. Genauer gesagt verwende ich LyX.
Antwort1
Das funktioniert möglicherweise nicht gut mit LyX (ich habe es nicht getestet), aber hier ist eine Lösung, um bestimmte Umgebungen aus einer Quelldatei in eine Zieldatei zu entfernen. Definieren Sie die Funktion:
(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
und wenden Sie es einfach ( M-x **strip-stuff
) in Ihrer Datei an.
Ich habe ein Videobeispiel dafür gepostet, wie das funktioniertauf Youtube. Es zeigt, wie die Funktion mithilfe eines einfachen Tastaturmakros automatisch auf mehrere Dateien angewendet wird.
Antwort2
Dies ist keine TeX-bezogene Frage. Wenn Sie nur ein paar Absätze ausschneiden und einfügen möchten, sollten Sie sich mit einem seriösen Texteditor vertraut machen. Ich verwende nvi, aber normalerweise sollten Sie Vim und Emacs ausprobieren, bevor Sie andere Editoren in Betracht ziehen. Für die Massenautomatisierung sollten Sie ganz oben auf der Liste stehen, um sed (Streaming-Editor) und Shell-Skripte oder eine Art Skriptsprache (Perl, Python fallen mir ein) zu lernen. Das Erlernen regulärer Ausdrücke wird vorausgesetzt.
Beachten Sie, dass das Fehlen einer nativen Skriptsprache das Windows-Betriebssystem für die ernsthafte Textverarbeitung unbrauchbar macht, sodass Sie ein UNIX- oder UNIX-ähnliches Betriebssystem verwenden müssen.
Haftungsausschluss: Ich habe von PowerShell für Windows gehört, aber nie wirklich etwas Ernsthaftes mit diesem Betriebssystem gemacht.