adbird(広告鳥) 備忘録

GIMPで画像を楕円形に切り取って縁をぼかす

GIMPで画像を楕円形に切り取るだけだったり、四角い画像の縁をぼかしたりすること ( フィルター > 装飾 > ファジー縁取り )は以前からできていた。

だけど、画像を楕円形に切り取ったうえで、その楕円状の画像の縁をぼかすって方法が分からなかっただが、ようやくできるようになったので手順を記録。

  • レイヤー > 透明部分 > アルファチャンネルの追加
  • 楕円選択で範囲を選ぶ
  • 選択 > 選択範囲の反転
  • 選択 > 境界をぼかす
    • 縁をぼかす量 > 100.000px ぐらい
  • 編集 > 消去

参考リンク GIMPで写真のふちをぼかす2つの方法

f:id:adbird:20181230223407j:plain

LaTeX(LuaLaTeX《ltjtbook》) で B6・縦書きの小説本・エッセイ本を作る

※ 近年、話題の jlreq クラス を使ったテンプレートはこちら ↓。

※ A5・縦書き・2段組に興味がある方はこちらへ ↓。


最終更新:
2022年10月7日。「A5tate-two-jlreq.sty」を修正(段落頭の「 の字下げ調整に bxjaprnind パッケージを使用)。
2022年5月8日。breakfbox パッケージの更新に合わせて、myuline--.styのダウンロードについて更新。


目次

環境

環境が変われば、うまくいかない場合もあるかもしれませんので、あしからず。

フォルダ内の構成

任意のフォルダ内が以下のような構成になるようにする。

任意のフォルダ
├── B6tate.sty
├── breakfbox.sty
├── myuline--.sty
├── pic (画像ファイルを入れるフォルダ)
│    ├── cat001.jpg
│    ├── cat002.jpg
│    ├── cat003.jpg
│    └── cat004.jpg
├── uline--.sty
└── 原稿.tex

準備

  • Windowsの人はファイルの拡張子が表示されるようにしておいてください。

LaTeXTeX Live)のインストール

リンク先を参照のこと。
僕の場合、「TeX Live のインストーラを使ってインストールする」方法でインストールしている。
インストールに2時間近くかかる…。

TeX Wiki / Linux

TeX Wiki / TeX Live/Windows

uline--.sty breakfbox.sty myuline--.sty

下線・波線などのために必要なTeXスタイルファイル。
breakfbox パッケージから、以下の3つのファイルを入手する。

  • uline--.sty
  • myuline--.sty
  • breakfbox.sty

B6tate.sty

テキストエディタを開いて、以下をコピペして「B6tate.sty」として保存。
細かい調整等はこれをいじってください。

%フォント指定のためのパッケージ
%\usepackage{luatexja-fontspec}
%欧文・数字フォント(フォントによっては文字が欠落する場合があるので注意)
%\setmainfont{TakaoExMincho}
%\setsansfont{TakaoExMincho}
%ここで日本語フォント指定 (フォントによっては文字が欠落する場合があるので注意)
%\setmainjfont{TakaoExMincho}
%\setsansjfont{TakaoExMincho}

\usepackage{luatexja-otf}

%ルビや傍点  例 \ruby{山﨑}{やま|さき} 
\usepackage{pxrubrica}

%表
\usepackage{longtable}
\usepackage{booktabs}
%下線・波線・囲み文字 https://github.com/doraTeX/breakfbox から uline--.sty と breakfbox.sty を入手
\usepackage[usetype1]{uline--}
\usepackage{breakfbox}
%脚注番号を (1)に変更
\renewcommand\thefootnote{(\arabic{footnote})}
%脚注番号を 1)に変更
%\renewcommand\thefootnote{\arabic{footnote})}

%リンク しおり
\usepackage[hidelinks,unicode=true]{hyperref}
    
%縦中横数字
\usepackage{lltjext}

%画像
%\usepackage[export]{adjustbox}
\usepackage{graphicx}

%1行目を1文字目インデント
\usepackage{indentfirst}

% 原稿ページ設定(B6[JIS規格])
\paperwidth 128mm
\paperheight 182mm
\topmargin -15mm
\headheight 3mm
\headsep 7mm
\oddsidemargin -7mm
\evensidemargin -8mm
\textwidth 137mm %縦書なので、これがテキストの「高さ」
\textheight 93mm %縦書なので、これがテキストの「幅」(行の幅×行数+行間×行間数)
\footskip 15mm

\renewcommand{\baselinestretch}{1} %行間

%\pagestyle{bothstyle}

%タイトルページ出力
\usepackage{titlesec}

%タイトルページの再定義
\makeatletter
\if@titlepage
  \renewcommand{\maketitle}{\begin{titlepage}%
  \let\footnotesize\small
  \let\footnoterule\relax
  \let\thanks\p@thanks
  \let\footnote\thanks
  \vbox to\textheight\bgroup\tate\hsize\textwidth
  \null\vfil
  \vskip 63\p@ %右余白
  \begin{center}%
%タイトルと作者を表示
    {\LARGE \@title}\hspace{4em}{\large \@author \par}%
%タイトルのみ表示
%    {\LARGE \@title}%
  \end{center}\par
  \vfil{\centering\@thanks}\vfil\null
  \egroup
  \end{titlepage}%
  }%
\makeatother

%ヘッダー、フッター調整。文字を小さく(\footnotesize)。
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[ol]{\footnotesize\leftmark} %奇数ページ左上に「偶数ページ用の柱=章」
\fancyhead[er]{\footnotesize\rightmark} %偶数ページ右上に「奇数ページ用の柱=節」
\fancyfoot[ol]{\footnotesize\thepage} %奇数ページ右上にページ番号
\fancyfoot[er]{\footnotesize\thepage} %偶数ページに右下にページ番号
\renewcommand{\headrulewidth}{0pt} %ヘッダーの下線の太さ
\renewcommand{\footrulewidth}{0pt} %フッターの下線の太さ

%1頁目を空白ページにしない。\白紙ページにfootnombreスタイルを適用
\makeatletter
\def\cleardoublepage{\clearpage
\if@twoside
  \ifodd\c@page\else
      \hbox{}\thispagestyle{footnombre}\newpage
      \if@twocolumn\hbox{}\newpage\fi
  \fi\fi}
\makeatother

%footnombre 白紙ページ、各章の最初のページのノンブルを小さく
\makeatletter
\def\ps@footnombre{\let\@mkboth\@gobbletwo
    \let\ps@jpl@in\ps@footnombre
  \def\@evenfoot{\hfil\footnotesize\thepage}%\footnotesizeで小さく
  \def\@oddfoot{\footnotesize\thepage\hfil}%\footnotesizeで小さく
  \let\@oddhead\@empty\let\@evenhead\@empty}
\let\ps@jpl@in\ps@footnombre
\makeatother

%%以下、目次のページ設定%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%目次ページのヘッダーを削除。
\makeatletter
\renewcommand{\tableofcontents}{%
  \if@twocolumn\@restonecoltrue\onecolumn
  \else\@restonecolfalse\fi
  \chapter*{\contentsname
    \@mkboth{}{}
    %\@mkboth{\contentsname}{\contentsname}
  }\@starttoc{toc}%
  \if@restonecol\twocolumn\fi
}
\makeatother

% hyperref.styの関係で、目次ページ番号が寝てしまうので、正しく縦向きに。 参考:http://id.fnshr.info/2017/05/20/my-latex-templates-201705/
\makeatletter
\def\contentsline#1#2#3#4{\csname l@#1\endcsname{\hyper@linkstart{link}{#4}{#2}\hyper@linkend}{\rensuji{#3}}}
\makeatother

%目次の節以下の点線を3点リーダーに。節(section)以降のページ下余白調整
\makeatletter
\def\@dottedtocline#1#2#3#4#5{%
  \vskip\toclineskip \@plus.2\p@%
  {\setlength{\parfillskip}{5em}%節(section)以降の下余白
    \parindent #2\relax\@afterindenttrue
   \interlinepenalty\@M
   \leavevmode
   \@lnumwidth #3\relax
   \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip
    {#4}\nobreak
 \leaders\hbox to 3pt{\hfil\raise3pt\hbox{.}\hfil}%
     \hfill \nobreak\hbox to\@pnumwidth{%
         \hss\reset@font\rmfamily\small \normalcolor #5}\par}}
\makeatother

%目次の章(chapter)の設定
\makeatletter
\renewcommand*{\l@chapter}[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \addvspace{1.0em \@plus\p@}%目次の行間
    \begingroup
      %\parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip
      \setlength{\parindent}{3em}%インデント(上部余白)
      \setlength{\parfillskip}{5em}%下余白
      \leavevmode\bfseries
      \setlength\@lnumwidth{2em}%数字と目次本文との間
      \advance\leftskip\@lnumwidth \hskip-\leftskip
      #1\nobreak\hfil\nobreak\hb@xt@\@pnumwidth{\hss#2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\makeatother

%目次の節(section)の設定。
%\renewcommand*{\l@区分}{\@dottedtocline{レベル}{インデント量}{ラベル幅(数字+余白)}}
\makeatletter
\renewcommand*{\l@section}{\@dottedtocline{1}{4em}{2em}}
\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%脚注のインデント調整
\renewcommand\thefootnote{\rensuji{\arabic{footnote}}}

\makeatletter
\long\def\@makefntext#1{\parindent 1em\noindent 
\@hangfrom{\hbox to 1.8em{\hss{\@makefnmark}}}#1}
\makeatother

%見出しの数字を変更
\renewcommand{\thechapter}{\rensuji{\arabic{chapter}}}  %%章レベルをアラビア数字に
%\renewcommand{\thechapter}{第\rensuji{\arabic{chapter}}章}  %% 第1章
%\renewcommand{\thechapter}{\Kanji{chapter}}  %% 章レベルを漢数字に
%\renewcommand{\thechapter}{第\Kanji{chapter}章}  %% 第一章
%\renewcommand{\thesection}{\rensuji{\arabic{section}}}  %% 節レベルをアラビア数字に
\renewcommand{\thesection}{\Kanji{section}}  %% 節レベルを漢数字に

%見出しの調整 \fontsize{フォントサイズ}{2行以上になったときの行間}
\titleformat{\chapter}
  {\normalfont\fontsize{12}{15}\bfseries}{\thechapter}{1em}{}
\titleformat{\section}
  {\normalfont\fontsize{10}{15}\bfseries}{\thesection}{1em}{}
%見出しの余白調整 
\titlespacing{\chapter} {0mm} %見出しの上の余白
    {4.4mm}%見出しの右の余白
    {9mm}%見出しと本文の余白 

%目次に「第」や「章」をつけない
\renewcommand{\prepartname}{}
\renewcommand{\postpartname}{}
\renewcommand{\prechaptername}{}%章レベルの前
\renewcommand{\postchaptername}{}%章レベルの後

%写真のキャプションに「図」を入れない
\renewcommand{\figurename}{}

%画像まわり再定義
\makeatletter
\renewcommand{\thefigure}{%
 %\ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@figure} %%画像のキャプションに余計な文字や数字を入れない
 }
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename\thefigure}
\makeatother

%キャプションまわりの余白を再定義
% [Tex tips](http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/tex/tex-tips2.html)を参照のこと
\abovecaptionskip=-8pt

\makeatletter
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \iftdir\sbox\@tempboxa{#1\hskip1zw#2}%
    \else\sbox\@tempboxa{#1 #2}%
  \fi
  \ifdim \wd\@tempboxa >\hsize
    \iftdir #1\hskip1zw#2\relax\par
      \else #1 #2\relax\par\fi
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip
  }
\makeatother

%ダッシュをつなげる 参照:https://qiita.com/isari/items/1d0b60b76c7ef168e376
\usepackage{newunicodechar}
\makeatletter
\chardef\my@J@horizbar="2015% Unicodeの2015
\newunicodechar{―}{\x@my@dash}
\def\x@my@dash{\@ifnextchar―{%
  \my@J@horizbar\kern-.5\zw\my@J@horizbar\kern-.5\zw}{%
    \my@J@horizbar}}
% 次が―なら2回目のkernまでを、そうでないなら普通の―を出力
\makeatother    

%段落頭の「 の字下げ調整に bxjaprnind パッケージを使用
\usepackage[force]{bxjaprnind}
\useparheadparenindent
\parheadparenindentamount{-0.5}

原稿.tex を書いていく。

文字コードUTF-8で。

\documentclass[]{ltjtbook}

%%自作のB6tate.styを適用
\usepackage{B6tate} 

\title{吾輩は猫である} 
\author{夏目 漱石} 
\date{\today} 

\begin{document}
​ \maketitle %タイトルを挿入
​ \tableofcontents %目次を挿入

%以下に本文を書いていく。

\chapter*{はじめに\markboth{はじめに}{}}
\addcontentsline{toc}{chapter}{はじめに}

用紙B6サイズの縦書きの文章が書けます。

細かい調整をしたい場合は、B6tate.styをいじってください。

\oline{傍線}、そして、\kenten{傍点}……。

ダッシュ(―)を二つ。――。

〝ダブルミニュート(二重引用符)〟〝〟を「かっこ」と打てば出てくるように単語登録しておけばいいかも。

目次の挿入には「\$ lualatex 原稿」を2回実行する必要があります。

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{93mm} %
\centering
\includegraphics[width=93mm]{./pic/cat001.jpg} %
\caption{多賀山公園のネコ} %
\end{minipage}
\end{center}
\end{figure}



\chapter{見出し 吾輩は猫である。}

吾輩は猫である。名前はまだ無い。

どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番\ruby{獰悪}{どう|あく}な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで\ruby{薬缶}{や|かん}だ。その後猫にもだいぶ逢ったがこんな片輪には一度も出会わした事がない。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙を吹く。どうも咽せぽくて実に弱った。これが人間の飲む煙草というものである事はようやくこの頃知った。

この書生の掌の裏でしばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。書生が動くのか自分だけが動くのか分らないが無暗に眼が廻る。胸が悪くなる。到底助からないと思っていると、どさりと音がして眼から火が出た。それまでは記憶しているがあとは何の事やらいくら考え出そうとしても分らない。

ふと気が付いて見ると書生はいない。たくさんおった兄弟が一疋も見えぬ。肝心の母親さえ姿を隠してしまった。その上今までの所とは違って無暗に明るい。眼を明いていられぬくらいだ。はてな何でも容子がおかしいと、のそのそ這い出して見ると非常に痛い。吾輩は藁の上から急に笹原の中へ棄てられたのである。

ようやくの思いで笹原を這い出すと向うに大きな池がある。吾輩は池の前に坐ってどうしたらよかろうと考えて見た。別にこれという分別も出ない。しばらくして泣いたら書生がまた迎に来てくれるかと考え付いた。ニャー、ニャーと試みにやって見たが誰も来ない。そのうち池の上をさらさらと風が渡って日が暮れかかる。腹が非常に減って来た。泣きたくても声が出ない。仕方がない、何でもよいから食物のある所まであるこうと決心をしてそろりそろりと池を左りに廻り始めた。どうも非常に苦しい。そこを我慢して無理やりに這って行くとようやくの事で何となく人間臭い所へ出た。ここへ這入ったら、どうにかなると思って竹垣の崩れた穴から、とある邸内にもぐり込んだ。縁は不思議なもので、もしこの竹垣が破れていなかったなら、吾輩はついに路傍に餓死したかも知れんのである。一樹の蔭とはよく云ったものだ。この垣根の穴は今日に至るまで吾輩が隣家の三毛を訪問する時の通路になっている。さて邸へは忍び込んだもののこれから先どうして善いか分らない。そのうちに暗くなる、腹は減る、寒さは寒し、雨が降って来るという始末でもう一刻の猶予が出来なくなった。仕方がないからとにかく明るくて暖かそうな方へ方へとあるいて行く。今から考えるとその時はすでに家の内に這入っておったのだ。ここで吾輩は彼の書生以外の人間を再び見るべき機会に遭遇したのである。第一に逢ったのがおさんである。これは前の書生より一層乱暴な方で吾輩を見るや否やいきなり頸筋をつかんで表へ抛り出した。いやこれは駄目だと思ったから眼をねぶって運を天に任せていた。しかしひもじいのと寒いのにはどうしても我慢が出来ん。吾輩は再びおさんの隙を見て台所へ這い上った。すると間もなくまた投げ出された。吾輩は投げ出されては這い上り、這い上っては投げ出され、何でも同じ事を四五遍繰り返したのを記憶している。その時におさんと云う者はつくづくいやになった。この間おさんの三馬を偸んでこの返報をしてやってから、やっと胸の痞が下りた。吾輩が最後につまみ出されようとしたときに、この家の主人が騒々しい何だといいながら出て来た。下女は吾輩をぶら下げて主人の方へ向けてこの宿なしの小猫がいくら出しても出しても御台所へ上って来て困りますという。主人は鼻の下の黒い毛を撚りながら吾輩の顔をしばらく眺めておったが、やがてそんなら内へ置いてやれといったまま奥へ這入ってしまった。主人はあまり口を聞かぬ人と見えた。下女は口惜しそうに吾輩を台所へ抛り出した。かくして吾輩はついにこの家を自分の住家と極める事にしたのである。

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{93mm}
\centering
\includegraphics[width=93mm]{./pic/cat002.jpg}
\caption{吾輩は猫である。名前はまだ無い。}
\end{minipage}
\end{center}
\end{figure}

吾輩の主人は滅多に吾輩と顔を合せる事がない。職業は教師だそうだ。学校から帰ると終日書斎に這入ったぎりほとんど出て来る事がない。家のものは大変な勉強家だと思っている。当人も勉強家であるかのごとく見せている。しかし実際はうちのものがいうような勤勉家ではない。吾輩は時々忍び足に彼の書斎を覗いて見るが、彼はよく昼寝をしている事がある。時々読みかけてある本の上に涎をたらしている。彼は胃弱で皮膚の色が淡黄色を帯びて弾力のない不活溌な徴候をあらわしている。その癖に大飯を食う。大飯を食った後でタカジヤスターゼを飲む。飲んだ後で書物をひろげる。二三ページ読むと眠くなる。涎を本の上へ垂らす。これが彼の毎夜繰り返す日課である。吾輩は猫ながら時々考える事がある。教師というものは実に楽なものだ。人間と生れたら教師となるに限る。こんなに寝ていて勤まるものなら猫にでも出来ぬ事はないと。それでも主人に云わせると教師ほどつらいものはないそうで彼は友達が来る度に何とかかんとか不平を鳴らしている。

吾輩がこの家へ住み込んだ当時は、主人以外のものにははなはだ不人望であった。どこへ行っても跳ね付けられて相手にしてくれ手がなかった。いかに珍重されなかったかは、今日に至るまで名前さえつけてくれないのでも分る。吾輩は仕方がないから、出来得る限り吾輩を入れてくれた主人の傍にいる事をつとめた。朝主人が新聞を読むときは必ず彼の膝の上に乗る。彼が昼寝をするときは必ずその背中に乗る。これはあながち主人が好きという訳ではないが別に構い手がなかったからやむを得んのである。その後いろいろ経験の上、朝は飯櫃の上、夜は炬燵の上、天気のよい昼は椽側へ寝る事とした。しかし一番心持の好いのは夜に入ってここのうちの小供の寝床へもぐり込んでいっしょにねる事である。この小供というのは五つと三つで夜になると二人が一つ床へ入って一間へ寝る。吾輩はいつでも彼等の中間に己れを容るべき余地を見出してどうにか、こうにか割り込むのであるが、運悪く小供の一人が眼を醒ますが最後大変な事になる。小供は――ことに小さい方が質がわるい――猫が来た猫が来たといって夜中でも何でも大きな声で泣き出すのである。すると例の神経胃弱性の主人は必ず眼をさまして次の部屋から飛び出してくる。現にせんだってなどは物指で尻ぺたをひどく叩かれた。

\chapter{縦長の写真のテスト}

縦長の写真。

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{93mm}
\centering\includegraphics[width=93mm]{./pic/cat003.jpg}
\caption{黒猫}
\end{minipage}
\end{center}
\end{figure}

\chapter*{あとがき\markboth{あとがき}{}}
\addcontentsline{toc}{chapter}{あとがき}

あとがきとか、謝辞を書きましょう。

\rightline{広告鳥}

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{93mm}
\centering
\includegraphics[width=93mm]{./pic/cat004.jpg}
\caption{}
\end{minipage}
\end{center}
\end{figure}

%奥付け
\clearpage
\thispagestyle{empty}
\begin{minipage}<y>[htpb]{93mm}
\begin{center}
​ \vspace{9cm} %奥付のページ上部からの位置

\begin{tabular}{l}
\multicolumn{1}{c}{\large{吾輩は猫である}}\\[3mm] %%タイトル
\hline
\\[-3mm]
\hspace{2mm}\normalsize{著\hspace{2mm}者}\hspace{5mm}夏目 漱石\\[0mm]  %%著者
\hspace{2mm}\small{発行日\hspace{5mm}\today}\\[0mm] %%発行日。「\today」のところに任意の日付を入れてもいい。
\hspace{2mm}\small{発行者}\hspace{5mm}{\small 広告鳥}\hspace{45mm}\scriptsize{※無断転載禁止}\\[-3mm]  %%発行者
\\\hline
\end{tabular}
\end{center}
\end{minipage}

\end{document}

%書き方メモ。コピペするときは頭のコメントアウト(%)を外して使う。
%
%「はじめに」とか「おわりに」など、章番号をつけたくないとき。
%\chapter*{はじめに\markboth{はじめに}{}}
%\addcontentsline{toc}{chapter}{はじめに}
%
%画像は以下をコピペ。
%\begin{figure}
%\begin{center}
%\begin{minipage}<y>[htbp]{93mm}
%\centering
%\includegraphics[width=93mm]{./pic/画像.jpg}%画像の幅と画像ファイルの指定
%\caption{キャプション}
%\end{minipage}
%\end{center}
%\end{figure}
%

実行

Ubuntuならフォルダ内で右クリック > 端末で開く で端末を開いて、下記を実行。
目次作成のためには2回実行する必要がある。

$ lualatex 原稿

完成

原稿.pdfができているはず。

スマホ(Android)のTermuxでGraphicsMagick(or ImageMagick)を使って複数の画像を一括縮小

※最終更新 : 2020年3月18日。



僕は通話専用のガラケーと、データ通信専用の格安スマホの2台持ちなのだが、スマホの通信プランは月1GB+前月までの残通信量(最大1GB)=ひと月、最大2GBという少ない通信量である。まあ、そのおかげでガラケースマホで合わせて月1,500円程度のコストなのだが。

それでも自宅ではWifiだし、外では動画などの大きい容量のデータのダウンロードや閲覧はしないようにしているので、前月の通信量が結構残ることが多く、特に困ることはない。

しかし、外出先でスマホで撮った写真をツイッターとかでアップロードしたいときもある。その日のうちに自宅に帰れるのなら、自宅に戻ってからアップすることもあるのだが、帰省中などWifiがない場合やすぐにアップしたいときに、少ない通信量しかない僕のプランではスマホの画像データの容量もバカにならない…。

そこで以前は、画像をリサイズできるアプリを使って、1枚ずつ縮小してからアップしていたのだが、これが結構手間だった。 とくに1回の投稿で複数枚の画像をアップするときなど。

複数の画像を一括で縮小できるアプリもあるっぽいみたいだったが、ふと、「スマホでも端末(ターミナル)開いて、Imagemagick の mogrify で一括縮小できないかなぁ」と思って調べたら、Termux というAndroidLinuxコマンドが使える端末アプリがあるじゃないですか!!

そして、ついに比較的簡単(?)に複数枚の画像を一括縮小する環境を作ることができた。

準備編

Termux インストール

  • Termuxをインストール。
    • Google Playでダウンロードする場合、Termux自体は無料だが、後述の Termux:Widget は有料になる。Termux:Widget はあれば便利というものなので、必ず必要というものではない。
    • F-Droidでダウンロードする場合、Termux:Widget も無料。ただし、インストールの際にセキュリティ関連の警告が出るので、諸々自己責任で…。F-Droid経由でダウンロード・インストールする場合は、まずはF-Droid自体をインストールすることが推奨されてている。そうしないと、アプリの更新の通知が来ないので。

※注意!:Google PlayでTermuxをインストールしたら、Termux:Widget などのTermux関連のアプリも全部、Google Play経由でインストールすること。逆にF-DroidでTermuxをインストールしたら、その他のTermux関連アプリは全部、F-Droid経由でインストールすること。混ぜるな危険!らしい。

Termuxを起動すると、こんな感じ。

f:id:adbird:20181229133957p:plain
Temux

おぉ、端末(ターミナル)だ!
とりあえず、下記のことをすべし。

$ pkg update
$ pkg upgrade
$ termux-setup-storage

最後のコマンドで「アクセスを許可しますか?」と聞かれたら、許可をする。

tree インストール

端末で困るのは、現在の自分の場所がどこなのか、自分がいる場所はどんなフォルダ・ファイル構成になっているのがわかりづらいこと。

自分の場所を知るには下記コマンドで分かる。

$ pwd

自分がいる場所のフォルダ・ファイル構成は $ tree で分かる。

$ pkg install tree

でインストールして、

$ tree

で、フォルダ構造が表示される。
後述するように、ファイルの確認でも使う。

GraphicsMagick または ImageMagick をインストール

お好みでGraphicsMagickまたはImageMagickをインストールする。

$ pkg install graphicsmagick

または

$ pkg install imagemagick

GraphicsMagickはImageMagickより画像変換速度が速い。ただし、本当かどうかは分からないが、画質はImageMagickの方がいいという情報も。

作業フォルダ(「画像リサイズ」)作成

~/storage/pictures/ の場所が、スマホ内部のどこに当てられているかを確認。

$ tree

たぶん、「本体(内部) > Pictures」(/storage/emulated/0/Pictures)になっていると思う。

「本体(内部) > Pictures」内に移動して、「画像リサイズ」フォルダを作成、確認する。

$ cd ~/storage/pictures/
$ mkdir 画像リサイズ
$ tree -L 1

一応、スマホの適当なファイルマネージャーで「本体(内部) > Pictures」を開いて見たときと、上記の $ tree -L 1 で表示された構成と同じになっているか(「画像リサイズ」フォルダがあるか)を確認する。

ホームに戻る。

$ cd

スクリプトファイル作成

スマホの小さい画面の端末でいちいち $ cd で画像の入っている目的のフォルダまで移動してから一括縮小のコマンドを打つ、なんてことはしたくない。
termux を開いて、すぐにコマンド一発で縮小できるようにしたい!ということでスクリプトファイルを作成。

次の2つのスクリプトを作成(スクリプトの名前は任意でOK)。

  • resize.sh : スクリプトを実行するだけで、スマホのカメラで撮影した画像を縮小できる。ただし、縮小されるのは現在の日付の画像のみ
  • resize2.sh : ファイルマネージャーを立ち上げて、画像をその都度、手作業で移動させてからスクリプトを実行して、画像を縮小する場合。

resize.sh

スマホスクリプトを書いてもいいけど、キーボードを使えるパソコンで書いたほうが速いので、パソコンで作った。(Windowsの場合、文字コードUTF-8にしたほうがいいかも。) 今回は縮小サイズを50%とした。縮小割合はお好みで。

#!/data/data/com.termux/files/usr/bin/sh
cp ~/storage/dcim/Camera/IMG_$(date +%Y%m%d)_*.jpg ~/storage/pictures/画像リサイズ
cd ~/storage/pictures/画像リサイズ
gm mogrify -resize 50% *.jpg

内容はスマホの環境によってだいぶ変わると思うので、ご自身の環境に合わせて書き換えてください。

※ ImageMagickの方を使う場合は、gm mogrify -resize 50% *.jpg のところを mogrify -resize 50% *.jpg にする。

各行の説明は以下の通り。

  • cp ~/storage/dcim/Camera/IMG_$(date +%Y%m%d)_*.jpg ~/storage/pictures/画像リサイズ
    • ~/storage/dcim/Camera/ 内に入っている、現在の日時の入っている画像ファイルを、上述の「画像リサイズ」フォルダにコピー。
    • 僕のスマホはカメラで撮った画像が ~/storage/dcim/Camera/ の中に IMG_20191211_214724.jpg というような名前で保存される。つまり、画像ファイル名の真ん中が撮影した日付になっている。それを利用して、IMG_$(date +%Y%m%d)_*.jpg とすることで、現在の日付の画像ファイルだけを選んでコピーできる。
    • もし、画像ファイル名に日付が入らない場合は、このスクリプトは使えないかも…。
  • cd ~/storage/pictures/画像リサイズ
    • 「画像リサイズ」フォルダに移動。
  • gm mogrify -resize 50% *.jpg
    • GraphicsMagickで、そのフォルダ内にある画像をすべて50%縮小する。

resize2.sh

#!/data/data/com.termux/files/usr/bin/sh
cd ~/storage/pictures/画像リサイズ
gm mogrify -resize 50% *.jpg
  • cd ~/storage/pictures/画像リサイズ
    • 「画像リサイズ」フォルダに移動。
  • gm mogrify -resize 50% *.jpg
    • GraphicsMagickで、そのフォルダ内にある画像をすべて50%縮小する。

※ ImageMagickの方を使う場合は、gm mogrify -resize 50% *.jpg のところを mogrify -resize 50% *.jpg にする。

スクリプトを移動させる

作成した resize.sh をグーグルドライブ経由(べつにグーグルドライブでなくてもいい。メールで添付とかでも。)でスマホにダウンロードしたら、「Downloads」フォルダにあるはずなので、termuxでダウンロードフォルダに移動。

$ cd ~/storage/downloads

resize.shがあるかを確認。

$ tree

resize.sh、resize2.shがあることを確認したら、以下のようにresize.shとresize2.shを /bin フォルダにコピー。

$ cp resize.sh $PREFIX/bin/resize.sh
$ cp resize2.sh $PREFIX/bin/resize2.sh

実行権限を与える。

$ cd $PREFIX/bin
$ chmod +rx resize.sh
$ chmod +rx resize2.sh

実行権限が与えられえているか確認する。

$ ls -l resize.sh
$ ls -l resize2.sh

で、-rwx-- となっていればOK。

これで準備終わり。一度、termuxを閉じるか、$ cd でホームに戻る。

実行編(コマンド入力の場合)

撮影した当日に画像を縮小する場合

(そもそもカメラで撮影した画像のファイル名に日付が入ることを前提に resize.sh を作成しているので、スマホによってはこの方法は使えない可能性もある。)

スマホのカメラで写真を撮った後、termuxを起動してスクリプトを実行。

$ resize.sh

実行中は何も表示されなくて不安になるけど、じっと待つw。

端末に再び「$」が表示されれば、「画像リサイズ」フォルダ内に縮小された画像が入っている。

Termuxをちゃんと

$ exit

で終了させれば、入力コマンドが履歴として残るので、次回からはTermuxを起動させて「↑」を押せば、すぐに $ resize.sh が実行できる。

撮影した翌日以降に画像を縮小する場合

ファイルマネージャー等で、スマホで撮った画像データを「画像リサイズ」フォルダにコピーする。

Yahoo!ファイルマネージャーが、目的のフォルダをスマホのホーム画面にショートカットとして置けるし、画面を2分割してドラッグ&ドロップできるし便利な感じ。

f:id:adbird:20181229125945p:plain

termuxを起動して、スクリプト実行。

$ resize2.sh

端末に再び「$」が表示されれば、「画像リサイズ」フォルダ内の画像が縮小されている。

繰り返しになるが、Termuxをちゃんと

$ exit

で終了させれば、入力コマンドが履歴として残るので、次回からはTermuxを起動させて「↑」を押せば、すぐに $ resize2.sh が実行できる。

僕の貧弱なスマホのスペックではわずか数枚の縮小にも結構、時間がかかった…。

あまり大量に一括縮小するのは時間がかかりすぎるので止めておいたほうがいいかも。

GraphicsMagickを使うことで変換時間が速くなった!

追記:実行編(ウェジェットでコマンド要らずで実行)

いちいちTermux起動して、入力履歴にあるとはいえ、コマンドを入れて…が面倒…。

スマホのホーム画面にスクリプトのショートカットアイコンを置いて、それをタップするだけで画像縮小できないだろうか…?と思って調べたら、できた!

Termux:Widget をインストール

Termux:WidgetGoogle PlayまたはF-Droidからインストール。

注意!:冒頭でも述べたように、Google PlayでTermuxをインストールしたら、Termux:Widget などのTermux関連のアプリも全部、Google Play経由でインストールすること。
逆にF-DroidでTermuxをインストールしたら、その他のTermux関連アプリは全部、F-Droid経由でインストールすること。

ちなみに僕のはF-Droid版。

スクリプトウィジェットに登録

正しい説明はTermux:Widget - Termux Wikiを参照のこと。

Termuxを起動して、$HOMEに「.shortcuts」フォルダを作成。

$ mkdir -p $HOME/.shortcuts

前述の resize.sh と resize2.sh が「ダウンロード」フォルダ内に残っているという前提で、その「downloads」フォルダに移動(下記の1行目)して、resize.sh と resize2.sh を上記の「.shortcuts」フォルダにコピー(2・3行目)、実行権限を与える(4・5行目)。

$ cd storage/downloads
$ cp resize.sh $HOME/.shortcuts/resize.sh
$ cp resize2.sh $HOME/.shortcuts/resize2.sh
$ chmod +x $HOME/.shortcuts/resize.sh
$ chmod +x $HOME/.shortcuts/resize2.sh

実行権限がちゃんと変わったかを確認したい場合は、下記の結果に「x」が含まれていればOK。

$ ls -l $HOME/.shortcuts/resize.sh
$ ls -l $HOME/.shortcuts/resize2.sh

Termuxを終了させる。

$ exit

スマホのホーム画面にショートカットのメニュー一覧またはアイコンを置く。

スマホによって設定が違うだろうけど、僕のスマホの場合は、ホーム画面の空いているところを長押しすると、ウィジェットを設定する画面が出てくるので、その中から Termux:Widget のウェジェットを探して、スクリプトメニュー一覧か、ショートカットアイコンを選択。画像はショートカットアイコンを置いた場合のもの。

f:id:adbird:20200318022710j:plain

これでアイコンをタップするだけで、画像が縮小できる!

撮影した当日に画像を縮小する場合は、カメラで撮影した後、「resize.sh」のアイコンをタップ。

撮影した翌日以降に画像を縮小する場合は、ファイルマネージャー等で、スマホで撮った画像データを「画像リサイズ」フォルダにコピーして、「resize2.sh」のアイコンをタップ。

撮影した当日に「resize.sh」のアイコンをタップして、さらに縮小したい場合、「resize2.sh」のアイコンをタップという組合せ技も可能。

LaTeX(LuaLaTeX《ltjtbook》) で A5・縦書き・2段組の小説本・エッセイ本を作る

このテンプレートはltjtbook クラスファイルを使用しています。jlreqクラスを使いたい場合は LaTeX(LuaLaTeX 《 jlreq 》) で A5・縦書き・2段組の小説本・エッセイ本を作る を参照のこと。


最終更新:
2022年10月7日。「A5tate-two-jlreq.sty」を修正(段落頭の「 の字下げ調整に bxjaprnind パッケージを使用)。
2022年6月9日:「原稿.tex」の「縦長1枚の画像」の書き方を修正。
2022年5月8日。breakfbox パッケージの更新に合わせて、myuline--.styのダウンロードについて更新。


以前、Pandoc + LaTeX で markdownからA5・縦書き・2段組の小説本のPDFを作成 という記事を書いた。一度、下準備さえすれば、あとは楽なのだけど、その下準備が多すぎる…。

ということで、普通にLaTeX(LuaLaTeX)で原稿を書きたい人のために。

縦書きの日本語クラスファイルとしては、jlreq が今アツいらしいので、いつか試したいのだけど(追記:jlreqクラスでも作った)、とりあえず、以前の記事で作った独自スタイルファイル(A5tate-twocolumn.sty)の遺産が使える ltjtbook クラスファイルで構成した。

※ B6サイズで縦書きをしたい人は、 LaTeX(LuaLaTeX) で B6・縦書きの小説本・エッセイ本を作る (※ltjtbook クラスファイル使用)へ。

追記:Cloud LaTeX テンプレートに収録されました!

Cloud LaTeX のテンプレートに、「小説本・エッセイ本テンプレート (A5・ltjtbook版・LuaLaTeX)」として収録していただきました!!

わざわざローカル(自分のPC)にLaTeXをインストールしたり、スタイルファイルを用意したりしなくても、Cloud LaTeX に登録さえすれば、ブラウザだけで「A5・縦書き・2段組の小説本・エッセイ本」を作れます。

でも、やはり万が一を考えて、ローカルにも環境を揃えておきたいという人は、下記手順をご参考に。

目次

環境

環境が変われば、うまくいかない場合もあるかもしれませんので、あしからず。

フォルダ内の構成

任意のフォルダ内が以下のような構成になるようにする。

任意のフォルダ
├── A5tate-twocolumn.sty
├── breakfbox.sty
├── myuline--.sty
├── pic (画像ファイルを入れるフォルダ)
│    ├── cat001.jpg
│    ├── cat002.jpg
│    ├── cat003.jpg
│    └── cat004.jpg
├── uline--.sty
└── 原稿.tex

準備

  • Windowsの人はファイルの拡張子が表示されるようにしておいてください。

LaTeXTeX Live)のインストール

リンク先を参照のこと。
僕の場合、「TeX Live のインストーラを使ってインストールする」方法でインストールしている。
インストールに2時間近くかかる…。

TeX Wiki / Linux

TeX Wiki / TeX Live/Windows

uline--.sty breakfbox.sty myuline--.sty

下線・波線などのために必要なTeXスタイルファイル。
breakfbox パッケージから、以下の3つのファイルを入手する。

  • uline--.sty
  • myuline--.sty
  • breakfbox.sty

A5tate-twocolumn.sty

テキストエディタを開いて、以下をコピペして「A5tate-twocolumn.sty」として保存。
細かい調整等はこれをいじってください。

%%原稿ページ設定 lltjp-geometry.sty
    %A5サイズは148mm×210mmなので、
    % left + width + right=148mm に、
    % top + height + bottom=210mm にならないといけない。
    %まず、width(1行の幅×行数+1行間×行間数)を測ってから、leftとrightを決めないと本文が裏表で重ならない。
    %ltjtbookのオプションでtwosideを指定することが必要。
    %left=小口側の余白 right=ノド側の余白 headsep=本文とヘッダーとの余白 footskip=本文とヘッダー(ノンブル)との余白
\usepackage{ifluatex}
\usepackage{filehook}
\usepackage[top=17mm,bottom=17mm,left=17mm,width=111mm,right=20mm,headsep=5mm,footskip=9mm]{geometry}

%行間
\renewcommand{\baselinestretch}{1} 

%段と段の間隔を10mm
\setlength{\columnsep}{10mm}

%フォント指定のためのパッケージ
%\usepackage{luatexja-fontspec}
%欧文・数字フォント(フォントによっては文字が欠落する場合があるので注意)
%\setmainfont{M+ 1m-light}
%\setsansfont{M+ 1m-light}
%ここで日本語フォント指定 (フォントによっては文字が欠落する場合があるので注意)
%\setmainjfont[BoldFont=Ume Gothic]{M+ 1m-light}
%\setsansjfont{M+ 1m-light}

\usepackage{luatexja-otf}

%ルビや傍点  例 \ruby{山﨑}{やま|さき} 
\usepackage{pxrubrica}

%表
\usepackage{longtable}
\usepackage{booktabs}
%下線・波線・囲み文字 https://github.com/doraTeX/breakfbox から uline--.sty と breakfbox.sty を入手
\usepackage[usetype1]{uline--}
\usepackage{breakfbox}
%脚注番号を (1)に変更
\renewcommand\thefootnote{(\arabic{footnote})}
%脚注番号を 1)に変更
%\renewcommand\thefootnote{\arabic{footnote})}

%リンク しおり
\usepackage[hidelinks,unicode=true]{hyperref}

%縦中横数字
\usepackage{lltjext}

%画像
%\usepackage[export]{adjustbox}
\usepackage{graphicx}

%1行目を1文字目インデント
\usepackage{indentfirst}

%タイトルページ出力
\usepackage{titlesec}

%タイトルページの再定義
\makeatletter
\if@titlepage
  \renewcommand{\maketitle}{\begin{titlepage}%
  \let\footnotesize\small
  \let\footnoterule\relax
  \let\thanks\p@thanks
  \let\footnote\thanks
  \vbox to\textheight\bgroup\tate\hsize\textwidth
  \null\vfil
  \vskip 80\p@ %右余白
  \begin{center}%
%タイトルと作者を表示
    {\LARGE \@title}\hspace{4em}{\large \@author \par}%
%タイトルのみ表示
%    {\LARGE \@title}%
  \end{center}\par
  \vfil{\centering\@thanks}\vfil\null
  \egroup
  \end{titlepage}%
  }%
\makeatother

%ヘッダー、フッター調整。文字を小さく(\footnotesize)。
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[ol]{\footnotesize\leftmark} %奇数ページ左上に「偶数ページ用の柱=章」
\fancyhead[er]{\footnotesize\rightmark} %偶数ページ右上に「奇数ページ用の柱=節」
\fancyfoot[ol]{\footnotesize\thepage} %奇数ページ右上にページ番号
\fancyfoot[er]{\footnotesize\thepage} %偶数ページに右下にページ番号
\renewcommand{\headrulewidth}{0pt} %ヘッダーの下線の太さ
\renewcommand{\footrulewidth}{0pt} %フッターの下線の太さ

%1頁目を空白ページにしない。\白紙ページにfootnombreスタイルを適用
\makeatletter
\def\cleardoublepage{\clearpage
\if@twoside
  \ifodd\c@page\else
      \hbox{}\thispagestyle{footnombre}\newpage
      \if@twocolumn\hbox{}\newpage\fi
  \fi\fi}
\makeatother

%footnombre 白紙ページ、各章の最初のページのノンブルを小さく
\makeatletter
\def\ps@footnombre{\let\@mkboth\@gobbletwo
    \let\ps@jpl@in\ps@footnombre
  \def\@evenfoot{\hfil\footnotesize\thepage}%\footnotesizeで小さく
  \def\@oddfoot{\footnotesize\thepage\hfil}%\footnotesizeで小さく
  \let\@oddhead\@empty\let\@evenhead\@empty}
\let\ps@jpl@in\ps@footnombre
\makeatother


%%以下、目次のページ設定%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%目次ページのヘッダーを削除。
\makeatletter
\renewcommand{\tableofcontents}{%
  \if@twocolumn\@restonecoltrue\onecolumn
  \else\@restonecolfalse\fi
  \chapter*{\contentsname
    \@mkboth{}{}
    %\@mkboth{\contentsname}{\contentsname}
  }\@starttoc{toc}%
  \if@restonecol\twocolumn\fi
}
\makeatother

% hyperref.styの関係で、目次ページ番号が寝てしまうので、正しく縦向きに。 参考:http://id.fnshr.info/2017/05/20/my-latex-templates-201705/
\makeatletter
\def\contentsline#1#2#3#4{\csname l@#1\endcsname{\hyper@linkstart{link}{#4}{#2}\hyper@linkend}{\rensuji{#3}}}
\makeatother

%目次の節以下の点線を3点リーダーに。節(section)以降のページ下余白調整
\makeatletter
\def\@dottedtocline#1#2#3#4#5{%
  \vskip\toclineskip \@plus.2\p@%
  {\setlength{\parfillskip}{5em}%節(section)以降の下余白
    \parindent #2\relax\@afterindenttrue
   \interlinepenalty\@M
   \leavevmode
   \@lnumwidth #3\relax
   \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip
    {#4}\nobreak
 \leaders\hbox to 3pt{\hfil\raise3pt\hbox{.}\hfil}%
     \hfill \nobreak\hbox to\@pnumwidth{%
         \hss\reset@font\rmfamily\small \normalcolor #5}\par}}
\makeatother

%目次の章(chapter)の設定
\makeatletter
\renewcommand*{\l@chapter}[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \addvspace{1.0em \@plus\p@}%目次の行間
    \begingroup
      %\parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip
      \setlength{\parindent}{3em}%インデント(上部余白)
      \setlength{\parfillskip}{5em}%下余白
      \leavevmode\bfseries
      \setlength\@lnumwidth{2em}%数字と目次本文との間
      \advance\leftskip\@lnumwidth \hskip-\leftskip
      #1\nobreak\hfil\nobreak\hb@xt@\@pnumwidth{\hss#2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\makeatother

%目次の節(section)の設定。
%\renewcommand*{\l@区分}{\@dottedtocline{レベル}{インデント量}{ラベル幅(数字+余白)}}
\makeatletter
\renewcommand*{\l@section}{\@dottedtocline{1}{4em}{2em}}
\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%脚注のインデント調整
\renewcommand\thefootnote{\rensuji{\arabic{footnote}}}

\makeatletter
\long\def\@makefntext#1{\parindent 1em\noindent 
\@hangfrom{\hbox to 1.8em{\hss{\@makefnmark}}}#1}
\makeatother

%見出しの数字を変更
\renewcommand{\thechapter}{\rensuji{\arabic{chapter}}}  %%章レベルをアラビア数字に
%\renewcommand{\thechapter}{第\rensuji{\arabic{chapter}}章}  %% 第1章
%\renewcommand{\thechapter}{\Kanji{chapter}}  %% 章レベルを漢数字に
%\renewcommand{\thechapter}{第\Kanji{chapter}章}  %% 第一章
%\renewcommand{\thesection}{\rensuji{\arabic{section}}}  %% 節レベルをアラビア数字に
\renewcommand{\thesection}{\Kanji{section}}  %% 節レベルを漢数字に

% 見出しの調整 \vspace{見出しの前の余白}、\fontsize{フォントサイズ}{2行以上になったときの行間}
\titleformat{\chapter}
  {\vspace{-7.2mm}\normalfont\fontsize{12}{16}\bfseries}{\thechapter}{1em}{}
\titleformat{\section}
  {\vspace{-3mm}\normalfont\fontsize{10}{15}\bfseries}{\thesection}{1em}{}

%目次に「第」や「章」をつけない
\renewcommand{\prepartname}{}
\renewcommand{\postpartname}{}
\renewcommand{\prechaptername}{}%章レベルの前
\renewcommand{\postchaptername}{}%章レベルの後

%写真のキャプションに「図」を入れない
\renewcommand{\figurename}{}

%画像まわり再定義
\makeatletter
\renewcommand{\thefigure}{%
 %\ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@figure} %%画像のキャプションに余計な文字や数字を入れない
 }
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename\thefigure}
\makeatother

%キャプションまわりの余白を再定義
% [Tex tips](http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/tex/tex-tips2.html)を参照のこと
\abovecaptionskip=-8pt

\makeatletter
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
  \vskip\abovecaptionskip
  \iftdir\sbox\@tempboxa{#1\hskip1zw#2}%
    \else\sbox\@tempboxa{#1 #2}%
  \fi
  \ifdim \wd\@tempboxa >\hsize
    \iftdir #1\hskip1zw#2\relax\par
      \else #1 #2\relax\par\fi
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip
  }
\makeatother


%ダッシュをつなげる 参照:https://qiita.com/isari/items/1d0b60b76c7ef168e376
\usepackage{newunicodechar}
\makeatletter
\chardef\my@J@horizbar="2015% Unicodeの2015
\newunicodechar{―}{\x@my@dash}
\def\x@my@dash{\@ifnextchar―{%
  \my@J@horizbar\kern-.5\zw\my@J@horizbar\kern-.5\zw}{%
    \my@J@horizbar}}
% 次が―なら2回目のkernまでを、そうでないなら普通の―を出力
\makeatother

%段落頭の「 の字下げ調整に bxjaprnind パッケージを使用
\usepackage[force]{bxjaprnind}
\useparheadparenindent
\parheadparenindentamount{-0.5}

原稿.tex を書いていく。

文字コードUTF-8で。

\documentclass[a5paper,twocolumn,twoside]{ltjtbook}

%%自作のA5tate-twocolumn.styを適用
\usepackage{A5tate-twocolumn} 

\title{吾輩は猫である} 
\author{夏目 漱石} 
\date{\today} 

\begin{document}
    \maketitle %タイトルを挿入
    \tableofcontents %目次を挿入

%以下に本文を書いていく。

\chapter*{はじめに}
\addcontentsline{toc}{chapter}{はじめに}

用紙A5サイズの縦書き2段組の文章が書けます。

細かい調整をしたい場合は、A5tate-twocolumn.styをいじってください。

\oline{傍線}、そして、\kenten{傍点}……。

ダッシュ(―)を二つ。――。

〝ダブルミニュート(二重引用符)〟

〝〟を「かっこ」と打てば出てくるように単語登録しておけばいいかも。

目次の挿入には「\$ lualatex 原稿」を2回実行する必要があります。

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{11cm} %
\centering
\includegraphics[width=11cm]{./pic/cat001.jpg} %
\caption{多賀山公園のネコ} %
\end{minipage}
\end{center}
\end{figure}



\chapter{見出し}

吾輩は猫である。名前はまだ無い。

どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番\ruby{獰悪}{どう|あく}な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。この時妙なものだと思った感じが今でも残っている。第一毛をもって装飾されべきはずの顔がつるつるしてまるで\ruby{薬缶}{や|かん}だ。その後猫にもだいぶ逢ったがこんな片輪には一度も出会わした事がない。のみならず顔の真中があまりに突起している。そうしてその穴の中から時々ぷうぷうと煙を吹く。どうも咽せぽくて実に弱った。これが人間の飲む煙草というものである事はようやくこの頃知った。

この書生の掌の裏でしばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。書生が動くのか自分だけが動くのか分らないが無暗に眼が廻る。胸が悪くなる。到底助からないと思っていると、どさりと音がして眼から火が出た。それまでは記憶しているがあとは何の事やらいくら考え出そうとしても分らない。

ふと気が付いて見ると書生はいない。たくさんおった兄弟が一疋も見えぬ。肝心の母親さえ姿を隠してしまった。その上今までの所とは違って無暗に明るい。眼を明いていられぬくらいだ。はてな何でも容子がおかしいと、のそのそ這い出して見ると非常に痛い。吾輩は藁の上から急に笹原の中へ棄てられたのである。

ようやくの思いで笹原を這い出すと向うに大きな池がある。吾輩は池の前に坐ってどうしたらよかろうと考えて見た。別にこれという分別も出ない。しばらくして泣いたら書生がまた迎に来てくれるかと考え付いた。ニャー、ニャーと試みにやって見たが誰も来ない。そのうち池の上をさらさらと風が渡って日が暮れかかる。腹が非常に減って来た。泣きたくても声が出ない。仕方がない、何でもよいから食物のある所まであるこうと決心をしてそろりそろりと池を左りに廻り始めた。どうも非常に苦しい。そこを我慢して無理やりに這って行くとようやくの事で何となく人間臭い所へ出た。ここへ這入ったら、どうにかなると思って竹垣の崩れた穴から、とある邸内にもぐり込んだ。縁は不思議なもので、もしこの竹垣が破れていなかったなら、吾輩はついに路傍に餓死したかも知れんのである。一樹の蔭とはよく云ったものだ。この垣根の穴は今日に至るまで吾輩が隣家の三毛を訪問する時の通路になっている。さて邸へは忍び込んだもののこれから先どうして善いか分らない。そのうちに暗くなる、腹は減る、寒さは寒し、雨が降って来るという始末でもう一刻の猶予が出来なくなった。仕方がないからとにかく明るくて暖かそうな方へ方へとあるいて行く。今から考えるとその時はすでに家の内に這入っておったのだ。ここで吾輩は彼の書生以外の人間を再び見るべき機会に遭遇したのである。第一に逢ったのがおさんである。これは前の書生より一層乱暴な方で吾輩を見るや否やいきなり頸筋をつかんで表へ抛り出した。いやこれは駄目だと思ったから眼をねぶって運を天に任せていた。しかしひもじいのと寒いのにはどうしても我慢が出来ん。吾輩は再びおさんの隙を見て台所へ這い上った。すると間もなくまた投げ出された。吾輩は投げ出されては這い上り、這い上っては投げ出され、何でも同じ事を四五遍繰り返したのを記憶している。その時におさんと云う者はつくづくいやになった。この間おさんの三馬を偸んでこの返報をしてやってから、やっと胸の痞が下りた。吾輩が最後につまみ出されようとしたときに、この家の主人が騒々しい何だといいながら出て来た。下女は吾輩をぶら下げて主人の方へ向けてこの宿なしの小猫がいくら出しても出しても御台所へ上って来て困りますという。主人は鼻の下の黒い毛を撚りながら吾輩の顔をしばらく眺めておったが、やがてそんなら内へ置いてやれといったまま奥へ這入ってしまった。主人はあまり口を聞かぬ人と見えた。下女は口惜しそうに吾輩を台所へ抛り出した。かくして吾輩はついにこの家を自分の住家と極める事にしたのである。

吾輩の主人は滅多に吾輩と顔を合せる事がない。職業は教師だそうだ。学校から帰ると終日書斎に這入ったぎりほとんど出て来る事がない。家のものは大変な勉強家だと思っている。当人も勉強家であるかのごとく見せている。しかし実際はうちのものがいうような勤勉家ではない。吾輩は時々忍び足に彼の書斎を覗いて見るが、彼はよく昼寝をしている事がある。時々読みかけてある本の上に涎をたらしている。彼は胃弱で皮膚の色が淡黄色を帯びて弾力のない不活溌な徴候をあらわしている。その癖に大飯を食う。大飯を食った後でタカジヤスターゼを飲む。飲んだ後で書物をひろげる。二三ページ読むと眠くなる。涎を本の上へ垂らす。これが彼の毎夜繰り返す日課である。吾輩は猫ながら時々考える事がある。教師というものは実に楽なものだ。人間と生れたら教師となるに限る。こんなに寝ていて勤まるものなら猫にでも出来ぬ事はないと。それでも主人に云わせると教師ほどつらいものはないそうで彼は友達が来る度に何とかかんとか不平を鳴らしている。

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{11cm}
\centering
\includegraphics[width=11cm]{./pic/cat002.jpg}
\caption{吾輩は猫である。名前はまだ無い。}
\end{minipage}
\end{center}
\end{figure}


吾輩がこの家へ住み込んだ当時は、主人以外のものにははなはだ不人望であった。どこへ行っても跳ね付けられて相手にしてくれ手がなかった。いかに珍重されなかったかは、今日に至るまで名前さえつけてくれないのでも分る。吾輩は仕方がないから、出来得る限り吾輩を入れてくれた主人の傍にいる事をつとめた。朝主人が新聞を読むときは必ず彼の膝の上に乗る。彼が昼寝をするときは必ずその背中に乗る。これはあながち主人が好きという訳ではないが別に構い手がなかったからやむを得んのである。その後いろいろ経験の上、朝は飯櫃の上、夜は炬燵の上、天気のよい昼は椽側へ寝る事とした。しかし一番心持の好いのは夜に入ってここのうちの小供の寝床へもぐり込んでいっしょにねる事である。この小供というのは五つと三つで夜になると二人が一つ床へ入って一間へ寝る。吾輩はいつでも彼等の中間に己れを容るべき余地を見出してどうにか、こうにか割り込むのであるが、運悪く小供の一人が眼を醒ますが最後大変な事になる。小供は――ことに小さい方が質がわるい――猫が来た猫が来たといって夜中でも何でも大きな声で泣き出すのである。すると例の神経胃弱性の主人は必ず眼をさまして次の部屋から飛び出してくる。現にせんだってなどは物指で尻ぺたをひどく叩かれた。


\chapter{縦長の写真のテスト}

縦長の写真。

\begin{figure*}%「*」をつけることで、段組みを解除して画像を挿入。
\centering
\begin{minipage}<y>[htbp]{11cm}
\centering\includegraphics[width=11cm]{./pic/cat003.jpg}
\caption{黒猫}
\end{minipage}
\end{figure*}



\chapter*{あとがき}
\addcontentsline{toc}{chapter}{あとがき}

あとがきとか、謝辞を書きましょう。

\rightline{広告鳥}

\begin{figure}
\begin{center}
\begin{minipage}<y>[htbp]{11cm}
\centering
\includegraphics[width=11cm]{./pic/cat004.jpg}
\caption{}
\end{minipage}
\end{center}
\end{figure}

%奥付け
\clearpage
\thispagestyle{empty}
\begin{minipage}<y>[htpb]{111mm}
\begin{center}
    \vspace{111mm} %奥付のページ上部からの位置

\begin{tabular}{l}
\multicolumn{1}{c}{\large{吾輩は猫である}}\\[3mm] %%タイトル
\hline
\\[-3mm]
\hspace{2mm}\normalsize{著\hspace{2mm}者}\hspace{5mm}夏目 漱石\\[0mm]  %%著者
\hspace{2mm}\small{発行日\hspace{5mm}\today}\\[0mm] %%発行日。「\today」のところに任意の日付を入れてもいい。
\hspace{2mm}\small{発行者}\hspace{5mm}{\small 広告鳥}\hspace{50mm}\scriptsize{※無断転載禁止}\\[-3mm]  %%発行者
\\\hline
\end{tabular}
\end{center}
\end{minipage}

\end{document}

%書き方メモ。コピペするときは頭のコメントアウト(%)を外して使う。
%
%「はじめに」とか「おわりに」など、章番号をつけたくないとき。
%\chapter*{はじめに}
%\addcontentsline{toc}{chapter}{はじめに}
%
%横向きの画像は以下をコピペ。
%\begin{figure}
%\begin{center}
%\begin{minipage}<y>[htbp]{11cm} 
%\centering
%\includegraphics[width=11cm]{画像001.jpg} %画像の幅と画像ファイルの指定
%\caption{キャプション} %
%\end{minipage}
%\end{center}
%\end{figure}
%
%縦向きの画像は以下をコピペ。
%\begin{figure*}%「*」をつけることで、段組みを解除して画像を挿入。
%\centering
%\begin{minipage}<y>[htbp]{11cm}
%\centering\includegraphics[width=11cm]{./pic/cat003.jpg}
%\caption{黒猫}
%\end{minipage}
%\end{figure*}

実行

Ubuntuならフォルダ内で右クリック > 端末で開く で端末を開いて、下記を実行。
目次作成のためには2回実行する必要がある。

$ lualatex 原稿

完成

原稿.pdfができているはず。

設定をいじった場合の注意点

「A5tate-twocolumn.sty」で版面をいじった場合、以下の方法でページの表裏の本文等の重なりを確認したほうがいいかも。

Ubuntuでも年賀状の宛名作成(md→pdf 編)

↓もっと簡単な方法ができました。こちらのほうをオススメします。

Ubuntuで年賀状の宛名作成 csvで住所録編集 2020年版 。手元にエクセル等で住所録がある人などはこちらの方が楽かも。


更新:2019年12月12日、makenenga.sh の修正&追加情報。ChromeでのPDF出力で偶数ページに白紙が挟まってしまうトラブルに対応(2019年12月末現在)。


以前、 html + css で年賀状の宛名書き(Ubuntuで年賀状宛名書き) という記事を書いたけど、ごちゃごちゃしたhtmlタグの中に書いていったり、住所の数字を漢数字で書いていくのがスマートじゃないなぁ…と思っていた。

そこで、最近の僕の中での流行りである、markdown(pandoc拡張markdown) → html → pdf で作れないかと試行錯誤して、ようやくできるようになった。
しかも、年賀状を出した人/喪中等で出さなかった人の一覧表まで同時に作れるようにした。

重たいソフトは入らない。cssシェルスクリプト、md(マークダウン)、全部テキストエディタで編集できるよ!


目次

環境、必要なツール・フォント

以下、Ubuntuのレポジトリに入っている場合もあるが、レポジトリのものはヴァージョンが古かったりするなどしてうまくいかないこともあるので注意が必要。また、それぞれのツールがヴァージョンアップするとやっぱりうまくいかないこともあるので、ご了承を。

フォルダ内の構成

任意のフォルダ内が以下のような構成になるようにする。

任意のフォルダ
 ┃
 ┣ list.css
 ┣ makenenga.sh
 ┣ nenga.css
 ┣ test.md

nenga.css

年賀状の宛名のcss
テキストエディタを開いて、以下をコピペして「nenga.css」として保存。

郵便番号などの位置等を調整したい場合は、これらをいじる。

@page {size:100mm 148mm; margin:0; padding:0;}

body {margin: 0; padding:0;}

.sheet {
    width:100mm; height:148mm;
    margin: 0;
    padding:0;
    position: relative;
    page-break-after: always;
}

#title-block-header{
    display:none;
}

p{
    margin:0;
    padding:0;
    font-family:"IPAmj明朝" ; 
}

.郵便番号 {
    font-family:"IPAmj明朝" ; /* IPAmj明朝で文字間等を調整している */
    font-size:12pt;
    margin:0;
    padding:0;
    position:absolute; top:14mm; left:46mm; /* ズレる場合は調整 */
    letter-spacing: 4.4mm; /* 数字の間隔 */
}

.住所 {
    font-family: "IPAmj明朝"; 
    font-size:14pt;
    margin-left:0px;
    padding-top:0px;
    line-height:1.5em;
    letter-spacing:2pt;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
    position:absolute; top:30mm; right:10mm;
}

.宛名 p{margin:0 2pt 0 2pt;font-family:"IPAmj明朝" ; }

.宛名 {
    font-family:"IPAmj明朝" ;
    font-size:22pt; 
    letter-spacing: 0.1em;
    position: absolute;
    top: 30%;
    left: 50%;
    -webkit-transform: translateY(-10%) translateX(-50%);
    transform: translateY(-10%) translateX(-50%);
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
    line-height:1.3; /*連名時の行間*/
}

.差出人住所 {
    position:absolute; top:70mm; left:17mm;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
    font-family:"IPAmj明朝" ;
    font-size:10pt; 
    margin:0;
    padding-left:0.5em;
}

.差出人 {
    position:absolute; top:70mm; left:11mm;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    -webkit-text-orientation: upright;
    font-family:"IPAmj明朝" ;
    font-size:14pt; 
    letter-spacing: 0.1em;
    margin:0;
    padding-top:0.5em;
}

.差出人郵便番号{
    font-size:10pt;
    font-family:"IPAmj明朝"; /* IPAmj明朝で文字間等を調整している */
    margin:0;
    padding:0;
    position:absolute; top:124mm; left:5.5mm; /* ズレる場合は調整 */
    letter-spacing: 2mm; /* 文字の間隔 */
}

/** For screen preview **/
@media screen {
    body { background: #e0e0e0 }
    .sheet {
    background: white;
    box-shadow: 0 .5mm 2mm rgba(0,0,0,.3);
    margin: 5mm;
    }
}

@media print {
  body {
    width:100mm; height:148mm; /* needed for Chrome */
    }
 }

list.css

一覧表用のcss
同じくテキストエディタを開いて、「list.css」として保存。

body {
  counter-reset: number; 
}
.sheet {
    border-bottom-style: groove;
    border-width: 1px;
    margin:0 0 0 0;
    padding:0 0 10pt 0;
}

#title-block-header{
    display:none;
}

p{
    margin:10pt 0 0 0;
    padding:0;
    font-family:"IPAmj明朝"; 
}

.郵便番号 {
    margin-right:1em;
    font-size:12pt;
    font-family:"IPAmj明朝";
    float: left;
}

.郵便番号:before {
    counter-increment:number;
    content: "(" counter(number) ")〒";
}

.住所 {
    font-size:12pt;
    float: left;
}

.宛名 {
    margin:0 0 0 0;
    font-size:12pt;
    display: block;
    text-align:right;
}

.差出人住所 {display:none;}
.差出人 {display:none;}
.差出人郵便番号{display:none;}

/*改ページ*/
.pagebreak{
    page-break-before:always;
    padding-top:0em;
    text-align: justify;
    text-justify: inter-ideograph;
}

makenenga.sh

シェルスクリプト。コマンド並べただけ。 テキストエディタを開いて、以下をコピペして「makenenga.sh」として保存

ド素人の考えた方法なので、知識・技能のある人から見たら「なんて面倒くさい、非効率なことやっているんだ」と思われそうで、恥ずかしい限りです…(^_^;)。

#!/bin/sh

#ここからは一覧表作成
#mdの別名保存
cp $1.md `date +%Y%m%d_$1一覧`.md
#喪中等で出さなかった人を一覧に表示
sed -i -e 's/<!--NoPost/※以下、今年は出していない。/g' `date +%Y%m%d_$1一覧`.md
sed -i -e 's/NoPost-->//g' `date +%Y%m%d_$1一覧`.md
#htmlに変換
pandoc `date +%Y%m%d_$1一覧`.md -c list.css -s -t html5 -o `date +%Y%m%d_$1一覧`.html
#改行を削除
sed -i -e 's/<br \/>//g' `date +%Y%m%d_$1一覧`.html
#PDF出力
wkhtmltopdf --disable-smart-shrinking --page-size A4 --orientation Landscape --header-spacing 6 --header-center '[title] [date] 作成' --footer-spacing 5 --footer-center '[page]/[topage]' --margin-top 20 --margin-left 20 --margin-right 20 --margin-bottom 20 `date +%Y%m%d_$1一覧`.html `date +%Y%m%d_$1一覧`.pdf

#ここからハガキ出力作業
#mdの別名保存
cp $1.md `date +%Y%m%d_$1年賀状`.md
#郵便番号を除く算用数字を漢数字へ
sed -i -e '/[0-9]\{7\}/!y/1234567890*/一二三四五六七八九〇*/' `date +%Y%m%d_$1年賀状`.md
#htmlに変換
pandoc `date +%Y%m%d_$1年賀状`.md -c nenga.css -s -t html5 -f markdown+hard_line_breaks -o `date +%Y%m%d_$1年賀状`.html
#<p></p>ではさむ調整
sed -i -e 's/<span/<p><span/g' `date +%Y%m%d_$1年賀状`.html
sed -i -e 's/<\/span><br \/>/<\/span><\/p>/g' `date +%Y%m%d_$1年賀状`.html
sed -i -e 's/<p><p><span/<p><span/g' `date +%Y%m%d_$1年賀状`.html
#住所の縦棒(ダッシュ)へ置換
sed -i -e '/<\/header>/,/<!--NoPost/ y/-−ー*/―――*/' `date +%Y%m%d_$1年賀状`.html
sed -i -e 's/<!――NoPost/<!--NoPost/g' `date +%Y%m%d_$1年賀状`.html

#PDF出力
google-chrome --headless --print-to-pdf=`date +%Y%m%d_$1年賀状`.pdf `date +%Y%m%d_$1年賀状`.html


#いらない中間ファイルを削除。上手くpdfができないときは、ここをコメントアウトして、htmlソースを見てみる。
rm -f `date +%Y%m%d_$1一覧`.md
rm -f `date +%Y%m%d_$1一覧`.html
rm -f `date +%Y%m%d_$1年賀状`.md
rm -f `date +%Y%m%d_$1年賀状`.html

去年までは↑ここまでで良かったのだけど、2019年12月末現在、Google Chrome 79.0.3945.88 でのヘッドレスPDF出力で、なぜか、白紙が偶数ページに挟まれてしまうトラブルが発生…。

そのため、下記をスクリプトの最後に追加してください。

#PDFの奇数ページだけを抽出。
pdftk `date +%Y%m%d_$1年賀状`.pdf cat odd output `date +%Y%m%d_$1年賀状完成`.pdf
rm -f `date +%Y%m%d_$1年賀状`.pdf

Google Chrome 側の問題のような気がするので、もし、Chromeのバージョンが上がって、PDF出力に問題なくなったら、コメントアウトなり、削除するなりしてください。

test.md

テキストエディタを開いて、以下のような書き方で「test.md」を作成していく。
完全にpandoc拡張markdownです…。

最初の「%年賀状」を書かないと、Pandocから「タイトル入れなさい」ってエラーが出るのでちゃんと書く。
数字は半角数字で。

%年賀状

:::::sheet
[1112222]{.郵便番号}
[鹿児島市霧島町11―2]{.住所}
[霧島 太郎 様]{.宛名}
[鹿児島市桜島町111<br />火山ビル101号]{.差出人住所}
[桜島 花子]{.差出人}
[2223333]{.差出人郵便番号}
:::::

:::::sheet
[2223333]{.郵便番号}
[鹿児島市錦江湾町55−1]{.住所}
[金目鯛 次郎 様]{.宛名}
[鹿児島市桜島町111<br />火山ビル101号]{.差出人住所}
[桜島 花子]{.差出人}
[2223333]{.差出人郵便番号}
:::::

<!-- 宛名面に差出人氏名住所を書かないのであれば以下でOK -->

:::::sheet
[3334444]{.郵便番号}
[鹿児島市藺牟田池町22-1<br />白鳥ビル110号]{.住所}
[白鳥 玲子 様]{.宛名}
:::::

<!-- 連名の場合 -->

:::::sheet
[4445555]{.郵便番号}
[鹿児島県鹿児島市桜島町1122-1<br />火山灰マンションあ−100号]{.住所}
[山下 太郎 様
   花子 様
   一郎 様
   次郎 様]{.宛名}
:::::

<!-- 喪中等で今年は出さない場合は、以下の「NoPost」と「NoPost」の行の間に書く。 「NoPost」の行の前後には必ず1行開ける-->

<!--NoPost

:::::sheet
[6667777]{.郵便番号}
[鹿児島市桜島町77-7]{.住所}
[山田 太郎 様]{.宛名}
[]{.差出人住所}
[]{.差出人}
[]{.差出人郵便番号}
:::::

:::::sheet
[7778888]{.郵便番号}
[鹿児島市桜島町88-8]{.住所}
[山田 花子 様]{.宛名}
[]{.差出人住所}
[]{.差出人}
[]{.差出人郵便番号}
:::::

NoPost-->

スクリプト実行

フォルダ内で右クリック > 端末で開く で端末を起動。以下を打ちんでエンターキーを押せば、pdfファイルが2つできているはず。

$ sh makenenga.sh test

ファイル名(test)を入力するときは、拡張子(.md)はいらないので注意。

pdfファイル完成

f:id:adbird:20181221020535p:plain
年賀状宛名面
f:id:adbird:20181221020623p:plain
年賀状一覧

Pandoc md→html の脚注番号に丸括弧をつけるcss

文系の論文でよくある(理系はよく知らない)、丸括弧つきの脚注番号となるようにする。

pandocのバージョンは、1.19.2.4。バージョンが変わると使えなくなる可能性があります。

案の定、Pandocのバージョンを最新の2.5にしたら、本文の脚注番号のclassがfootnoteRefからfootnote-refに変わっていたので、paper.cssを修正。

Pandoc2.5で確認。バージョンが変わると使えなくなる可能性があります。

test.md

% こころ
% 夏目漱石
% 1914(大正3)年4月

私は次の日も同じ時刻に浜へ行って先生の顔を見た。その次の日にもまた同じ事を繰り返した。けれども物をいい掛ける機会も、挨拶をする場合も、二人の間には起らなかった。その上先生の態度はむしろ非社交的であった。一定の時刻に超然として来て、また超然と帰って行った。周囲がいくら賑やかでも、それにはほとんど注意を払う様子が見えなかった。最初いっしょに来た西洋人はその後まるで姿を見せなかった。先生はいつでも一人であった。^[夏目漱石『こころ』青空文庫より<br />テスト]

paper.css (Pandoc2.5で確認)

p{font-size:10pt;
    font-family:"IPAex明朝",serif;
    line-height:1.8; /*行間*/
    margin:1pt 0 0 0; /*段落間の行間*/
    padding-left:1em;
    text-indent:1em;
    text-align: justify;
    text-justify: inter-ideograph;}

/* 本文の脚注番号 */
a.footnote-ref:link {text-decoration: none; color:black ; }
a.footnote-ref:visited {text-decoration: none; color:black ; }
a.footnote-ref:hover {text-decoration: none; color:black ; }
a.footnote-ref:active {text-decoration: none; color:black ; }

.footnote-ref sup{font-size:7pt;}

/* 本文の脚注番号に丸括弧をつける */
.footnote-ref sup::before {
    content:"(";}
.footnote-ref sup::after {
    content:")";}


/*以下、脚注番号の設定*/ 
.footnotes li{
  list-style-type:none;
  list-style-position:outside;
  counter-increment: cnt;
}

.footnotes ol {
  padding:0 0 0 0;
  margin:0;
}

/*脚注のフォント,段落*/
.footnotes p{
    padding:0 0 0 0;
    margin:0;
    font-family:"IPAex明朝",serif;
    font-size:9pt;
    padding-left:2em;
    text-indent:-1.5em;
}

/*脚注番号の前後に丸括弧をつける*/
.footnotes p:before{
   display:inline;
  content: "(" counter(cnt) ") ";
}

/*脚注の文章の後ろにつく「↵」マークを隠す*/
.footnotes a:link { visibility:hidden;}
.footnotes a:visited { visibility:hidden;}
.footnotes a:hover { visibility:hidden;}
.footnotes a:active { visibility:hidden;}

Pandocで変換

$ pandoc test.md -s -c paper.css -t html5 -o test.html

wkhtmltopdfでhtmlからPDFへ

wkhtmltopdfのバージョンは0.12.5 (with patched qt)。

$ wkhtmltopdf --disable-smart-shrinking --encoding 'UTF-8' --footer-center '[page]' --footer-font-size 9 --margin-top 20 --margin-left 20 --margin-right 20 --margin-bottom 15 test.html `date +%Y%m%d-test`.pdf

↓こんな感じに。

f:id:adbird:20181214221859p:plain

フォントの検索

$ fc-list | grep [フォント名などのキーワード]

例えば、PCに入っている明朝体のフォント一覧を調べたいとき。ただし、フォント名に「明朝」が入っていないと引っかからない。

$ fc-list | grep 明朝

ゴシック体を調べたいとき。ただし、フォント名に「ゴシック」が入っていないと引っかからない。

$ fc-list | grep ゴシック