tikz と fancyhdr を使用して継続ページ付きのレターヘッドを模倣する

tikz と fancyhdr を使用して継続ページ付きのレターヘッドを模倣する

継続ページでレターヘッドを模倣しようとしています。レターヘッドの形式は次のとおりです。最初のページにカラーバナーがあり、右側にロゴ、左側に部署名があります。また、最初のページの下部近くに部署名があります。これらはすべて絶対配置する必要があります。継続ページには、同じ位置にロゴがありますが、他には何もありません。

無知な私は、ページ座標を使用して tikz で絶対位置指定を行おうと思いました。これは最初のページでは機能しますが、継続ページでは機能しないようです。つまり、継続ページにはロゴだけが含まれている必要がありますが、何も含まれていません。これまでのところ、この質問に完全に答える回答を見つけることができていません。fancyhdr の愚かなミスに迷い込んでいると確信しており、おそらく間違った方法で実行しているのでしょう。

現在の出力の例を次に示します。2 ページ目以降のすべてのページには、最初のページとまったく同じ位置にデモ画像が表示されます。

問題を示す出力の画像

クラスファイルはこちら

% class file MWE
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mweletter}

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}}

\ProcessOptions

\RequirePackage[demo]{graphicx}
\LoadClass[a4paper]{letter}
\RequirePackage[left=2.5cm,showframe]{geometry}
\RequirePackage{fancyhdr}
\RequirePackage{tikz}
%\RequirePackage{fontspec}
\usetikzlibrary{calc}

\newsavebox{\addressbox}
\savebox{\addressbox}{
  \sffamily\fontsize{8}{10}\selectfont
  \textcolor{blue}{\begin{minipage}{7cm}
      Block A Level 4, Simpson Street, Springfield USA  \\%
    Tel: (+1) 617 123 4567 \\
  \end{minipage}}
}

\renewcommand{\headrulewidth}{0pt}%
\renewcommand{\footrulewidth}{0pt}%

\pagestyle{plain}
\AtBeginDocument{\thispagestyle{firstpage}}

\fancypagestyle{firstpage}{%
  \fancyhf{}%
  \begin{tikzpicture}[overlay, remember picture]
    \fill [anchor=north west,inner sep=0pt,orange]
      (current page.north west)  rectangle ($(current page.north east) + (0,-3cm)$);
    \node[anchor=north east,inner sep=0pt] at ($(current page.north east) + (-1cm,-0.5cm)$)
      {\includegraphics[height = 1.6cm]{demo}};
    \node[anchor=north west,inner sep=0pt] at
     ($(current page.north west) + (2.5cm,-0.5cm)$) {
      \sffamily\fontsize{8}{12} Department
      of Excellent Science };
    \node[anchor=south west, inner sep=0pt] at
    ($(current page.south west) + (2.5cm,1.5cm)$) {\usebox{\addressbox}};
  \end{tikzpicture}
}

\fancypagestyle{plain}{%
  \fancyhf{}%
  \begin{tikzpicture}[overlay, remember picture]
    \node[anchor=north east,inner sep=0pt]
    at ($(current page.north east) + (-1cm,-0.5cm)$)
    {\includegraphics[height = 1.6cm]{demo}};
  \end{tikzpicture}
}

そして、それを実行するための LaTeX ファイル。

\documentclass[12pt]{mweletter}
\usepackage{blindtext}
\signature{%
  Johnathan "John" I.Q. Neidelbaum Frink, Jr., B.Sc., Ph.D. M.R.S.C. \\ 
  The Principal Professor \\
  Springfield Heights Institute of Technology \\
  Springfield, America
}
\date{\today}
\begin{document}
\begin{letter}{Prof Tan\\
    Beijing Da Xue}
\opening{Dear Prof Tan,}
\Blindtext[5]
\closing{Yours sincerely,}
\encl{mweletter.cls}
\ps{Please see the enclosed file.}
\cc{Lisa Simpson}
\end{letter}
\end{document}

答え1

marmot のコメントで、そもそも を使うのがfancyhdrいかに愚かなことかが分かりました。 については全く知りませんでしたeso-pic。 これは単に要素をページ上に配置し、最初のページを別の方法で処理するだけです。

% mweletter.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mweletter}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}}
\ProcessOptions
\RequirePackage[demo]{graphicx}
\LoadClass[a4paper]{letter}
\RequirePackage[left=2.5cm,showframe]{geometry}
\RequirePackage{tikz}
\RequirePackage{eso-pic}
\usetikzlibrary{calc}

\AddToShipoutPicture{
  \begin{tikzpicture}[overlay, remember picture]
    \ifnum\value{page}=1 
    \fill [anchor=north west,inner sep=0pt,orange]
    (current page.north west)  rectangle ($(current page.north east) + (0,-3cm)$);
    \node[anchor=north west,inner sep=0pt] at
     ($(current page.north west) + (2.5cm,-0.5cm)$) {
      \sffamily\fontsize{8}{12} Department
      of Excellent Science };
    \node[anchor=south west, inner sep=0pt] at
    ($(current page.south west) + (2.5cm,1.5cm)$) {
      \sffamily\fontsize{8}{10}\selectfont
      \textcolor{blue}{
        \begin{minipage}{7cm}
          Block A Level 4, Simpson Street, Springfield USA  \\%
          Tel: (+1) 617 123 4567 \\
        \end{minipage}}};
    \fi
    \node[anchor=north east,inner sep=0pt] at ($(current page.north east) + (-1cm,-0.5cm)$)
    {\includegraphics[height = 1.6cm]{demo}};
  \end{tikzpicture}
}

そしてこれが入力です

\documentclass[12pt]{mweletter}
\usepackage{blindtext}
\signature{%
  Johnathan "John" I.Q. Neidelbaum Frink, Jr., B.Sc., Ph.D. M.R.S.C. \\ 
  The Principal Professor \\
  Springfield Heights Institute of Technology \\
  Springfield, America
}
\date{\today}
\begin{document}
\begin{letter}{Prof Tan\\
    Beijing Da Xue}
\opening{Dear Prof Tan,}
\Blindtext[4]
\closing{Yours sincerely,}
\encl{mweletter.cls}
\ps{Please see the enclosed file.}
\cc{Lisa Simpson}
\end{letter}
\end{document}

与える

正しい2up

関連情報