Как НЕ визуализировать часть документа (чистый LaTeX)

Как НЕ визуализировать часть документа (чистый LaTeX)

У меня есть большой файл LaTeX, и я хочу скрыть большую часть его содержимого в PDF, но сохранить исходную нумерацию теорем и т. д. Что-то похожее на display:noneCSS.

Среда commentне помогает, потому что она вообще не обрабатывает контент. Она может быть использована только для сокрытия текста за пределами теорем.

\hphantomили \vphantomне оборачивайте такие среды, как \begin{theorem}.

Если говорить точнее, предположим, что у меня есть следующее:

% I want to hide from here ...
\section{Section 1}
\subsection{Subsection 1.1}
\begin{theorem}
First
\end{theorem}
% ... to here
\begin{theorem}
Second
\end{theorem}

Я хочу видеть только вторую теорему с оригинальной нумерацией в формате PDF: Theorem 1.1.2.

Мой вопрос очень похож наВот этот, но автор этого вопроса сотрудничает с Sage, и принятый ответ, насколько я понимаю, относится только к Sage.

Если универсального способа добиться этого эффекта не существует, я был бы рад, если бы существовали способы скрыть следующие объекты:

  • Названия разделов/подразделов
  • Теоремы/леммы и т.д.
  • Цифры

Я также думал о «перенаправлении» вывода в другой файл (не PDF), но не смог найти решения.

Последней альтернативой было бы«жестко закодировать» номера теорем, но я хочу этого избежать.

решение1

Просто попытка, которая может сработать, если все, что вы хотите исключить, находится в аргументе команды или обернуто в окружение. И если вы точно знаете, что вы хотите исключить.

Левое изображение — без сокрытия, правое — с.

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

Идея состоит в том, чтобы переопределить все команды и среды так, чтобы они поглощали содержимое аргументов, но при этом продолжали выполнять арифметические вычисления.

\documentclass{article}
\usepackage{environ}
\newtheorem{theorem}{Theorem}
\newenvironment{hide}%
  {\renewcommand\section[1]{\refstepcounter{section}}%
   \renewcommand\subsection[1]{\refstepcounter{subsection}}%
   \RenewEnviron{theorem}{\refstepcounter{theorem}}%
  }%
  {}
\begin{document}
% i want to hide from here ...
\begin{hide}
\section{Section 1}
\subsection{Subsection 1.1}
\begin{theorem}
First
\end{theorem}
\end{hide}
% ... to here
\begin{theorem}
Second
\end{theorem}
\subsection{Subsection 1.2}
\section{Section 2}
\begin{theorem}
Third
\end{theorem}
\end{document}

решение2

Если вы запустите этот документ, а затем раскомментируете includeonly и запустите его снова, вы получите одностраничный документ с (только) теоремой 2 на странице 2.

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

\begin{filecontents}{zzzz1.tex}
\section{Section 1}
\subsection{Subsection 1.1}
\begin{theorem}
First
\end{theorem}

\end{filecontents}
\begin{filecontents}{zzzz2.tex}
\begin{theorem}
Second
\end{theorem}
\end{filecontents}

\documentclass{article}
\newtheorem{theorem}{Theorem}

%\includeonly{zzzz2}

\begin{document}
% i want to hide from here ...
\include{zzzz1}
% ... to here
\include{zzzz2}
\end{document}

решение3

Мне нравится ответ gernot, но я уже начал это делать до того, как увидел его, так что могу и опубликовать:

\documentclass{article}
\newif\ifskipstuff

\skipstufffalse
%\skipstufftrue

\usepackage{amsmath}
\begin{document}

\ifskipstuff
    \refstepcounter{section}
    \refstepcounter{subsection}
    \refstepcounter{equation}
\else
    \section{Section 1}
    \subsection{Subsection 1.1}
    \begin{equation}
        First
    \end{equation}
\fi

\section{A Section}
\subsection{Subsection}
\begin{equation}
    Second
\end{equation}

\end{document}

Недостаток в том, что вам нужно вручную увеличивать все счетчики, всегда. Не очень хорошо (особенно если у вас много вещей в предложении \else. Возможно, это можно было бы улучшить (включив \ifskipstuffпроверки в переопределенные среды, возможно, так, чтобы они выполняли свои собственные проверки). Плюс в том, что вы можете глобально задать, хотите ли вы включать свой материал или нет, изменяя между \skipstufffalseи \skipstufftrue, соответственно. Что ж, это может быть плюсом, в зависимости от вашего варианта использования.

\skipstufftrue:

skipstufftrue

\skipstufffalse:

skipstufffalse

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