편집하다

편집하다

Ti를 반복적으로 사용하는 형식이 있습니다.케이특정 페이지 배경의 Z 사진. 이러한 그림에는 가 필요하므로 remember picture, overlay외부화할 수 없습니다. 따라서 편집 시간을 제어하기 위해 반복적으로 필요한 그림을 문서 시작 부분의 상자에 저장한 다음 필요한 페이지에서 해당 상자를 사용합니다.

이것은 잘 작동합니다. 유일한 문제는 다중 정의 레이블을 얻는다는 것입니다. 문제는 LaTeX가 이에 대해 나에게 경고하는 것이 아니라 그 중 많은 것들이 있고 내가 관심 있는 경고를 무시한다는 것입니다. 특히, 다른 레이블이 다중 정의되는지 알고 싶습니다. 그렇게 하면 상호 참조가 망가질 수 있기 때문입니다.

그래서 나는 내가 받는 가짜 경고의 수를 줄이려고 노력하고 있습니다. 외부화된 이미지의 경우(외부화할 때만 매크로를 재정의하여) 약간의 진전을 이루었 pageslts지만 권투 중인 사진에 대해서는 (가능한 경우) 다른 작업을 수행해야 합니다.

다음은 문제를 보여주는 최소한의 예입니다.

\documentclass{article}
\usepackage{tikz,everypage,kantlipsum}
\newsavebox\mybox

\begin{document}
\sbox\mybox{%
  \begin{tikzpicture}[remember picture, overlay]
    \shade [top color=blue!50!black, bottom color=blue!50!black, middle color=blue!50!cyan] (current page.north west) rectangle (current page.south east);
  \end{tikzpicture}%
}%
\AddThispageHook{\usebox\mybox}
\kant[1-8]
\AddThispageHook{\usebox\mybox}
\kant[9-10]
\end{document} 

여기서 중요한 점은 사진이 한 번 생성되어 \mybox. 그런 다음 이 상자는 1페이지의 배경에 배치됩니다. 그런 다음 3페이지의 배경에 배치됩니다. 출력은 양호합니다.

원하는 출력

문제는 다중 정의 라벨 경고를 생성한다는 것입니다.

LaTeX Warning: Label `pgfid1' multiply defined.

.aux파일에 포함되어 있기 때문에

\pgfsyspdfmark {pgfid1}{4736286}{47362867}
\pgfsyspdfmark {pgfid1}{4736286}{47362867}

이에 대한 도움이 있습니까? 분명히 이 경고는 아무 것도 해치지 않는다는 점에서 허위입니다. 그러나 내 경고 목록은 제거할 수 없는 가짜 경고로 가득 차 있으며, 특히 급할 때 식별해야 하는 경고를 찾는 것이 거의 불가능해졌습니다.

편집하다

명확히 하자면, 경고를 발생시키는 파일 remember picture에 레이블을 쓰는 역할을 담당한다는 것을 알고 있습니다. 그러나 이를 제거하는 것은 필요하기 .aux때문에 옵션이 아닙니다 .overlay

왜 <code>사진 기억</code>이 필요한가요?

답변1

제가 의견에서 언급했듯이 실제 해결책은 tikz 기억 메커니즘을 사용하지 않는 것입니다. 여기에서는 tikz를 페이지의 고정 위치에 배치할 때 현재 좌표를 저장할 필요가 없기 때문입니다.

그러나 여기에서 시작하는 가장 쉬운 방법은 설정을 삭제하는 aux 파일에 명령을 작성하여 첫 번째 설정 이후의 모든 설정을 무시하는 것입니다.

\documentclass{article}
\usepackage{tikz,everypage,kantlipsum}
\newsavebox\mybox
\makeatletter
\def\eatpgfmark{\write\@auxout{\string\@gobblefour}}
\makeatother
\begin{document}
\sbox\mybox{%
  \begin{tikzpicture}[remember picture, overlay]
    \shade [top color=blue!50!black, bottom color=blue!50!black, middle color=blue!50!cyan] (current page.north west) rectangle (current page.south east);
  \end{tikzpicture}%
}%
\AddThispageHook{\usebox\mybox}
\kant[1-8]
\AddThispageHook{\eatpgfmark\usebox\mybox}
\kant[9-10]
\end{document} 

aux 파일을 생성합니다.

\relax 
\pgfsyspdfmark {pgfid1}{4736286}{47362867}
\@gobblefour
\pgfsyspdfmark {pgfid1}{4736286}{47362867}

그래서 두 번째는 \pgfsysmark폐기됩니다.

관련 정보