LoginSignup
1
0

More than 3 years have passed since last update.

TeXでjsbookの表紙いっぱいに画像を設定する

Last updated at Posted at 2020-02-05

はじめに

技術書を作成しているときに「凝った表紙にしたいな」と思って
技術書のページサイズ(A4)と同じ画像を用意したものの
表紙いっぱいに画像を貼ることが大変だったため、備忘録です。

最終的なもの

こちらにあったものを少し改良して使わせていただきました。
https://www.ms.u-tokyo.ac.jp/~abenori/tex/haikei.html

\documentclass[12pt, a4paper, report]{jsbook}
\usepackage[dvipdfmx]{graphicx}

\hoffset0mm
\voffset0mm

\makeatletter
\let\@@shipout\shipout
\def\shipout\vbox{\@@shipout\vbox\bgroup\afterassignment\insertBackGround\let\reserved@a=}
\def\insertBackGround#1{#1%
        \iftombow
                \copy\BackGround\kern0pt
        \else
                \kern-1truein\moveleft1truein\copy\BackGround\kern1truein
        \fi}
\newbox\BackGroundUnit
\newbox\BackGround
\def\@haikei#1{
\setbox\BackGroundUnit\hbox{\includegraphics*[width=\paperwidth]{#1}}
\@tempdima\paperheight
\advance\@tempdima\ht\BackGroundUnit\advance\@tempdima\dp\BackGroundUnit
\setbox\BackGround\vbox to \@tempdima{
        \@tempdima=\paperwidth\advance\@tempdima\wd\BackGroundUnit
        \leaders\hbox to\@tempdima{\leaders\copy\BackGroundUnit\hfil}\vfil
}
\wd\BackGround=0pt\ht\BackGround=0pt\dp\BackGround=0pt
}
\newcommand{\incluedefullgraphics}[1]{\pagestyle{empty}\@haikei{#1}\null}
\makeatother

\begin{document}

  \begin{titlepage}
  \thispagestyle{empty}
    \incluedefullgraphics{images/titlepage.png}
  \end{titlepage}

 % 本文

\end{document}

試したもの

以下、試してみたけどうまくいかなかったものです。

includegraphicsで普通に画像を表紙に入れる

同じサイズぐらいの画像は入れられたが、左と上に余白ができた

\documentclass[12pt, a4paper, report]{jsbook}
\usepackage[dvipdfmx]{graphicx}

\begin{document}

  \begin{titlepage}
    \pagestyle{empty}
    \begin{figure}
      \begin{center}
        \includegraphics{images/titlepage.png}
      \end{center}
    \end{figure}
  \end{titlepage}

 % 本文

\end{document}

geometryを使う

余白を消すにはgeometryを使うと良いという記事を見つけたのでそれを試した。
https://qiita.com/genyajoe/items/4ca0652587651593d502

そのまま挿入すると画像がページより大きなサイズだったので
width=\textwidth,height=\textheightを設定することで同じサイズになった。
しかし、表紙以外のページのレイアウトが崩れてしまった。
(左と右がはみ出したような状態。テキストの折り返し箇所が変わった。)
これはjsbookとgeometryの相性が悪かったことが原因だった。
https://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/52383.html
jbookにしたところマシにはなったが、レイアウトが大幅に変わったため別の方法を模索した。

\documentclass[12pt, a4paper, report]{jsbook}
\usepackage[dvipdfmx]{graphicx}
\usepackage[pass]{geometry}

\begin{document}

  \begin{titlepage}
    \newgeometry{left=0cm,top=0cm}
    \thispagestyle{empty}
      \begin{figure}
        \includegraphics[width=\textwidth,height=\textheight]{images/titlepage.png}
      \end{figure}
    \restoregeometry
  \end{titlepage}

  % 本文

\end{document}
\documentclass[12pt, a4paper, report]{jbook}
\usepackage[dvipdfmx]{graphicx}
\usepackage[pass]{geometry}

\begin{document}

  \newgeometry{left=0cm,top=0cm}
  \thispagestyle{empty}
  \begin{titlepage}
    \begin{figure}
      \includegraphics[width=\textwidth,height=\textheight]{images/titlepage.png}
    \end{figure}
  \end{titlepage}
  \restoregeometry

  % 本文

\end{document}

wallpaperを使う

wallpaperというパッケージを導入すると表紙いっぱいに画像を貼れるという記事があったためそちらを試した。
https://yamaimo.hatenablog.jp/entry/2019/10/03/200000
しかし、画像が同様の方法であっても画像が表示されなかった。
これは\usepackage[dvipdfmx]{graphicx}と衝突していたことが原因だった。
https://chy72.hatenablog.com/entry/2014/12/14/021914
手順に沿って\usepackage[dvipdfmx]{}に変更したが今度はコンパイルが通らなくなって断念。

\documentclass[12pt, a4paper, report]{jsbook}
\usepackage[dvipdfmx]{graphicx}
\usepackage{wallpaper}

\begin{document}

  \thispagestyle{empty}
  \ThisCenterWallPaper{1}{images/titlepage.png}
  \null
  \cleardoublepage

  % 本文

\end{document}

結局、こちらに落ち着いた。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0