adbird(広告鳥) 備忘録

pdfデータ編集

随時、更新。基本、Linuxのアプリを使用する方法。

余談だけど、以下の pdftk などでよく出てくる cat とは"to concatenate." (連結すること)の意味だそうだ。



PDF文書に線を引いたり、書き込みをしたりする

Xournal

Xournalというソフトを使う。

Ubuntuでは以下でインストールできる。

$ sudo apt install xournal

線を引いたり、テキストを追加したりした編集データは、拡張子「.xoj」として保存され、元のPDFデータはそのままなので、安心。

もちろん、元のPDFデータと書き込みなどの編集データ(.xoj)を結合させて、新たなPDFデータにエクスポートさせることも可能。

Windows版について

ダウンロードしてきたzipファイルを解凍。 ローカルディスク(C:)直下に解凍した「xournal-0.4.8.2016-win32」をフォルダごとコピー。

フォルダ内にある「xournal.exe」をダブルクリックすると、起動する。xournal.exeのショートカットをデスクトップ上に置いておくか、タスクバーにピン留めしておくといい。

既存のPDFを開くには、xournal を起動してから、左上のメニューから File > Open で。

Windows版のみの問題

  • 日本語入力時の文字化け問題

    • キーボードで日本語入力する際には、フォント(Tools > Text Font)を日本語フォント(MS GothicやYu Gothic)にしておかないと、入力時に文字化けする。
  • ファイル名に日本語を含む「.xoj」ファイルが直接開けない問題

    • 日本語文字化けの影響であろうが、保存した「.xoj」ファイル名に日本語が入っていると、「.xoj」ファイルを直接ダブルクリックで開こうとすると、エラーが出て開けない。

xournal を起動してから、左上のメニューから File > Open で開けば、大丈夫。

Xournal++

Xournal++

Xournalからフォークされたもので、こちらのほうが高機能らしい。Ubuntu18.04では以下でインストール可能。

$ sudo snap install xournalpp

Windows版は2021年4月2日現在、キーボードでの日本語入力ができない。

Windows版 Version 1.1.3 においては日本語入力が可能となった(2023年1月21日現在)。

ページの抽出、分割、ページ入れ替え

$ pdftk 入力.pdf cat ページ番号(1 3 2 4 などでページ入れ替え) output 出力.pdf

追記:分割については、pdftkでいちいちやらなくても(時々、エラーもでるし)、Ubuntuのドキュメントビューアー(Evince)で、 印刷>ファイルに出力する でやったほうが簡単だった…。

さらに追記:pdftkでパスワードがらみのエラーが出るときは、下記の「PDFにかかっているパスワードを削除して編集可能にする」を参照のこと。

結合

pdfunite

$ pdfunite 入力.pdf 入力.pdf 出力.pdf

任意のディレクトリ内の全てのPDFを結合する場合

$ pdfunite *.pdf 出力.pdf

pdftk

$ pdftk 入力1.pdf 入力2.pdf cat output 出力.pdf

複数のPDFファイルのそれぞれ一部分のページを寄せ集めて、一つのPDFファイルに結合する

例えば「入力001.pdf」の1~2ページと、「入力002.pdf」の5~6ページを結合させる場合は

pdftk A=入力001.pdf B=入力002.pdf cat A1-2 B5-6 output 出力.pdf

さらに「入力001.pdf」の1~2ページ + 「入力002.pdf」の5~6ページ + 再び「入力001.pdf」の3~4ページ の場合

pdftk A=入力001.pdf B=入力002.pdf cat A1-2 B5-6 A3-4 output 出力.pdf

右クリックから簡単に結合させる bat ファイル

Windowsの場合、以下の内容で「PDF結合.bat」ファイルを作成する。あらかじめ pdftk をインストールしておく。

@echo off
echo 開始 %date%  %time%
set HIZUKE=%date: =0%
set JIKOKU=%time: =0%
set yy=%HIZUKE:~0,4%
set mm=%HIZUKE:~5,2%
set dd=%HIZUKE:~8,2%
set hh=%JIKOKU:~0,2%
set mi=%JIKOKU:~3,2%
set ss=%JIKOKU:~6,2%

pdftk %* cat output ALL_%yy%%mm%%dd%_%hh%%mi%%ss%.pdf

エクスプローラーのアドレス欄に「shell:sendto」として、開いた場所に上記の「PDF結合.bat」をコピー。

使い方は以下のとおり。

  • 結合したいPDFファイルの名前の頭を、並べたい順番に「001」などの連番にしておく。
  • 上記の複数PDFファイルを選択。
  • 結合するファイルの1番目のファイル上で、右クリック→送る→「PDF結合.bat」

参考リンク:Windowsのバッチ処理でファイル名に日付を付加する方法 | 夢幻電脳館[送る]メニューに項目を追加する方法(Windows 7/8.x/10編):Tech TIPS - @IT

pythonを使う場合

pypdfをインストール

pip install pypdf

スクリプト

import pypdf

# pypdf のバージョンを示すため。なくてもいい。
print(pypdf.__version__)

merger = pypdf.PdfMerger()

merger.append('入力1.pdf')
merger.append('入力.pdf')
merger.append('入力3.pdf')

merger.write('出力.pdf')
merger.close()

PDFに「しおり」(bookmarks)をつける

しおりの内容を作成するには、以下のAまたはBで作成。

A. テキストエディタで作成

以下のような内容で「しおり」(bookmarks)設定ファイルの bookmarks.txt をutf-8で作成する。

BookmarkBegin
BookmarkTitle: しおり名1
BookmarkLevel: 1
BookmarkPageNumber: 1

BookmarkBegin
BookmarkTitle: しおり名1-2
BookmarkLevel: 2
BookmarkPageNumber: 3

BookmarkBegin
BookmarkTitle: しおり名2
BookmarkLevel: 1
BookmarkPageNumber: 5

Title でラベルを、 Level によって木構造のネストを、 PageNumber によってリンクする先のページ番号を指定。

Geanyのsnippets.confに、以下のようにGeanyのスニペット登録(入力補完)しておくと便利かも。

 [Default]
しおり=BookmarkBegin\nBookmarkTitle: \nBookmarkLevel: 1\nBookmarkPageNumber:

作成したしおり(bookmarks.txt)をつける。

$ pdftk 入力.pdf update_info_utf8 bookmarks.txt output 出力.pdf

B. LibreOffice の Calc で作成

しおりが少なければ、上記のようにテキストエディタで作成すればいいのだが、しおりが多い場合や、しおりを頻繁に更新しないといけない場合、テキストエディタでの作成は辛いので、LibreOffoceのCalcを使う。

新規でbookmarks.odsを作成し、画像のように、

  • A列 ブックマークレベルの数字
  • B列 しおりの内容
  • C列 ページ番号

として、保存。

次に、bookmarks.odsからbookmarks.csvへ変換する。

libreoffice --headless --convert-to csv:"Text - txt - csv (StarCalc):59,34,76,,,,,,true" bookmarks.ods

オプションの詳細は LibreOffice Calc のデータ(.ods)を csv に変換する - adbird(広告鳥) 備忘録 を参照のこと。

端末で以下を実行し、改行を入れたり、フィールドの区切り記号 「;」を削除したりして整えた bookmarks.csv を作成。

# 1) 1行目を削除
sed -i '1 d' bookmarks.csv

# 2) 行頭を置換
sed -i -e 's/^/BookmarkBegin\nBookmarkLevel:/g' bookmarks.csv

# 3) 最初に出てくる「;」を「BookmarkTitle:」に置換
sed -i -e 's/;/\nBookmarkTitle:/'  bookmarks.csv

# 4) 2番目に出てくる(正確には上記ですでに1番目の「;」は置換済みなので、再び最初に出てくる)「;」を「BookmarkPageNumber: 」に置換
sed -i -e 's/;/\nBookmarkPageNumber: /'  bookmarks.csv

1)〜4)をワンライナーにしたものはこちら。

sed -i '1 d' bookmarks.csv && sed -i -e 's/^/BookmarkBegin\nBookmarkLevel:/g' -e 's/;/\nBookmarkTitle:/' -e 's/;/\nBookmarkPageNumber: /' bookmarks.csv

しおり(bookmarks.csv)をつける。txtではなく、csvなので注意。

$ pdftk 入力.pdf update_info_utf8 bookmarks.csv output 出力.pdf

メタデータを編集する

ExifTool を使う場合

ExifTool をインストール。

sudo apt install libimage-exiftool-perl

すべてのメタデータを表示させる。

exiftool 入力.pdf

タイトルと作成者名を変える。

exiftool -Title="PDFのタイトル" -Author="PDFの作成者" 入力.pdf

タイトルと作者名を削除する。

exiftool -Title="" -Author="" 入力.pdf

pdftk を使う場合

InfoBegin
InfoKey: Title
InfoValue: 文書のタイトル

というようなテキストデータ(metadata.txt)を作成。

InfoKeyにはAuthorSubjectKeywordsなどがあるようだ。以下で実行。

pdftk 入力.pdf update_info metadata.txt output 出力.pdf

metadata.txt に上記のしおり(ブックマーク)の情報も同時に書き込んでもいい。

回転

pdftk

$ pdftk 入力.pdf cat 1-endeast output 出力.pdf

1-end…全ページ。 east…90度回転。 eastのところをsouthに変えたら180度回転。

mogrify(pdftkの回転でエラーが出た場合)

$ mogrify -rotate 90 入力.pdf

mogrifyはデータを上書き保存するので、実行前に必ずバックアップを取る。

PDFデータサイズを縮小する

$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=出力.pdf 入力.pdf

ただし、PDF内にある画像がラスター画像(jpgやpng)だとぼやけたり、文字が潰れたりする。ベクター画像(epsやsvg、emfなど)の場合はキレイなまま、PDFデータが縮小できる。

PDFデータを画像(png)にする

LibreOfficeのWriterで作成して、pngにエクスポートすると、画像がぼやけてしまう。一度、PDFにエクスポートしてから、下記コマンドでpngにしたほうがよい。

$ convert -density 600 入力.pdf 出力.png

Windowsの場合

WindowsCygwin での上記コマンドがうまくいかなかったので、以下で実行。

WingetでGhostscriptをインストール。

$ winget install Ghostscript

pdfをpngに変換。

$ gswin64c -sDEVICE=png16m -r300 -dGraphicsAlphaBits=4 -o 出力.png 入力.pdf

png16m24-bit RGB colorを意味し、r300は解像度、dGraphicsAlphaBitsアンチエイリアス(1,2,4のいずれか数値が大きいほどシャギーが目立ちにくくなる)。

複数のPDFを一気にPNGにするスクリプトWindowsCygwin 使用時)

ディレクトリ内に複数のPDFデータ(1枚もの)が入っており、それらを一気にPNGに変換するスクリプト

以下の内容を、ディレクトリ内に pdftopng.sh として保存

for i in $(ls -1 *.pdf | xargs basename -s .pdf);
do
gswin64c -sDEVICE=png16m -r300 -dGraphicsAlphaBits=4 -o $i.png $i.pdf
done

ディレクトリ内でCygwinで実行

$ sh pdftopng.sh

PDFデータをバラバラの画像にする

$ pdftoppm -rx 350 -ry 350 入力.pdf image 

上記では解像度350dpi。-pngオプションをつければ、pngで出力される。

特定のページだけ画像にするには以下の通り。(以下は、解像度300dpiで、jpeg形式、5ページのみ。)

$ pdftoppm -r 300 -jpeg -f 5 -l 5 入力.pdf image
  • -f ページ番号  開始ページを指定
  • -l ページ番号  終了ページを指定

Windowsでは、TeXLiveをインストールすると付随してインストールされているはず。

参考:【 pdftoppm 】コマンド――PDFファイルを画像に変換する

複数画像を1つのPDFに結合

imagemagickではエラーが出て失敗したが、GraphicsMagickならできた。

フォルダ内に連番のjpgを入れて、

$ gm convert *.jpg 出力.pdf

ページサイズを変更(揃える)

一つのPDFファイルの中に、ページサイズが違うものがごちゃまぜになってしまっている場合に、全てのページを1つのサイズに揃える手順。

Ghostscript を使う

例えばA4サイズに揃える場合

gs -sDEVICE=pdfwrite -sPAPERSIZE=a4 -dFIXEDMEDIA -dPDFFitPage -o 出力.pdf 入力.pdf

pdfjam を使う

A4サイズに変更する。

pdfjam --papersize '{8.3in,11.7in}' 入力.pdf --outfile 出力.pdf

Evince を使う

  • Ubuntuのドキュメントビューアー(Evince)で、 印刷 > ファイルに出力する
  • 出力先のファイルを決定する
  • ページの設定 > 用紙サイズ をB5(JIS)
  • ページの取り扱い > ページの拡大縮小:印刷可能な領域に合わせる
  • 自動回転して中央揃え にチェックを入れる
  • 印刷

PDFデータ同士を重ねる(簡単な文字入力)

$ pdftk 前面.pdf background 背景.pdf output 出力.pdf

既存のPDFの端などに簡単な文字入力をしたい場合、LibreOfficeのWriterなどでおおよその場所に文字を書いて、PDFデータ(背景.pdf)として出力後、上記コマンドを使って、元のPDFデータと重ねる。

$ pdftk 元データ.pdf stamp スタンプ.pdf output 出力.pdf

スタンプとして既存のPDFデータの前面にスタンプとして重ねるには上記のコマンド。

これを活用して、PDFのページの上部にちょっとしたテキストを入れるスクリプトを作った。

複数ページのPDFにはmultistampが使える。

余白をとる

pdfcrop で以下のようにする。

$ pdfcrop --margins '5 5 5 5' input.pdf output.pdf

インストールされていなかったら、

tlmgr install pdfcrop

でインストール。

pdfcrop へのPATHの通し方

Ubuntulinux)の場合

pdfcrop が入っているディレクトリに移動。2023のところなどは適宜変更。

cd /usr/local/texlive/2023/texmf-dist/scripts/pdfcrop

で、ls をすると、

pdfcrop.pl

が入っていることが分かる。pdfcrop.pl を pdfcrop にリネーム(名前を変える)して、実行権限を与える。

sudo mv pdfcrop.pl pdfcrop
sudo chmod +x pdfcrop

いよいよPATHを通す。

echo $PATH

でPATHが通っているところを一応、確認。

nano ~/.bashrc

で.bashrcファイルに

export PATH=$PATH:/usr/local/texlive/2023/texmf-dist/scripts/pdfcrop

を追記。2023のところは適宜変更。

source ~/.bashrc

で変更を反映させる。

2アップ(用紙1枚に2 ページ分を収める)

pdfjam が必要。

A4横置き用紙に2アップの場合

$ pdfjam 入力.pdf --outfile 出力.pdf --paper a4paper --landscape --nup 2x1

追記:コマンドがpdfnupからpdfjamに変わったらしい。

pdfjam へのPATHの通し方

Windowsの場合

ただし、すでにTeXLiveとCygwinがインストール済みであることが前提。

TeXLiveのFullでインストールしている場合はすでに入っていると思うが、僕の場合、 Texliveを短時間(basic scheme +アルファ)でインストールする でTeXLiveをインストールしていたので、pdfjamがインストールされていなかった。

コマンドプロンプトでインストール。

tlmgr install pdfjam

以下にパスを通す。(環境によってpdfjamの入っている場所が違う〔例えば、「2022」のところはTeXLiveのバージョンで違う〕ので適宜変えること)

C:\texlive\2022\texmf-dist\scripts\pdfjam

パスの通し方は、Windowsでプログラムやスクリプトにパスを通す参照。

Cygwinターミナルで

$ pdfjam --help

でズラズラと説明が出てきたら成功。

Ubuntulinux)の場合

同じく Texliveを短時間(basic scheme +アルファ)でインストールする でTeXLiveをインストールしていたので、pdfjamがインストールされていなかった。

sudo tlmgr install pdfjam

でインストール。

echo $PATH

でPATHが通っているところを一応、確認。

nano ~/.bashrc

で.bashrcファイルに

export PATH=$PATH:/usr/local/texlive/2022/texmf-dist/scripts/pdfjam

を追記。2022のところは適宜変更。

source ~/.bashrc

で変更を反映させる。

詳細な使い方は公式 GitHub - rrthomas/pdfjam: The pdfjam package for manipulating PDF files を参照のこと。

面付け

pdfjamが必要。pdfjamはTeXLiveに入っているので、つまりは、TeXLiveのインストールが必要。インストールされているはずなのに、PATHが通っていなかったら、上記を参照のこと。

中綴じ用面付表で面付け時のページの順を確認。左綴じ4ページの場合、4,1,2,3 の順番になる。以下、その仮定で。

A3用紙(横向き)に2UPの場合

$ pdfjam 入力.pdf '4,1,2,3' --outfile 出力.pdf --paper a3paper --landscape --nup 2x1

B4用紙(横向き)に2UPの場合

$ pdfjam 入力.pdf '4,1,2,3' --outfile 出力.pdf --papersize '{364mm,257mm}' --nup 2x1

縦書き原稿の場合は、A5縦書き原稿PDFを、A4用紙・小冊子面付けしたPDFに - adbird(広告鳥) 備忘録を参照のこと。

ページ番号を追加

addpageスクリプト

※追記:複数のPDFを結合したPDFにaddpageスクリプトでページ番号つけたPDFの文字が時々飛ぶ(消える)現象が起こった(もしかしたら、PDF結合の過程で飛んでいたのかもしれないけど)ので、下記のpdftkの方がいいかも。

addpageスクリプトをインストール。

$ sudo apt install python3-pip
$ pip3 install addpage

たぶん/home/〜/.local/bin/の部分はユーザー名)に addpage というスクリプトが入っているはずなので、実行。

$ python3 /home/〜/.local/bin/addpage -o output.pdf input.pdf

オプションはaddpage · PyPIを参考に。例えば、フォントサイズを8ptにするときは、-z 8をつける。

pdftk の multistamp を使う

Xubuntu20.04.2(64bit)をインストールしたラズパイ4で上記のスクリプトを使ったら、エラーが出て使えなかったので、下記の方法でページ番号を追加。

ディレクトリ内にLibreOfficeのWriterでページ番号のついている空白ページのデータ「ページ番号.odt」を作成する。(※ページ番号をつけたいPDFデータのページよりも多いページ数にしておく。Ctrl + Enter で改ページ挿入は知っておくと便利)。

「ページ番号.odt」をPDFエクスポートして「ページ番号.pdf」を作成。

pdftk の multistamp で、ページ番号.pdfと入力.pdfを重ねる。

$ pdftk 入力.pdf multistamp ページ番号.pdf output 出力.pdf

ただし、ページ番号をつけようとしているPDFに縦向きと横向きのページが混じっていると、ページの向きによってページ番号のフォントサイズが変わってしまう(「ページ番号.pdf」が縦向きページで、「入力.pdf」に横向きページが混じっていると、横向きページのページ番号のフォントが小さくなる)ので、注意。

pdftk の multistamp の場合、ページ番号を加えた出力ファイルが別名になるので、元のファイル名のままにしたい場合、少し不便だったので、以下のスクリプト(addpage.sh)を作った。

# バックアップ
cp $1.pdf $1_bak.pdf

# ページ番号追加
pdftk $1.pdf multistamp ページ番号.pdf output output.pdf

# 元のファイルに上書き
mv -f output.pdf $1.pdf

hoge.pdf にページ番号を追加したい場合、事前にページ番号だけの「ページ番号.pdf」を用意して、

sh addpage.sh hoge

とする。コマンドを打つときは、「hoge.pdf」ではなく「hoge」。

【合わせ技】PDF結合・ページ付けを一気に行うスクリプト

複数のPDFファイルを結合して、通しページ番号をつけるpythonスクリプト - adbird(広告鳥) 備忘録

【合わせ技!】PDF結合・ページ付け・しおり付けを一気に行うスクリプト

python と pdftk で、複数のPDFを結合し、ページ番号をつけ、しおりをつけるスクリプト【改良版】 - adbird(広告鳥) 備忘録

python と pdftk でPDFを結合し、ページ番号をつけ、しおりをつけるスクリプト - adbird(広告鳥) 備忘録

pdf を cbz へ変換

任意のフォルダ内にpdfデータと、以下の内容のスクリプト pdftocbz.sh を作成して

for file in *.pdf
do
    name="${file%.pdf}"
    echo "Converting $name to cbz"
    mkdir "./$name"
    pdftoppm -jpeg "$file" "./$name/000" -r 300
    zip -r6 "${name}.cbz" "./$name" 
    rm -rf "./$name"
done

スクリプト実行

$ sh pdftocbz.sh

参照:linux で pdf を cbz形式に変換する - マイブーム=メイプル

PDFにかかっているパスワードを削除して編集可能にする

pdftkでpdfを結合しようとしたら

WARNING: The creator of the input PDF:
   002.pdf
   has set an owner password (which is not required to handle this PDF).
   You did not supply this password. Please respect any copyright.

とエラーがでた。

編集できないようにパスワードがかっているらしい。

ドキュメントビューア(evince )で 印刷 > ファイルに出力する
で別のpdfにすれば、編集可能なpdfとなる。

参考:How Do I Use evince To Remove The Password?

Windowsの場合(Ubuntuも可能)

コマンドプロンプト等で

$ qpdf --decrypt 入力.pdf 出力.pdf

参考:qpdfでPDFの暗号化による保護を解除 - はしくれエンジニアもどきのメモパスワード による機能制限がかかった PDF を解除する qpdf

エラー対応

twicliでボットツイートを非表示にする

twicliで #sformula や #supergt の検索表示していると、モタスポBGMとかいうボットがうざかったので、それを非表示(ミュート)にする方法。

「+」タブをクリック。>「抽出条件 (タブ名:ユーザID:ツイート:非表示) : 」のところに

NG:msbgm_bot::4

と入れて、適用。

同じく「+」タブ内の「設定」を開いて、「ユーザースタイルシート」に

a#pickup-NG{display:none;}

を入れて、保存。

参照リンク

twicliの抽出タブを拡張 - Okiraku Programming

twicliでNGワードの設定の仕方がどうしても分かりません。 - NGワード... - Yahoo!知恵袋

Markdown to pdf 独自記法でルビ、下線

最終更新:2018年2月6日

  • 肝心なルビの置換で間違い(スペルミス)があったので、修正。
  • pandocを1.9から2.1.1にアップグレードしたら、html に変換時に-sを明示的にコマンドに入れて、スタンドアローンにしないと、htmlのヘッダーやbodyがつかなかったので、スクリプトを修正。

以下に記すものは、html経由のPDF作成です。

LaTeX(Lualatex)経由は Pandoc で markdown から 論文PDF へ変換 を参考にしてください。



Markdown記法(Pandoc拡張Markdown)では、文字へのルビや下線(アンダーライン)の表現はない。

しかし、文書作成上、欠かせない表現なので、以下の手順でMarkdownをpdfデータに変換する前提で、何とかする。

  • Markdown→(Pandoc)→html→(sedで文字列置換)→(wkhtmltopdf)→pdf

Markdown内に直接、html記法で書いてもいいのだが、とくにルビのhtml記法はめんどうくさいし、下線もu要素で書けなくもないのだが、html5ではたんに下線を引くだけにu要素を使うのは良くないっぽいので、独自記法で書いて、sedで置換という手法をとる。

フォルダ内構成

任意のフォルダ内に以下を作成。

sample.css

ruby>rt {
   font-size: 50%;
   text-align: center;
   }

.underline{text-decoration:underline;}

makepdf.sh

#!/bin/sh

#htmlに変換
pandoc $1.md -c sample.css -t html5 -s -o $1.html

#ルビ置換
sed -i -e 's/rb{/<ruby><rb>/g' $1.html
sed -i -e 's/|/<\/rb><rt>/g' $1.html
sed -i -e 's/}rb/<\/rt><\/ruby>/g' $1.html

#下線置換
sed -i -e 's/u{/<span class="underline">/g' $1.html
sed -i -e 's/}u/<\/span>/g' $1.html

#pdfに変換
wkhtmltopdf --disable-smart-shrinking --margin-top 20 --margin-left 20 --margin-right 20 $1.html `date +%Y%m%d-$1`.pdf

原稿.md

<!-- 独自記法メモ
u{下線}u
rb{漢字|かんじ}rb
-->

# 坊っちゃん

## 一

rb{親譲|おやゆずり}rbのrb{無鉄砲|むてっぽう}rbでu{小供の時から}u損ばかりしている。

シェルスクリプト実行

$ sh makepdf.sh 原稿

サンプル画像

f:id:adbird:20170209002306p:plain

バイクメンテナンス記録

総走行距離、約15,000キロ

  • エンジンオイル交換
  • プラグ交換
  • バッテリー交換(予定。ネットで注文済み)

オイル交換、何キロでしたかな?とすぐに忘れるので、本当に備忘録w。

日本語を含むURLを簡単にエンコードする方法

ツイッターtwicli)などで日本語を含むURLを貼り付けると、日本語部分がURLとして解釈(?)されず、正しくリンクされないので、その対処方法。

僕が使っているVivaldiブラウザの場合、

  • パネル(サイドバー)を表示して、ノートで新規メモを追加。
  • URLの横のアイコン(サイト情報)をドラッグして、さきほどの新規メモにドロップすれば、日本語を含まないURLにエンコードされる。
    • ドロップ先を任意のテキストエディタにしても同じことができる。Vivaldliブラウザではノート(メモ)が使えるのでより便利というだけ。

f:id:adbird:20170123165632p:plain

これだけなのだが、よく忘れるので、ここにメモっておく。

追記:Vivaldiブラウザに自動でURLをエンコードしてくれる機能がついたので、設定でチェックを入れればOKになった! (@shun__kawamura さんのツイート参照。)

Pandoc + LaTeX で markdownからA5・縦書き・2段組の小説本のPDFを作成

※「下準備多すぎ!普通にLaTeXだけで書きたい!」という、もっともな意見の方はこちらをどうぞw。

概要

最終更新:2018年2月20日

注意事項:Pandocのバージョンによってはうまく動作しない場合がありますので、あしからず。現在はPandoc 2.1.1 にて動作確認。

前回の投稿 Pandoc + LaTeX で markdownからB6縦書き・小説本のPDFを作成 の後に、同人小説はA5の2段組で作ることが多いと目にしたので、A5の2段組バージョン。

手順は一緒だけど、設定ファイル等をファイル名をはじめ、少しずついじっているので、B6バージョンの設定ファイルは使えない。

また、画像に関しても、B6バージョンでは横向きの画像の書き方が特殊だったが、A5の2段組は逆に縦向きの画像が書き方が特殊になっているので、これも注意。

markdown記法(markdownで表現できないところは結局、TeX記法になってしまうが)で原稿を書いて、コマンド(Windowsならファイルのドラッグ・アンド・ドロップ)で、A5・縦書・2段組の小説本やエッセイ本PDF作成ができる。

フォルダ内の構成

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

任意のフォルダ
 ┃
 ┣ 原稿.md   (原稿ファイル)
 ┣ 001.jpg   (原稿に挿入する画像)
 ┣ 002.jpg
 ┣ 003.jpg
 ┣ Base-A5-two.tex  (LaTeXテンプレート)
 ┣ A5tate-twocolumn.sty (設定スタイルファイル)
 ┣ zrjapunct1.sty    (3点リーダーなどを正しく表示するためのスタイルファイル
 ┣ makepdfA5.sh  (Linuxのみ。スクリプトファイル)
 ┣ makepdfA5.bat (Winのみ。バッチファイル)
 ┣ nkf.exe    (Winのみ。nkfコマンドプログラム)

下準備 拡張子の表示設定

Windows(以下、Win)の人は、ファイルの拡張子が表示されるようにしておく。

ファイル名を「makepdf.bat」や「原稿.md」にしないといけないところを、気づかずに「makepdf.bat.txt」や「原稿.md.txt」になってしまって、うまく実行されなくなってしまうのを防ぐために必要。

下準備 インストール編

Pandocのインストール

Pandoc

「There is a package installer at pandoc’s download page.」のリンク先の下の方にあるインストーラーをダウンロードして、インストール。

sedのインストール(Winのみ)

Pandocで変換して生成されたTeXファイルのコードの文字列をsedを使って置換して、画像を正しい向きに調整するためなどに必要。

sed for Windows

「Download」の項目の「Complete package, except sources Setup」をクリックして、インストーラーをダウンロードして、インストール。

nkfプログラムのダウンロード(Winのみ)

Windows用のsedが、対象ファイルがutf-8のままだと動いてくれないので、文字コードを変換してsedを実行するために必要。

nkf.exe nkf32.dll Windows用

「nkfwin.zip」をダウンロードして、展開。

「vc2005\win32(98,Me,NT,2000,XP,Vista,7)Windows-31J」フォルダの中にある「nkf32.exe」という実行ファイルを取り出し、「原稿.md」などを入れるフォルダにコピーして、「nkf.exe」という名前に変更する。名前を変更するのを忘れないように!

よくPATH(パス)を通してくださいっていう情報があるけど、作業をする同じフォルダ内に入れておけばいいので、別にパスは通さなくていい。

LaTeXTeX Live)のインストール

リンク先を参照のこと。Windowsだとインストールに2時間近くかかる…。

TeX Wiki / TeX Live/Windows

TeX Wiki / Linux

下準備 設定ファイル編

設定ファイルを自分で作るのが面倒くさい人は、

A5-tate-two(20180220アップロード用).zip

を、ダウンロードして展開してください。

ただし、すべての設定ファイルが入っているわけではないので注意。
展開したフォルダ内(原稿.mdなどの入っているフォルダ内)に以下のファイルを入れること。

正体不明なzipファイルはウイルス等の危険性があって怖いという人は、以下のように一つずつファイルを作っていく。

テキストエディタ(メモ帳など)で、下記の3つの設定等ファイルを新規作成。ファイルの内容はそれぞれ後述の内容をコピペするだけ。

ただし、Winは文字コードに注意すること。

メモ帳で作成・保存(「名前を付けて保存」)するときには、バッチファイルのmakepdf.bat以外は、以下の設定にすることに注意。

  • ファイルの種類を「すべてのファイル
  • 文字コードを「UTF-8」を選ぶ(たぶん、全ファイルUTF-8で大丈夫だと思う。 makepdf.bat は、shift_jis(932) じゃないとダメでした。メモ帳で makepdf.bat を編集する場合は上記の文字コード変換はしなくていいです〔ANSIになっていればいい〕)。

もし、ファイル名に「.txt」がついたら、それを消すこと。例えば、「A5tate-twocolumn.sty.txt」となってしまったら、「A5tate-twocolumn.sty」にする。ファイル名の「.txt」を消すときに、もしかしたら警告が出るけど、気にしなくていい。

A5tate-twocolumn.sty

LaTeXのA5縦書2段組のために調整した設定スタイルファイル。

% zrjapunct1.sty 3点リーダーなどの調整
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{otf}% <?>で自動空白挿入
\usepackage[prefercjkvar]{pxcjkcat}
\usepackage{zrjapunct1}
\cjkcategory{latn1}{noncjk}% <é>は欧文

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

% 欧文フォント
%\usepackage{newtxtext,newtxmath}
\usepackage{lmodern}

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

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

%一部横書きなど
\usepackage{plext}

%BMP外の文字を使う
\usepackage{otf}

%リンク
\usepackage[hidelinks]{hyperref}

% 原稿ページ設定
\paperwidth 148mm
\paperheight 210mm
\topmargin -17mm
\headheight 3mm
\headsep 5mm
\oddsidemargin -8.9mm
\evensidemargin -8.9mm
\textwidth 175mm %縦書なので、これがテキストの「高さ」
\textheight 115mm %縦書なので、これがテキストの「幅」
\footskip 9mm

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

\pagestyle{bothstyle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{bounddvi} %%トンボ付ける際に必要

%タイトルページ出力
\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}{\kanjiskip=.1zw plus.5pt minus.5pt \large \@author \par}%
  \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@%
  {%\leftskip #2\relax \rightskip \@tocrmarg 
  %\parfillskip -\rightskip
  \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 0.33333zw{\hfil\raise.30zw\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{2zw}%数字と目次本文との間
      \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}{4zw}{2zw}}
\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

Base-A5-two.tex

Pandocが下記テンプレートファイルの $body$ に、原稿.mdを放り込んで変換してくれる、そのためのテンプレートファイル。

トンボをつけたり、本文のフォントサイズを変えたり、印刷所名を変えたりときに少しいじる程度。トンボを付けたPDFを出力したいときは1行目の先頭に「%」をつけてコメントアウトして、2行目の先頭の「%」をはずす。

% upLaTeX文書; 文字コードはUTF-8
\documentclass[uplatex,twocolumn,dvipdfmx]{utbook}  %トンボなし。
%\documentclass[uplatex,tombow,twocolumn,dvipdfmx]{utbook}  %トンボあり。

\usepackage{A5tate-twocolumn}

\title{$title$} 
\author{$author$} 
\date{$date$} 
\begin{document}
    \maketitle
    \tableofcontents

$body$

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

\begin{tabular}{l}
\multicolumn{1}{c}{\Large{$title$}}\\[3mm] %%タイトル
\hline
%% row 1
\\[-3mm]
\hspace{2mm}\large{著者}\hspace{6mm}$author$\\[0mm] 
\hspace{2mm}\small{発行日\hspace{5mm}$date$    }\\[0mm]
\hspace{2mm}\scriptsize{印刷・製本}\hspace{2mm}{\scriptsize 桜島出版}\\[-3mm]
\\\hline
\end{tabular}
\end{center}
\end{minipage}

\end{document}

makepdfA5.bat (Winのみ)

バッチファイル。文字コードshift_jis(932)=ANSIで保存。

pandoc %~n1.md --template Base-A5-two.tex --top-level-division=chapter -o %~n1.tex

nkf -s --overwrite %~n1.tex
sed -e "s/begin{figure}/begin{figure}\n\\begin{center}\n\\begin{minipage}<y>\[htbp\]{11.5cm}/g" -e "s/end{figure}/end{minipage}\n\\end{center}\n\\end{figure}/g" -e "s/!縦/\\onecolumn\\begin{figure}\\begin{center}\\begin{minipage}<y>\[htbp\]{11.5cm}\\centering/g" -e "s/縦!/\\end{minipage}\\end{center}\\end{figure}\\twocolumn/g" -e "s/\\ldots{}/…/g" -e "s/\\ldots/…/g" -e "s/,height=\\textheight//g" %~n1.tex > %date:~0,4%%date:~5,2%%date:~8,2%-%~n1.tex
nkf -w --overwrite %date:~0,4%%date:~5,2%%date:~8,2%-%~n1.tex

uplatex %date:~0,4%%date:~5,2%%date:~8,2%-%~n1
dvipdfmx %date:~0,4%%date:~5,2%%date:~8,2%-%~n1

del %~n1.tex

内容としては、

  • 対象markdownファイルをpandocで変換
  • nkfShift_JISコードに変換(そうしないとWin用sedが動いてくれない)
  • sedで置換(-iオプションを使うと一時ファイルが増えていくので使わなかった)。主に画像まわりの調整。
  • nkfUTF-8に戻す
  • uplatex 実行
  • dvipdfmx 実行
  • 置換前のtexファイルを削除

というコマンドを並べているだけ。

Pandocの変換方法が変わって、sedによる置換がうまくいかなくなるかもしれないので、あしからず…。

makepdfA5.sh (Linuxのみ)

シェルスクリプトファイル。基本、上と同じことをやっている。まぁ、こっちが先にできたんだけど…。

上記と一緒で、Pandocの変換方法が変わって、sedによる置換がうまくいかなくなるかもしれないので、あしからず…。

#!/bin/sh

pandoc $1.md --template Base-A5-two.tex --top-level-division=chapter -o $1.tex
#写真の調整
sed -e 's/begin{figure}/begin{figure}\n\\begin{center}\n\\begin{minipage}<y>\[htbp\]{11.5cm}/g' -e 's/end{figure}/end{minipage}\n\\end{center}\n\\end{figure}/g' $1.tex > `date +%Y%m%d-$1`.tex

sed -i -e 's/,height=\\textheight//g' `date +%Y%m%d-$1`.tex

#横サイズ写真2枚を1ページに収める調整
sed -i -e 's/!縦/\\onecolumn\\begin{figure}\\begin{center}\\begin{minipage}<y>\[htbp\]{11.5cm}\\centering/g' -e 's/縦!/\\end{minipage}\\end{center}\\end{figure}\\twocolumn/g' `date +%Y%m%d-$1`.tex

#3点リーダー(…)をpandocが\ldots変換したのを、もう一度…に戻す
sed -i -e 's/\\ldots{}/…/g' `date +%Y%m%d-$1`.tex
sed -i -e 's/\\ldots/…/g' `date +%Y%m%d-$1`.tex

uplatex `date +%Y%m%d-$1`
dvipdfmx `date +%Y%m%d-$1`
rm -f $1.tex

zrjapunct1.sty

前述したように、以下をダウンロードして、フォルダ内に入れる。

原稿を書く(原稿.mdの作成)

原則、markdownpandoc拡張のmarkdown)記法で書くが、markdownにないものは、TeX記法で書く。

文字コードUTF-8で。

以下、簡単なテンプレート。ガシガシ書いていく。

%タイトル
%著者
%2017年1月1日

<!-- 書き方メモ
- 強調  *強調したい文字*
- ルビ  \ruby{山﨑}{やま|さき}
ルビの書き方は、オプションをつけたりしないと上手くいかないこともあるので、注意。詳しくは pxrubrica パッケージ(pxrubrica.sty)について調べること。
- 傍点  \bou{傍点をつけたい語句}
- 縦中横の数字  \rensuji{10} 
- 横向きの画像
![キャプション](001.jpg){width=11cm}
- 縦向きの画像
!縦![](002.jpg){width=11cm}\caption{キャプション}縦!
-->

# 章レベルの見出し

あとは本文をガシガシ書いていく。
横向きの画像は、markdown(Pandoc拡張markdown)記法で以下のように書く。{width=11cm}というのはPandocの拡張。

![キャプション](001.jpg){width=11cm}

# 章レベルの見出し

## 節レベルの見出し

本文をガシガシ書いていく。

1ページに横向きの写真を上下に2枚入れるときは、1行空けて書く。ただし、前後の文章の関係で、必ずしも1ページに収まるとは限らない…。そのときは画像を入れる場所を試行錯誤してみてください。

![キャプション](001.jpg){width=11cm}

![キャプション](002.jpg){width=11cm}


縦向きの画像は下記のように書く。sedで置換するために、かなり特殊な書き方になっている。上記の書き方メモからコピペしてきて。

!縦![](002.jpg){width=11cm}\caption{キャプション}縦!


# あとがき{-}

あとがきを書いていく。見出しに章番号をつけたくない場合は、見出しの後ろに{-}をつける。

原稿作成時のポイント

  • 数字、アルファベットは基本、全角や漢数字で。
  • 強調(ゴシックになる程度) *強調したい文字*
  • ルビ \ruby{山﨑}{やま|さき}
  • 傍点 \bou{傍点をつけたい語句}
  • 縦中横の数字 \rensuji{10}

  • ※ 画像について

    • 横向きの画像の場合は、普通のmarkdown(Pandoc拡張markdown)記法で下記のように。横幅はご自由に調節を。11cmぐらいが左右のバランスが取れる最大の幅かな…。

      ![キャプション](001.jpg) {width=11cm}
      
    • 横向き写真を1ページに上下2枚並べるときは、単純に1行空けて書く。ただし、前後の文章の関係で、必ずしも1ページに収まるとは限らない…。そのときは画像を入れる場所を試行錯誤してみてください。

      ![キャプション](001.jpg) {width=11cm}
      
      ![キャプション](002.jpg) {width=11cm}
      
    • 縦向きの画像は、下記のように書き方がかなり特殊になる。これはsedで置換して調整するため。前後に「!縦」と「縦!」で挟んで、キャプションの付け方にも注意。「書き方メモ」からコピペして使ってください。

      !縦![](002.jpg){width=11cm}\caption{キャプション}縦!
      

実行(PDF生成)

Windows

原稿.md をバッチファイルの makepdfA5.bat の上に2回重ねる(ドラッグ&ドロップ)。2回繰り返すのは目次生成のため。

または、

原稿.mdなどの入っているフォルダのアドレス欄のところに cmd と入力して、コマンドプロンプトを起動、

makepdfA5 原稿

と入力して、実行。この場合も、目次生成のために2回実行する。

B6バージョンとはコマンドが違うので注意。

そうすると、<日付>-原稿.pdf などが生成される(他にもいくつかファイルが作られるが気にしなくていい)。

環境にもよるだろうが、完成したpdfファイルを開いたまま、もう一度、上記作業を実行するとpdf生成に失敗することがあるので、一度pdfビューア(Adobe readerなど)を閉じてから実行すること。

Linux

Ubuntuであれば、原稿.mdの入っているフォルダで 右クリック > 端末の中に開く で端末を起動させて、

$ sh makepdfA5.sh 原稿

を、やはり目次生成のために、2回実行。

B6バージョンとはコマンドが違うので注意。

おわりに

上の段と下の段の文字列がずれないようにする微調整が必要だった。

それでも、節(\section)が入るページはどうしても上下の文章の列がズレてしまう…。

追加・修正

  • 2017年1月16日 A5tate-twocolumn.sty ヘッダーの設定を修正。目次ページのヘッダー削除を追加。
  • 2017年1月18日 A5tate-twocolumn.sty タイトル位置の調整、ヘッダー、フッターの調整等。
  • 2017年1月20日 A5tate-twocolumn.sty ページ設定の変更。
  • 2017年1月24日 makepdfA5.sh をよりシンプルに修正。
  • 2017年1月25日 A5tate-twocolum.sty を A5tate-twocolumn.sty に名前を変更(最後の n が抜けてた…。恥ずかしい…w。)A5tate-twocolumn.sty ページ設定(ページ上部マージン、フッター位置)調整、写真のキャプション位置調整。
  • 2017年1月25日 設定ファイルをzipファイルにしてダウンロードできるようにした。
  • 2018年2月1日 zrjapunct1.sty を導入したため、各種ファイルに大幅な変更を加えた。
  • 2018年2月3日 原稿.mdの「あとがき」(章番号をつけない見出し)の書き方を修正。ルビの書き方の注意事項を追加。
  • 2018年2月8日 Pandoc 2.1.1 に合わせて各種ファイルを修正。
  • 2018年2月12日 目次の点線を3点リーダーになるように、A5tate-twocolumn.styを修正。
  • 2018年2月19日 目次のページの調整で、A5tate-twocolumn.styを修正。
  • 2018年2月20日 欧文フォントの調整で、A5tate-twocolumn.styを修正。

サンプル画像

f:id:adbird:20170125213844p:plain f:id:adbird:20170125213903p:plain