如何将一张练习表分成不同的文件,一个文件只包含一个练习?

如何将一张练习表分成不同的文件,一个文件只包含一个练习?

我有一个大文件,其结构如下:

\begin{exo}
...
\end{exo}

\begin{exo}
...
\end{exo}

我的目标是创建仅包含一个练习的不同文件。我该怎么做?有软件吗?

答案1

Emacs 用户可以执行此功能。

(defun save-environments (env)
  "Collects all the ENV environments (default to EXO) to save them each in a separate file. Replaces each with an \input"
  (interactive
   (list (read-string "Environment: " "exo")))
  (with-current-buffer (buffer-name)
    (let ((env-number 0)
          (file-se (file-name-sans-extension (buffer-name))))
      (goto-char (point-min))
      
      (while
          (search-forward  (format"\\begin{%s}" env) nil t)
        (setq env-number (1+ env-number))
        (LaTeX-mark-environment)
        (kill-region (point) (mark))
        (with-temp-file (format "%s-%s-%d.tex" file-se env  env-number)
          (goto-char (point-min))
          (insert (format "%% %s-%s-%d.tex\n" file-se env env-number)
                  (format "%% From %s.tex \n\n" file-se))
          
          (yank))
        (insert (format "\\input{%s-%s-%d}\n" file-se env env-number))))))

它可以用于任何环境,默认是exo。

答案2

您可以使用标准的 latex 功能(例如导入库)并手动将练习拆分为单个文件。然后import通过子导入使用相对路径,或者仅使用完整路径。

如何使用导入包?

我认为主要问题是将所有命令放入单独的文件中。

但是,如果你希望自动执行此过程,则可能需要使用 Python 之类的脚本语言,并使用类似以下工具执行类似于 Web 抓取的操作特克斯汤

答案3

这实际上不是一个答案,但它可以帮助你。

我使用了下面几段代码来管理写在不同文件中的大量问题。

\documentclass[10pt]{beamer}

\usepackage{pgffor}
\newcommand\nbquest{16}

\newcommand\dirofquest{01-no-parabola}

\begin{document}

\foreach \n in {1,...,\nbquest}{
    \begin{frame}
        \frametitle{Question FLASH no. \n}
    
        \Large\centering
    
        \input{\dirofquest/question-\n.tex}
    \end{frame}
}

\end{document}

相关内容