![Параметризованное включение подфайлов](https://rvso.com/image/286983/%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5%20%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%BE%D0%B4%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2.png)
Я готовлю резюме с использованием LaTeX, в основном для легкой настройки. В частности, я хочу иметь возможность генерировать разные выходные данные из одного и того же входного файла, изменяя несколько параметров.
Одно из таких требований: определенные фрагменты текста должны быть выбраны в соответствии с одним из входных параметров ("dev"/"training"/"generic"). Я могу иметь фрагменты текста, соответствующие каждому параметру, в отдельном файле .tex ("dev_summary.tex", "training_summary.tex" и т. д.) и \input
их в соответствии с параметром. В настоящее время я реализовал это с помощью:
\newcommand{\whoami}[1]{trainer#1}
и позже
\input{\whoami{_summary.tex}}
Теперь мне просто нужно изменить строку "trainer" в новой командной строке всякий раз, когда я хочу изменить первый параметр. Однако, есть ли лучший способ, где я могу сохранить этот файл неизмененным и вместо этого передать это изменение как аргумент командной строки?
решение1
Есть несколько способов задать такие вещи в командной строке. Возможно, самый простой — немного изменить вводимые данные, чтобы вместо dev_summary.tex
них были подкаталоги/папки и т. д. dev
, trainer
а затемdev/summary.tex
Тогда вашему основному файлу просто нужно
\input{summary}
и он введет первый summary.tex
в вашем пути ввода, поэтому командная строка
TEXINPUTS=dev: pdflatex mainfile
будет вводить dev/summary.tex
и
TEXINPUTS=trainer: pdflatex mainfile
будет вводитьtrainer/summary.tex
(Предполагается, что это командная строка в стиле Unix, в Windows вам, возможно, придется выполнить настройку переменной среды отдельной командой, не уверен)