Изолировать страницу, чтобы отключить заголовок

Изолировать страницу, чтобы отключить заголовок

У меня есть заголовки на каждой странице, которые используются \usepackage{fancyhdr}во всем моем документе, и я хочу отключить их на определенных страницах с большими фигурами. Если я \thispagestyle{empty}правильно использую его, заголовок удаляется, но только на случайной странице. Я думал, что могу применить эффект к нужной странице, поместив \newpageпрямо перед моей фигурой и затем используя \thispagestyle{empty}, но результат все тот же. Мне нужно создать новый .texтолько для фигуры или есть более простой способ сделать это?

В моем main.texдокументе есть \begin{document}, а затем \pagestyle{fancy}, \fancyfoot{}, \lhead{\thepage}, \rhead{\nouppercase{\rightmark}},за которым следуют различные .texдокументы. Глядя на определенный .texдокумент, у меня есть много текста с графикой, вставленной следующим образом:

\begin{figure}
\centering
\hbox{\hspace{-15mm} \includegraphics[scale=0.9]{my-image}}
\caption{my caption}
\label{myfigure}
\end{figure}

Я пробовал ставить \newpagefollowing by \thispagestyle{empty}прямо перед изображением, но оно применяет его к неправильной странице. Я также пробовал, \clearpageкак предлагалось в комментариях, но произошло то же самое.

решение1

Похоже, это работает (хотя мы не знаем ваших \documentclassили каких-либо других решений, полученных методом проб и ошибок):

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

\documentclass{article}

\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{lipsum} % For text

\begin{filecontents}[overwrite]{chapter1.tex}
    \clearpage
    \thispagestyle{empty}
    \begin{figure}[p]
    \centering
    \hbox{\hspace{-15mm} \includegraphics[scale=0.9]{example-image-a}}
    \caption{my caption}
    \label{myfigure}
    \end{figure}
\end{filecontents}

\fancyhead{}
\fancyfoot{}
\fancyhead[L]{\thepage}
\fancyhead[R]{\nouppercase{\rightmark}}
\renewcommand{\headrulewidth}{0pt}

\pagestyle{fancy}

\begin{document}

\section{Test}
\lipsum[1-8]

\include{chapter1}

\lipsum[1-8]

\end{document}

Приведенные ниже части filecontents— это всего лишь пример одного из .texсозданных мной файлов.


Чтобы разместить номер страницы на [p]странице, используйте это:

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

\documentclass{article}

\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{lipsum} % For text

\begin{filecontents}[overwrite]{chapter1.tex}
    \clearpage
    \thispagestyle{floatp}
    \begin{figure}[p]
    \centering
    \hbox{\hspace{-15mm} \includegraphics[scale=0.9]{example-image-a}}
    \caption{my caption}
    \label{myfigure}
    \end{figure}
\end{filecontents}

\fancyhead{}
\fancyfoot{}
\fancyhead[L]{\thepage}
\fancyhead[R]{\nouppercase{\rightmark}}
\renewcommand{\headrulewidth}{0pt}

% ------------ Added
\fancypagestyle{floatp}{%redefining plain pagestyle
    \fancyfoot{}
    \fancyhead{}
    \fancyfoot[R]{\thepage}         % Page number in bottom right
}

\pagestyle{fancy}

\begin{document}

\section{Test}
\lipsum[1-8]

\include{chapter1}

\lipsum[1-8]

\end{document}

решение2

А как насчет \floatpagestyle{empty}использования только [p]для больших поплавков?

См. также \rotfloatpagestyleи \thisfloatpagestyle в руководстве по floatpagупаковке.

Обратите внимание также, чтоfancyhdr обеспечивает \iffloatpage{значение для плавающей страницы}{значение для других страниц}.

\documentclass[twoside]{article}
\usepackage{graphicx}
\usepackage{floatpag}\floatpagestyle{empty}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\begin{document}
\section{foo1}\subsection{foo}\lipsum[1]
\section{foo}\subsection{foo}\lipsum[1]
\section{foo}\subsection{foo}\lipsum[1-2]
\begin{figure}[h]\includegraphics[]{example-image-9x16}\caption{foo}\end{figure}
\section{foo}\subsection{foo}\lipsum[1]
\begin{figure}[p]\centering\includegraphics[]{example-image-9x16}\caption{foo}\end{figure}
\section{foo}\subsection{foo}\lipsum[1]
\section{foo}\subsection{foo}\lipsum[1]
\end{document}

решение3

Необходимо, чтобы директива \pagestyle{empty}была выдана после отправки страницы, на которой размещен рисунок.

  • В последней версии LaTeX вы можете использовать хук shipout/afterдля выполнения кода сразу после того, как LaTeX отправил какую-то страницу. (Согласно\changes записям вltshipout.dtx(Этот крючок был добавлен 8 января 2021 года.)

  • Вы можете использовать пакетzrefдля хранения и извлечения значения так называемого «абсолютного номера страницы» страницы, на которой LaTeX размещает рассматриваемый рисунок.

  • Кроме того, вы можете определить макрос \CodeAfterShipoutOfAbsolutePage, в котором можно указать абсолютный номер страницы и некоторый код, чтобы к хуку добавлялись директивы shipout/afterдля выполнения кода только после отправки страницы, абсолютный номер которой имеет указанное значение.

  • В примере ниже абсолютный номер страницы может быть указан с помощью вычислений TeX, которые могут включать доступ к zref-метке. Поэтому в примере ниже \CodeAfterShipoutOfAbsolutePageпринимает не только два аргумента, а три аргумента, один из которых обозначает разделенный запятыми список zlabels, которые должны быть определены для спецификации абсолютного номера страницы. Если один из этих zlabels не определен, как в любом случае в случае 1-й компиляции, код также не будет выполнен.

    !! Таким образом, необходимо как минимум две компиляции, чтобы все совпало. !!

Итак, синтаксис \CodeAfterShipoutOfAbsolutePage:

\CodeAfterShipoutOfAbsolutePage
  {<comma-list of zref-labels that must exist for the code to be carried out>%
    % Here you specify both those zref-labels that are needed for the
    % <expression for computing the absolute page number of the page after 
    % whose shipping-out code shall be carried out> to work out and probably
    % also those zref-labels that are needed for the <code to carry out after
    % the page has been shipped out> to work out.
  }%
  {<expression for computing the absolute page number of the page after 
    whose shipping-out code shall be carried out>}%
  {<code to carry out after the page has been shipped out>%
    % Be aware that you cannot use this for adding visible material
    % or glue to a page. You can use this only for doing abstract actions
    % like calculations or directives like `\thispagestyle{...}`.
  }%

Вот минимальный рабочий пример.
В примере shipout/afterиспользуется крючок.
Согласно\changes -записям вltshipout.dtxэтот хук был добавлен 8 января 2021 года.
Таким образом, пример определенно не работает с выпусками LaTeX до 8 января 2021 года, но с такими более ранними выпусками LaTeX вы не получите сообщений об ошибках!
Это потому, что назначение кода хуку, который не существует в том смысле, что его использование не реализовано, не вызывает предупреждений или сообщений об ошибках. Пример работает, например, с TeX Live 2022. Таким образом, он компилируется, например, с помощьюНа оборотеесли в меню Overleaf выбран TeX Live 2022.

\NeedsTeXFormat{LaTeX2e}[2021/01/08]
% (According to \changes-entry in ltshipout.dtx the hook
%  shipout/after  was added in January 8, 2021.)
\makeatletter
\RequirePackage[abspage]{zref}
\ExplSyntaxOn
%...............................................................................
% Save the  value of abspage-counter to a zref-label:
%...............................................................................
\cs_new_protected:Npn \saveabspage #1 {\zref@labelbyprops{#1}{abspage}}
%...............................................................................
% Obtain the saved abspage-counter-value from zref-label if possible, otherwise
% deliver -1:
%...............................................................................
\cs_new_protected:Npn \getabspage #1 {\zref@extractdefault{#1}{abspage}{-1}}
%...............................................................................
% Map over comma-list #1 denoting zref-labels and execute code #2 in case all of
% them are defined, otherwise execute code #3; this is for doing calculations 
% with zref-labels which can only be done in case all of them are defined:
%...............................................................................
\cs_new:Npn \CheckWhetherAllZlabelsDefined #1 
  {
    \exp:w
      \clist_map_function:nN {#1} \mystuff_checkzlabel:nwnn
      \exp_after:wN\exp_end:\use_i:nn
  }
\cs_new:Npn \mystuff_checkzlabel:nwnn #1#2 \exp_after:wN\exp_end:\use_i:nn #3#4
  {
    \int_compare:nNnTF {\getabspage{#1}}={-1}
      {#2 \exp_after:wN\exp_end:\use_i:nn {#4}}
      {#2 \exp_after:wN\exp_end:\use_i:nn {#3}}{#4}%
  }
%...............................................................................
% Map over comma-list denoting zref-labels and generate warning for each 
% undefined zref-label:
%...............................................................................
\cs_new_protected:Npn \WarnForUndefinedZlabels #1
  {
    \clist_map_function:nN {#1}\zref@refused
  }
%...............................................................................
% Provide code to execute on background-picture-environment of page whose
% absolute page number is to be specified:
%...............................................................................
\cs_new_protected:Npn \CodeAfterShipoutOfAbsolutePage#1#2#3{ 
  % #1 = comma-list of zref-labels that must exist for the code (#3) to be 
  %      carried out.
  % #2 = expression for computing the absolute page number of the page 
  %      after whose shipout the code #3 shall be carried out:
  % #3 = code to carry out after shipping out the specified page
  \AddToHook{shipout/after}{
    \WarnForUndefinedZlabels{#1}
    \int_compare:nNnT {\CheckWhetherAllZlabelsDefined{#1}{#2}{-1}}
                      =
                      {\value{abspage}}
                      {#3}
  }
}
\ExplSyntaxOff
\makeatother



\documentclass{article}
\usepackage{lipsum}
\pagestyle{headings}

\CodeAfterShipoutOfAbsolutePage{Some ABS label}%
                               {\getabspage{Some ABS label}-1}%
                               {\thispagestyle{empty}}%

\begin{document}
\section{Some headings}
\subsection{Some more headings}
\lipsum{1-2}
\begin{figure}
\noindent\rule{\textwidth}{.6\textheight}
\caption{Some figure}\saveabspage{Some ABS label}
\end{figure}
\lipsum{3-18}
\end{document}

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

(Недостатком является то, что вы не можете использовать это для изменения первой страницы, поскольку до нее не будет страницы, после отправки которой можно было бы что-то сделать.)

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