

LaTeXで書いた日本語文書の1ページ目の左上に、小さなロゴ画像を入れたいと考えています。 これはどのように書くと実現できるのでしょうか?

今のところ、

[code]

    \title{極秘マニュアル}
    \author{大場 風炉夫}
    \date{2014年12月26日}
    
[/code]

とした後に、

[code]

    \begin{document}
    \maketitle
    
[/code]

でタイトルページを生成しています。


CC BY-SA 3.0
2014-12-26T07:54:44.813
2628
2015-01-28T04:33:20.030
2014-12-26T09:43:18.770
2901
848
question
latex
LaTeXドキュメントの1ページ目にロゴを入れるには?


(もっとエレガントな解法があるかもしれませんが) 思いついた方法を書いてみます:

[code]

    \documentclass{book}
    \usepackage{graphicx}
    \title{%
    \begin{figure}[!t]%
    \makebox[\textwidth][l]{\smash{%
    \begin{picture}(0,0)
    \put(-100,50){\includegraphics[width=2cm]{画像ファイル}}
    \end{picture}}}
    \end{figure}%
    TOP SECRET}
    
    \author{Over Flow}
    \date{Dec. 26th, 2014}
    \begin{document}
    \maketitle
    
    \end{document}
    
[/code]

説明:

スタイルファイルによっては `\maketitle` で改ページが入るので、確実にタイトルと同じページに表示されるように `\title`
の中に指定する事にしました。同じページに表示することだけが目的ですので `\title` ではなく `\author` や `\date`
の中に指定しても良いです。(ただ、`\title`, etc.
の中の文字列をメタデータとして抽出する様なスタイルファイルがあると問題になるかもしれません。)

`\begin{figure}[!t]`
はページ上部をロゴの基準位置とする為に使用しています(これがないとタイトルの位置が基準になり、ロゴの位置がタイトルの長さに依存してしまいます)。`\makebox`
& `\smash` は、`\begin{figure}` の高さを潰して、次ページに送られてしまう可能性を排除するために使っています。

`\begin{picture}` & `\put(X,Y)` は位置を微調整する為に使っています。`X` は右方向への移動量で、`Y` は **上方向**
への移動量を指定します。小数でもOKです。位置の微調整はこの部分を適当に弄って下さい。


CC BY-SA 3.0
2014-12-26T10:14:54.660
2638
2014-12-26T10:14:54.660
5300
2628
answer


最終的に書かせるものというのは、他の解答例のように`graphicx`を使ったりすることになるのですが、ページに配置するためのスタイルを指定する、という点では、pagestyle
という仕掛けを使います。

pagestyle は、呼び出すには `\pagestyle{markedpage}` などとやりますが、当該マクロが出力されるページだけを変えたい場合は
`\thispagestyle{markedpage}`と指示します。

さて、`\pagestyle{markedpage}` を実行すると、実際は、`\ps@markedpage`
というマクロが呼び出されます。このマクロは自分で定義するのですが、ヘッダあるいはフッタ(あるいは双方）を出力するためのマクロを定義するようにします。たとえば、`artcle.cls`
で、`headings`というスタイルが、以下のように定義されています(`headings`を呼び出すには、`\pagestyle{headings}`と書きます）。

[code]

    \if@twoside
      \def\ps@headings{%
          \let\@oddfoot\@empty\let\@evenfoot\@empty
          \def\@evenhead{\thepage\hfil\slshape\leftmark}%
          \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
          \let\@mkboth\markboth
        \def\sectionmark##1{%
          \markboth {\MakeUppercase{%
            \ifnum \c@secnumdepth >\z@
              \thesection\quad
            \fi
            ##1}}{}}%
        \def\subsectionmark##1{%
          \markright {%
            \ifnum \c@secnumdepth >\@ne
              \thesubsection\quad
            \fi
            ##1}}}
    \else
      \def\ps@headings{%
        \let\@oddfoot\@empty
        \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
        \let\@mkboth\markboth
        \def\sectionmark##1{%
          \markright {\MakeUppercase{%
            \ifnum \c@secnumdepth >\m@ne
              \thesection\quad
            \fi
            ##1}}}}
    \fi
    
[/code]

これには、偶数ページ奇数ページに使い分けのために定義しわけたりなど色々入っていますが、たとえば、偶数ページヘッダを定義している`\@oddhead`
などを書き換え、ロゴを書くようなマクロを`\ps@markedpage`等という名前で定義し、`\thispagestyle{markedpage}`で呼び出せばよいのです。

なお、texの本文の方に書くには、`\makeatletter` と `\makeatother`
で括らないとダメ(`@`を使えない）ので要注意ですが、ここをご存じないようでしたら、スタイルファイルの書き方を調べてみた方がよいかもしれません。


CC BY-SA 3.0
2014-12-26T14:39:35.080
2644
2014-12-26T14:39:35.080
44
2628
answer

[code]

    \maketitle
    
[/code]

は、

[code]

    \documentclass{article}
    
[/code]

の場合、 `article.cls` で定義されています。

タイトルの見た目を変更するには、`\maketitle` の代わりに `titlepage`
でタイトルのレイアウトを決めてもよいです。例えばロゴを挿入したいときです。

以下の例では UTF-8 で日本語を書くために pdflatex + CJK package を用います。  
また、ロゴを表示するために graphicx package を用います。

ロゴのために `logo.png` を用意します。

[code]

    % filename: foo.tex
    \documentclass{article}
    \usepackage{CJK}
    \usepackage{graphicx}
    \begin{document}
    \begin{titlepage}
    % logo
    \includegraphics{logo.png}\\[1cm]
    \begin{CJK}{UTF8}{min}
    \begin{center}
    % title
    {\LARGE 極秘マニュアル}\\[1cm]
    % author
    {\large 大場 風炉夫}\\[1cm]
    % date
    {\large 2014年12月26日} 
    \end{center}
    \end{CJK}
    \end{titlepage}
    \end{document}
    
[/code]

ad-hoc にサイズを `cm` や `mm` で直に決めましたが、随時調整することでお望みの結果が出ると思います。

[code]

    % pdflatex foo.tex
    
[/code]

![logoを表示した LaTeX 文書](https://i.stack.imgur.com/W1qOl.png)

以上、[LaTeX/Title Creation](http://en.wikibooks.org/wiki/LaTeX/Title_Creation)
を参照しました。

代わりに、別の package を使う方法もあります。検索してください：

  * titling package
  * fancyhdr package


CC BY-SA 3.0
2015-01-28T04:16:02.770
5485
2015-01-28T04:33:20.030
2015-01-28T04:33:20.030
4978
7796
2628
answer