8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Typstで履歴書を書く

Last updated at Posted at 2024-02-24

はじめに

私は絶賛インターン探し中の来年院1生になるフロントエンドエンジニアです!
普段は学食モバイルオーダーの開発、運営保守してます。
ついこないだまで $\LaTeX$ で卒論をヒイヒイ言いながら書いてましたが、30ページを超えたあたりからM2 Mac Bookでもコンパイルに15秒ぐらいかかってしまっていました。
もっとMarkdownみたいに高速でTypeScriptみたいに型とかドキュメントが整ってるのないのかなと探していましたが、ありました!その名もTypst
今回は私が練習ついでにTypstで履歴書のテンプレートを作ってみたのでその共有と、Typstの普及をするためにこの記事を書きます!

Typstとは?

公式サイトから引用

Typst is a new markup-based typesetting system for the sciences. It is designed to be an alternative both to advanced tools like LaTeX and simpler tools like Word and Google Docs.

google 翻訳

Typst は、科学向けの新しいマークアップベースの植字システムです。LaTeX などの高度なツールと、Word や Google ドキュメントなどの単純なツールの両方の代替となるように設計されています。

Typstのいいところ

強力な補完

$\LaTeX$やWord,Google Docmentの代替とはなかなか強気ですが、嘘ではありません。
$\LaTeX$のような記法を残しつつMarkdownのようなシンプルさもあります。しかも、gt.eq.notのような.で繋いでいく記法によりTypeScriptのようなエディター側で効率的なサジェストを可能にしています。

スクリーンショット 2024-02-24 15.05.49.png

スクリーンショット 2024-02-24 15.23.24.png

これが私の本当に求めていたものです。もう$\LaTeX$のbegin記法には戻れないかも...

スタイリングのしやすさ

さらに、Typstの素晴らしいところはCSSのようにスタイリングできる点です。
例えば文字を縦2cm,横3cmのボックスの中でセンタリングするにはこのように書きます。

box.typ
#box(
  stroke: black,
  width: 3cm,
  height: 2cm,
  [
    #align(
      center + horizon,
      [文字]
    )
  ]
)

スクリーンショット 2024-02-24 15.39.20.png

参考までにこれを$\LaTeX$でかくとこんな感じになります。
普段から$\LaTeX$を書いている人なら簡単に読めるでしょうが、私を含め多くの人はパッと見で、どこが2cmの要素のなのかわかりません。ChatGPTかGitHub Copilotに生成してもらった方が早いです。(ChatGPTに書いてもらいました。)

sample.tex
\begin{figure}[h]
    \centering
    \fbox{\begin{minipage}[c][2cm][c]{3cm}
      \centering
      ここに文字を入れる
    \end{minipage}}
\end{figure}

スクリーンショット 2024-02-24 15.51.16.png

環境構築が楽

公式のオンラインエディターで書く場合はアクセスしてプロジェクト作って書くだけ。
ローカルで書く場合は拡張機能一つで動きます。VS Code, Neovimに対応しているみたいです。

作ったもの

前置きが長くなりましたが、今回作成したものをここで共有します。
いつも私が使わしていただいていた$\LaTeX$の履歴書テンプレートを参考に作ってみました。

スクリーンショット 2024-02-24 16.55.24.png

スクリーンショット 2024-02-24 16.55.36.png

使い方は簡単で、このリポジトリからtemplate.typmain.typを入手します。
次にmain.typの日本語関数のpropsを変更したり、必要に応じて関数を追加してください。

main.typ
#import "template.typ": *
#let title = [#text(tracking: 1em,size: 14pt,[履歴書])]

#let fontSerif = ("Noto Serif", "Noto Serif CJK JP")
#let fontSan = ("Noto Sans", "Noto Sans CJK JP")

#set text(font: fontSerif, size: systemFontSize)
#set page(paper: "jis-b5",margin: 1.5cm)

= #title
// 使い方の説明。
// "私"と"アドレス"など日本語名の関数の引数を変更してください。

#move( dy: -1cm,
  stack(
    align(bottom,
      grid(
        columns: (5fr,2fr),
        私(
          性読み: "りれきしょ",
          名読み: "たろう",
          性: "履歴書",
          名: "太郎",
          生年月日: "平成xx年xx月xx日",
          年齢: 99
        ),
        証明写真(写真: "image/testImage.png")
        // 証明写真()
      ),
    ),
    アドレス(
      住所ふりがな1: "とうきょうとすみだくおしあげ",
      住所1: "東京都墨田区押上1丁目1−2",
      郵便番号1: "131-0045",
      電話番号1: "123-4567-8901",
      Email1: "sample@example.com",
      住所ふりがな2: "",
      住所2: "https://github.com/Nikudanngo/typst-ja-resume-template",
      郵便番号2: "",
      電話番号2: "",
      Email2: ""
    ),
    linebreak(),
    経歴(
      mode: "学歴・職歴",
      columns: 14,
      grid(
        gutter: 0.61cm,
        学歴(),
        学歴(
          年: "平成1",
          月: "10",
          学歴: "俺、爆誕"
        ),
        学歴(
          年: "平成20",
          月: "3",
          学歴: "スクスク育つ"
        ),
        学歴(
          年: "平成30",
          月: "4",
          学歴: "宇宙大学ツヨツヨ学部エンジニア学科 入学"
        ),
        学歴(
          年: "令和1",
          月: "8",
          学歴: "大規模開発サークル設立 \u{2192} サークル崩壊"
        ),
        linebreak(),
        職歴(),
        職歴(
          年: "令和6",
          月: "4",
          職歴: "大手IT系メーカーベンチャー企業 就職"
        ),
        以上()
      )
    ),
  ),
)
#pagebreak()

#stack(
  経歴(
    mode: "学歴・職歴",
    columns: 5,
    hegithLength: 5cm,
    linebreak(),
    // grid(
    //   gutter: 0.61cm,
    //   資格(
    //     年: "平成1",
    //     月: "10",
    //     資格: "大学入学"
    //   ),
    // )
  ),
  linebreak(),
  経歴(
    mode: "資格",
    columns: 7,
    hegithLength: 6.6cm,
    grid(
      gutter: 0.61cm,
      資格(
        年: "平成1",
        月: "12",
        資格: "普通自動車免許 取得"
      ),
    )
  ),
  linebreak(),
  志望動機(
    [私がこの職に応募する理由は、]
  ),
  linebreak(),
  本人希望(
    [私は〇〇がしたい]
  ),
  place(
    bottom + right,
    dy: 10pt,
    [Made with Typst]
  )
)

さいごに

履歴書は以下の資料を参考に独自に作成したものです。何かおかしな点があればご指摘ください!
参考になった、使ってみたいと感じたらGitHubのスターください!

8
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
8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?