С документами, распределенными по нескольким проектам Overleaf

С документами, распределенными по нескольким проектам Overleaf

Я новичок в Latex и в настоящее время использую Overleaf для управления файлами Latex. Вот моя проблема: у меня есть несколько проектов в Overleaf, каждый из которых посвящен определенной теме. Я хочу создать еще один проект, который каким-то образом считывает все другие проекты и получает количество страниц в каждом проекте (страницы связанного файла PDF). Этот новый проект служит счетчиком страниц, отслеживая длину всех других проектов. Есть ли простой способ сделать это?

Кроме того, если это невозможно в Overleaf, но просто в Texstudio или любом локальном редакторе tex, пожалуйста, дайте мне знать.

решение1

В любой современной системе TeX, если вы используете движок pdfTeX (который используется по умолчанию в Overleaf), вы можете распечатать количество страниц внешнего PDF-файла с помощью следующего макроса:

\def\numberofpages#1{\pdfximage{#1}\the\pdflastximagepages}

где аргумент — относительный путь к рассматриваемому PDF-файлу. Версии для других движков есть наПолучить количество страниц внешнего PDF-файла. Эта часть не относится только к Overleaf, вы можете использовать ее в своем локальном дистрибутиве TeX, если хотите.


С документами, распределенными по нескольким проектам Overleaf

Хитрость в Overleaf (полное раскрытие информации: я работаю в службе поддержки в Overleaf.) заключается в том, чтобы получить доступ к файлу PDF из других проектов в рамках вашего сводного проекта, который подсчитывает страницы (назовем его сводным проектом). Это можно сделать, включив выходные файлы других проектов в качестве новых файлов в ваш сводный проект.

Я бы не рекомендовал этого делать, поскольку это требует постоянного обновления всех внешних файлов.Но если вам это действительно необходимо, это можно сделать.

Откройте проект резюме, затем выберите "Новый файл" -> "Из другого проекта". Затем выберите проект, в котором вы хотите посчитать страницы. В раскрывающемся списке "Выберите файл" нажмите "выбрать из выходных файлов", а затем выберите output.pdf.

введите описание изображения здесь

Затем выберите подходящее имя для выходного PDF-файла в сводном проекте. (Оно должно быть уникальным, если вы хотите подсчитать страницы нескольких внешних страниц.)

Затем определите \numberofpagesмакрос, указанный выше, где-нибудь в преамбуле вашего проекта резюме. Допустим, я ввожу внешний PDF с именем файла PaperA.pdf, затем я могу напечатать его количество страниц в любом месте проекта резюме с помощью

\numberofpages{PaperA.pdf}

Предупреждение заключается в том, что при редактировании других проектов и возврате к сводному проекту вам необходимо не забыть «Обновить» каждый из ваших внешних PDF-файлов с помощью кнопки, которая будет отображаться на каждом внешнем PDF-файле, добавляемом вами в сводный проект:

введите описание изображения здесь

Из-за архитектуры Overleaf эти внешние файлы не могут обновляться автоматически при изменении другого проекта. Это необходимо делать вручную с помощью кнопки «Обновить».


С несколькими документами в одном проекте Overleaf

Если у вас есть несколько документов в одном проекте Overleaf, это можно сделать более автоматически с помощью некоторой комбинации xr-like кода и этого \numberofpagesмакроса или lastpageкак Джон упомянул в комментарии. Но есть и другие компромиссы с этим методом на Overleaf, в зависимости от того, что именно у вас есть в каждом из этих других документов. См.Могу ли я выбрать, какой файл будет основным tex-файлом в проекте на Overleaf?для получения дополнительной информации о компиляции нескольких документов в рамках одного проекта Overleaf.

Если вы в конечном итоге объедините несколько документов в один проект Overleaf, в этой справочной статье показано, как использовать latexmkrcфайл в Overleaf для запуска компиляции других файлов в рамках одного проекта Overleaf:Перекрестная ссылка с пакетом xr в Overleaf. В этой статье об этом говорится с точки зрения использования пакета xr, но тот же подход можно использовать для получения обновленного PDF-файла в области выходных файлов проекта, чтобы использовать его с макросом, \numberofpagesописанным выше.

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