\importonly для обработки только одного импорта?

\importonly для обработки только одного импорта?

Я составляю большой документ и вместо использования include/input использую команду \subimport*из importпакета. Это позволяет мне очень легко заботиться о родственных путях.

Однако, приятно то \include, что я могу использовать \includeonlyтолько для включения определенных файлов, не нарушая ссылок. Есть ли похожая команда для \subimport?

редактировать

Я пытаюсь собрать код, который исправит это, но мои знания LaTeX действительно очень ограничены. Я написал что-то странное, похожее на псевдокод, может, это поможет?

\makeatletter
\AtBeginDocument{%
  \let\origsubimport\subimport
  \newcommand\subimportonly[1]{\let\somevar=#1}
  \renewcommand\subimport[1]{\@ifstar
                             if #1 == letvar, use origsubimport*; 
                             o/w just include aux?
   }}
\makeatother

решение1

Обновите все экземпляры на \subimportи \subincludefromудалите расширение «.tex» из пути.

Например, это использование \subimport:

\begin{document}
\subimport{intro/}{intro.tex}
\subimport{chap1/}{chap1.tex}
\subimport{discussion/}{discussion.tex}
\end{document}

Будет выглядеть так:

\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}

После того, как вы выполнили компиляцию хотя бы один раз и теперь хотите включить только обсуждение (например), вы можете добавить \includeonlyк преамбуле, например:

\includeonly{discussion}
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}

И документ будет включать только discussion.tex. Это ускоряет цикл редактирования-компиляции-просмотра, не включая разделы, над которыми вы не работаете, но использует файлы *.aux для intro.tex и chap1.tex, чтобы предотвратить поломку ссылок.

Спасибо за комментарий @touhami,этот ответ на вопрос «Ускорить компиляцию, (предварительно)компилировав главы по отдельности?»иэтот ответ на вопрос Как сделать иерархические включения с локальными путями?за помощь в соединении точек.

решение2

На момент написания статьисуществующий ответне работает ни на одном, Debian/TeXLive 2019 (LaTeX2e <2020-02-02> patch level 5), import 6.0ни на Windows/MiKTeX 2.9 (LaTeX2e <2019-10-01> patch level 3), import 6.1. Оба полностью обновлены.

Всего два дня назад, 01.04.2020, 6.2была выпущена версиядоступно на CTAN. При использовании этого styфайла вручную проблема не была устранена.

Между тем, мне пришлось выпустить (заимствуя пример @Paul-Calcraft)

\includeonly{discussion/discussion}
\begin{document}
\subincludefrom{intro/}{intro}
\subincludefrom{chap1/}{chap1}
\subincludefrom{discussion/}{discussion}
\end{document}

То есть, с полным путем в includeonly. В противном случае возникает весьма неожиданное warning (pdf backend): no pages of output.приветствие, поскольку все содержимое документа находится внутри subincludefromкоманд.

Связанный контент