
При записи математических результатов я часто записываю несколько квазидоказательств, прежде чем принять решение о фактической структуре. Тем не менее, я предпочитаю сохранять эти альтернативные наброски в качестве справочного материала на случай, если я обнаружу проблему с моим основным доказательством, но таким образом, чтобы не загромождать мой файл или каталог.
Самый простой способ добиться этого в одном документе — просто переместить этот материал ниже строки \end{document}, после чего LaTeX его молча проигнорирует. Однако теперь, когда я работаю над большим проектом, я использую команды \include{} для каждого раздела и теперь могу больше использовать этот обходной путь. Я знаю, что могу закомментировать (т. е. поставить перед каждой строкой символ %) этот дополнительный материал, но он загромождает весь файл. Я знаю, что могу также переместить все это в другой файл, но это слишком хлопотно, учитывая, что мне обычно этот материал больше не нужен (а если и нужен, то я предпочту просто поискать в конце текущего документа).
Кто-нибудь знает команду типа "\end{include}", которая бы приказала компилятору молча игнорировать все, что осталось в текущем файле?
Пример.В одном файле мой рабочий процесс выглядит примерно так: сначала я записываю несколько вариантов, которые приходят мне в голову, например:
\begin{document}
sketchA
sketchB
sketchC
\end{document}
Таким образом, я всегда могу прочитать каждый набросок с полным форматированием LaTeX. Затем, скажем, я останавливаюсь на варианте C, печатаю это красиво и перемещаю остальное под команду \end{document}:
\begin{document}
niceC
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sketchA
sketchB
Теперь, если я когда-нибудь обнаружу большую ошибку в niceC, я не потеряю свои предыдущие идеи, и этот процесс не потребует от меня дополнительных усилий.
Если все это происходит в файле, которыйвходв другом документе, однако, у меня сейчас нет такой же простой, свободной от беспорядка альтернативы, которая не требует переключения файлов. И мне не очень нравится альтернатива "комментирования", потому что в sketchA уже могут быть некоторые закомментированные строки, и если я закомментирую комментарии, я всегда рискую случайно раскомментировать слишком много раз, когда захочу восстановить старые вещи.
Итак, мой вопрос: есть ли команда \X, которая будет игнорировать часть эскизов, если мой входной файл выглядит следующим образом?
niceC
\X
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sketchA
sketchB
?
решение1
Используйте команду `\endinput', чтобы показать явный конец файла. Компилятор LaTeX не будет ничего читать после этой команды. Для ясности я бы рекомендовал вам использовать ее следующим образом
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput %%%%%%%%%%%%%%%%% Every thing ignored after this line
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
решение2
Если вы поместите свои различные эскизы в отдельные файлы, вы сможете вводить их по запросу:
\documentclass{article}
\usepackage{tikz}
\newcommand{\MultInput}[2]{%
\foreach \i in {#1} {%
\pgfmathparse{{#2}[\i-1]}%
\input{\pgfmathresult}}%
}
\begin{document}
% inputs sketchB.tex
\MultInput{2}{"sketchA","sketchB","sketchC"}
% inputs sketchC.tex then sketchA.tex
\MultInput{3,1}{"sketchA","sketchB","sketchC"}
\end{document}