飽き性の頭の中
listingsを自分好みに調節する|#pandoc,#mac,#コードブロックのサムネイル
IT技術メモ

listingsを自分好みに調節する|#pandoc,#mac,#コードブロック

2022-11-12
# pandoc# Mac# コードブロック# listings# Tex

Tex についてはほぼ素人だけれど、Markdown で論文が書きたいので pandoc でなんとか PDF を生成できるようにしている。

修論の中でコードを少し記述しようと思ってコードブロックを追加したのだけれど、そのときのレイアウトがいい感じでなかったので、調整した。

そのときのメモを残す。Tex についてとかあまり理解していないので当たり前すぎるかもしれないけれどそこはあしからず。

現状

pandoc でどう生成しているかは別途いずれ記事にしたいと思っているけれど、雑に状況を書くと、

  • Mac 上で pandoc を使って、Markdown を PDF に変換している
    • LuaLaTeX を使っている
  • その際に、tex のテンプレートを使っている

という感じ。なので Tex のテンプレートをいじればどうにかなるということは理解している。

listings が動かない

もともと pandoc は次のように実行していた。

pandoc $INPUT -o $OUTPUT \
  -d $DEFAULT_SETTING \
  --template=$TEMPLATE \
  --listings

しかし、Markdown にコードブロックを追加すると、次のようなエラーが出てしまった。

Error producing PDF.
! LaTeX Error: Environment lstlisting undefined.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

l.456 \begin{lstlisting}

どうやら、pandoc-crossref と併存していると出るエラーらしい。

とある記事によると、次のようにすれば動くらしいし、実際に動いた。

pandoc $INPUT -o $OUTPUT \
  -d $DEFAULT_SETTING \
  --template=$TEMPLATE \
  --listings \
  -M listings # ← 追加

あとは Tex のテンプレートをいじれば調整できる状態になった。

Tex のテンプレートをいじる

いくつか記事を見ていくと、listings がコードブロックをどうにかしてくれるパッケージということがわかった。

参考にした記事

調整する方法

以上の記事を見て雰囲気がわかった。\lstsetでいい感じに設定をすればよいらしい。

最終的にはこんな感じになっている。

\lstset{
    basicstyle=\ttfamily\small,
    breaklines=false,
    numbers=left,
    frame=leftline,
    numberstyle=\small,
    belowskip=24pt,
    aboveskip=24pt,
    xleftmargin=36pt,
}

2022 11 12 12 52 37

詳しいそれぞれの設定は上記のブログを見ながら、どういうものができるのかをなんとなく理解した。

記事で触れられていないような細かな設定もいろいろあるらしく、それらすべては次の(公式?)ドキュメントにまとまっているので、それっぽいものを探していけば自分好み状態にできるはず。

関連記事


タグ一覧

# 福岡:39# 東京:19# 移住:10# エナジードリンク:9# 大学院:9# Google:8# ブロックチェーン:8# Webエンジニア:7# Mac:6# Sony:6# Apple:5# Googleフォト:5# インドネシア:5# サントリー:5# 埼玉:5# AWS:4# Canon:4# EOS 8000D:4# Kindle:4# ZONe:4# 京都:4# 仮想通貨:4# 英語:4# 鴨川シーワールド:4# Docker:3# EOS8000D:3# Lightroom:3# Markdown:3# Pixel:3# React Native:3# iPad:3# iPad mini:3# アマルティア・セン:3# アメリカ:3# セブンイレブン:3# ラーメン:3# レッドブル:3# 卒業旅行:3# 紅葉:3# 長崎:3# API:2# ECR:2# ERC20:2# Expo.io:2# Firebase:2# Kindle Oasis:2# Kindle Paperwhite:2# LINE:2# MacBook Pro:2# NestJS:2# Next.js:2# Notion:2# Oculus:2# Oculus Quest:2# Pixel Buds:2# React:2# a7iii:2# iPhone:2# pandoc:2# re:Invent:2# zsh:2# かき小屋:2# カフェ:2# ギグワーカー:2# サーチコンソール:2# ジャカルタ:2# スターバックス:2# ステーキ:2# スマートウォッチ:2# ソラマチ:2# チョコレート:2# ニューヨーク:2# バリ島:2# パンとエスプレッソと:2# ヒュッゲ:2# ビーチ:2# ブックスタンド:2# マクドナルド:2# ミズマチ:2# モンスターエナジー:2# ワイヤレスイヤホン:2# 三千院:2# 両国:2# 兵庫:2# 千葉:2# 博多:2# 堀江貴文:2# 宮崎:2# 寿司:2# 嵐山:2# 川越:2# 広島:2# 新宿御苑:2# 日米学生会議:2# 有馬温泉:2# 東寺:2# 歴史:2# 江ノ島:2# 清澄白河:2# 独自ドメイン:2# 社会人:2# 神奈川:2# 神戸:2# 転職:2

©2022 tawachan All Rights Reserved.