LaTeXでプロデューサー名刺を作る

この記事は アイドルマスターAdvent Calendar 2018 13日目の記事になります. 遅れてしまい申し訳ありません!

これはなにか

プロデューサー歴3年目にも関わらずまだ名刺を持っていないので,LaTeXで名刺を作ってみた話です.

LaTeXとは

LaTeX は文書作成ツールで,数式を含む文書の作成が比較的簡単かつ綺麗にできるため,主に理工系の論文レポート執筆に用いられます.


あれ?

論文やレポート? どう考えても名刺作成向けじゃないよね?

はい,全く向いていないと思います. 他にやっている人もいないだろうというモチベーションで今回もやっていきたいと思います. ちなみに去年もそんな不純な動機によって作られたものがいくつかあります.

muscle-keisuke.hatenablog.com

muscle-keisuke.hatenablog.com

というわけでやっていきます.

まずはペイントツールで作りたい名刺を作る

というわけで作りました. f:id:muscle_keisuke:20181214035520p:plain f:id:muscle_keisuke:20181214035548p:plain


...? あれ?

名刺完成しちゃった!!!!

というわけで終わります.



というわけにもいかないので,完成した名刺を基にLaTeXで名刺を作っていきます. もはや何のためにやってるのかわかりません.

LaTeXで名刺を作っていく

LaTeXの設定

まずは印刷用に用紙の設定をしていきます. 適当に調べてでてきた名刺作成用の紙のサイズを参考に設定していきます.

f:id:muscle_keisuke:20181214040107p:plain 引用:https://www.biccamera.com

用紙サイズはA4,余白は横14mm, 縦11mmみたいです. この用紙の中に10枚の名刺を印刷します. geometryパッケージを使って余白を設定します.

\documentclass[dvipdfmx]{jarticle}
\usepackage{geometry}
\geometry{left=14truemm, right=14truemm, top=11truemm, bottom=11truemm}

また,LaTeXはデフォルトで字下げやページ番号などの機能が有効なので,これを無効化します.

\pagestyle{empty}
\parindent=0pt

必要なパッケージも読み込んでおきます.

\usepackage{tikz} % TikZを読み込むため
\usepackage{graphicx} % 画像を読み込むため
\usepackage{geometry} % 余白調整するため
\usepackage[deluxe]{otf} % ヒラギノ丸ゴシックを使うため
\usetikzlibrary{calc} % 座標計算のため

背景画像を表示する

それでは次に名刺作成の方法ですが,LaTeXには論文に載せる図などを描画することができるTikZというパッケージがあります. 今回はこれを使って名刺のデザインをやっていきます.名刺のサイズは91mm x 55mmなので,まずは中央の(45.5mm, 27.5mm)に 91mm x 55mmに縮小した画像を配置していきます.

\begin{tikzpicture}[x=1mm, y=1mm, outer sep=0pt, inner sep=0pt]
      \node[outer sep=0pt, inner sep=0pt] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{300328.png}};
      \node[outer sep=0pt, inner sep=0pt, opacity=0.8] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{background.png}};
\end{tikzpicture}

300328.pngはみりあちゃんの一枚絵でback_ground.pngは完成図の中で透過していた背景画像です. 背景画像の方はopacity=0.8のオプションで2割透過した状態になっています. f:id:muscle_keisuke:20181214041809p:plain

f:id:muscle_keisuke:20181214041129p:plain
300328.png

f:id:muscle_keisuke:20181214041148p:plain
background.png
引用:http://cgss-fan.xyz

しかし,これだけでは,10枚中左上の1枚にしか画像が表示されないので, TikZのforeachコマンドで10回ループさせます.

\foreach \x in {1,2,...,10}{
\begin{tikzpicture}[x=1mm, y=1mm, outer sep=0pt, inner sep=0pt]
      \node[outer sep=0pt, inner sep=0pt] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{300328.png}};
        \node[outer sep=0pt, inner sep=0pt, opacity=0.8] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{background.png}};
  \end{tikzpicture}
}

これで,10枚表示されます. f:id:muscle_keisuke:20181214042028p:plain 画像同士に自動で余白が入ってしまい,2ページにまたがって表示されてしまいます. 水平方向に余白を空ける\hspace垂直方向に余白を空ける\vspaceに負の値を入れて縦横の余白を消します.

\ifodd\x % 奇数枚目と偶数枚目の間の水平方向の余白を消す.
    \hspace{-1em}
  \fi
  \vspace{-1pt}

\xはforeachのカウンタ変数です. これで10枚の画像が1ページにまとまります. f:id:muscle_keisuke:20181214042706p:plain

背景画像の切り抜き

今の時点では,透過した背景画像が全体にかかった状態になっているのでこれを切り抜いていきます. TikZには\clipというコマンドがあり,座標指定で結んだ線で囲まれた範囲を切り抜くコマンドがあります. これを使って背景画像を完成図のように上三角と下三角に切り抜いていきます. 1枚絵を読み込んだ後に以下の行を追加します.

\begin{scope}
  \clip (15,55) -- (91,55) -- (91,15) -- (15,55);
  \node[outer sep=0pt, inner sep=0pt, opacity=0.8] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{background.png}};
\end{scope}
\begin{scope}
  \clip (0,40) -- (76,0) -- (0,0) -- (0,40);
  \node[outer sep=0pt, inner sep=0pt, opacity=0.8] (image) at (45.5,27.5) {\includegraphics[width=91truemm, height=55truemm]{background.png}};
\end{scope}

切り取りしてしまうと元の画像がなくなるので背景画像を上三角用,下三角用に2枚読み込んでいます. また,他の画像を切り抜いてしまわないように各clipコマンドは外のコマンドに影響を与えないscope環境の中で実行しています. これで,名刺の背景は完成です. f:id:muscle_keisuke:20181214044134p:plain

文字を入れていく

背景は完成したので必要な情報を入れていきます. 今回載せる情報は以下の通りです.

  • プロデューサー名
  • 担当名
  • TwitterID
  • デレステのゲームID

それぞれ,表示する位置座標を定義しておきます.

\coordinate (myname) at (55,50);
\coordinate (tanto) at ($(myname) + (16pt * 2.5, -16pt * 1.5)$);
\coordinate (gameID) at (23,5);
\coordinate (twitter) at ($(gameID) + (0, 16pt * 1.5)$);

担当名とTwitterIDの座標はそれぞれプロデューサー名とデレステIDの座標から 相対的に設定しています.

次に,表示ですが,下書きの段階では文字は何も考えずヒラギノ丸ゴシックを使いました. それが原因で,下書きでは和文だけでなく欧文もヒラギノ丸ゴシックになってしまっていました. ヒラギノフォントには従属欧文というものがあり,和文だけでなく欧文も用意されています. 単純な従属欧文であれば,LaTeXでも出力可能なのですが,更に従属欧文の丸ゴシックとなると出力方法が分かりませんでした. なので,欧文部分はヒラギノゴシックの従属欧文で表示することにしました.

{\fontsize{16pt}{0pt}\selectfont
        \node at (myname) {\mgfamily\userelfont\selectfont うっひょいP};
        \node at (tanto) {\mgfamily 赤城みりあ担当};
}
{\fontsize{12pt}{0pt}\selectfont
        \node at (twitter) {\mgfamily\userelfont\selectfont Twitter @keisuke495500};
        \node at (gameID) {\mgfamily\userelfont\selectfont デレステID 407845058};
}

上三角部分は文字サイズ16ptで,下三角部分は12ptにしました. また,\mgfamily和文を丸ゴシックに\userelfont\selectfontで欧文をヒラギノフォントの従属欧文で表示しています. f:id:muscle_keisuke:20181214045409p:plain 完成です.

最後に

今回は簡単なデザインだったのですぐできました. ぎりぎりまでネタが思いつかなかったので1日でやるにはちょうどいいテーマだったと思います.

次からはちゃんとペイントツールを使いたいと思います.

アイドルマスター Advent Calendar 2018 14日目はuzuforestさんの記事です。