#author("2022-09-26T16:10:56+09:00","default:kouzouken","kouzouken") #author("2022-09-26T16:13:40+09:00","default:kouzouken","kouzouken") #contents クラスの学生たちの顔写真をデジカメで撮影して、 [[こんな感じ:http://www.str.ce.akita-u.ac.jp/~gotou/programoj/sonota/kao_uso_b4.pdf]]の顔写真名簿みたいなものを作る手順。 -B4版$\LaTeX$ソース[[kao_uso_b4.tex:http://www.str.ce.akita-u.ac.jp/~gotou/programoj/sonota/kao_uso_b4.tex]] *必要な環境 [#yf28fc4c] -以下のコマンド類が使えるLinuxパソコンなりWindowsのCygwinなり -日本語$\LaTeX$環境 -ImageMagick *手順 [#x0bdf9b6] **顔写真の撮影 [#v489d6a9] -学籍番号順に撮影し、欠席者のところは、学籍番号を書いた紙などを 撮影しておくと、ファイル名と学籍番号との対応がやりやすい。 -解像度は640*480とかできるだけ小さめに設定。 --''顔写真撮影の後、通常用途に解像度を戻すのを忘れないように'' -最近のカメラは顔を縦長に撮っても顔がちゃんとした向きになるように 回転させる機能があるが、この機能はJPEGの拡張機能によるもので、 以下に述べるeps変換をしたりすると横向きに戻ってしまうので、 一括で回転させることを念頭に、撮影の向きを決めておく(シャッターが右下とか)。 ただし、デジカメの機能として縦向き写真を縦向きの画像として保存する 機能がある場合は、そのように設定すれば、以下の一括回転の手間を省ける。 -顔の部分をできるだけ大きく撮影する。 **画像ファイル名を学籍番号に変える [#vc082b91] 画像ビューアーなどで、失敗画像などを適宜 削除して 欠席者も学籍番号を書いた紙の写真などのダミーを入れて、 一人一枚ずつファイル名の若い順に学籍番号順に並ぶ画像とする。 まず、ls *.jpg > lsjpg.csv などとして、画像ファイル名がファイル名順に 並んだファイルを作る。 それを表計算ツールに読み込み、学生名簿の学籍番号と並べて対応させ、 適宜、mvコマンドや.jpgなどの拡張子を挿入してcsv出力し、 それをテキストエディタで、 --( mv dscn1631.jpg 7501234.jpg mv dscn1633.jpg 7501235.jpg mv dscn1634.jpg 7501236.jpg --) mv dscn1631.jpg 7501234.jpg mv dscn1633.jpg 7501235.jpg mv dscn1634.jpg 7501236.jpg みたいに整形して、保存し、実行属性を与えて実行して、 画像ファイル名を学籍番号とする。 vimのマクロを利用するなら、先頭行でqaと打って下に「記録中」が出てる状態で、 先頭行にmvと.jpgを挿入して2行目に移動してからqを打って記録をやめ、 それを以下60行に適用するなら、60@a 仮にEye of Gnomeで一人一人顔を確認しながら手動で名前変換したとしても、 50人程度ならそれほどの手間ではない。 どうせ、Eye of Gnomeでこの作業をするなら、 この際、縦に撮影した顔写真を90度回転する作業も同時やってしまうと良い。 というのは、Eye of Gnomeは、1クリックで回転、もう1クリックで保存、 もう1クリックで次の画像へ移動できるので。 自動的に処理したい人は、以下参照。 **横向きの顔写真を一括で90度回転してeps形式で保存 [#o57a304b] ディレクトリ内の拡張子が.jpgのファイルを右回りに90度回転して、 eps形式で保存するには --( for a in *.jpg; do convert -rotate 90 $a `echo $a | sed s/.jpg/.eps/g` ; done --) for a in *.jpg; do convert -rotate 90 $a `echo $a | sed s/.jpg/.eps/g` ; done その他、回転しなくていいとか、回転だけしたいとかは、 [[ImageMagickメモ]]参照。 *名簿ファイルに\LaTeXコマンドを書き込む [#m8e53c1f] 名簿ファイルを表計算ツールで成形して、 学籍番号の列を学籍番号の左に1列コピーし、 その直前の列に --( \begin{minipage}[h]{31mm}\includegraphics[width=28mm]{ --) \begin{minipage}[h]{31mm}\includegraphics[width=28mm]{ と書き込まれた列を作り、 その直後の列に --( .eps}\\ --) .eps}\\ と書き込まれた列を作り、 氏名の列の左に\\ \end{minipage}と書き込まれた列を作る。 といった要領で以下のように整形し、 ,\begin{minipage}[h]{31mm}\includegraphics[width=28mm]{,7501234,.eps}\\,7501234,後藤文彦,\\ \end{minipage} ,\begin{minipage}[h]{31mm}\includegraphics[width=28mm]{,7501235,.eps}\\,7501235,五島史彦,\\ \end{minipage} ,\begin{minipage}[h]{31mm}\includegraphics[width=28mm]{,7501236,.eps}\\,7501236,石野真木,\\ \end{minipage} これをcsv形式で出力する。 区切り文字を選択てきる場合は、スペースにする。 できない場合は、保存後にエディターでコンマを削除したりする。 でそれを、以下の「ここから名簿データ」以下に貼りつければよい。 この名簿データ部分は、表計算ツールで学籍番号や研究室教員名でソートできる。 pdfを作るときは、dvipdfmのデフォールトだと大きいファイルサイズに なってしまうので、xdviでpdf化すると小さいサイズになる。 --( \documentclass[a4j]{jsarticle} \setlength{\topmargin}{-10mm} \setlength{\oddsidemargin}{-16mm} \setlength{\textwidth}{186mm} \setlength{\textheight}{260mm} \usepackage[dvips]{graphicx,color} \pagestyle{empty} \begin{document} \begin{center} {\large\bf 2011年度2年生(54名)} \end{center} \textgt{\small % ------- ここから名簿データ ------ \begin{minipage}[h]{31mm}\includegraphics[width=28mm]{1234.eps}\\1234後藤文彦(後藤)\\\end{minipage} \begin{minipage}[h]{31mm}\includegraphics[width=28mm]{1235.eps}\\1235五島史彦(後藤)\\\end{minipage} \begin{minipage}[h]{31mm}\includegraphics[width=28mm]{1236.eps}\\1236石野真木(後藤)\\\end{minipage} % ------- ここまで名簿データ ------ } \end{document} --) \documentclass[a4j]{jsarticle} \setlength{\topmargin}{-10mm} \setlength{\oddsidemargin}{-16mm} \setlength{\textwidth}{186mm} \setlength{\textheight}{260mm} \usepackage[dvips]{graphicx,color} \pagestyle{empty} \begin{document} \begin{center} {\large\bf 2011年度2年生(54名)} \end{center} \textgt{\small % ------- ここから名簿データ ------ \begin{minipage}[h]{31mm}\includegraphics[width=28mm]{1234.eps}\\1234後藤文彦(後藤)\\\end{minipage} \begin{minipage}[h]{31mm}\includegraphics[width=28mm]{1235.eps}\\1235五島史彦(後藤)\\\end{minipage} \begin{minipage}[h]{31mm}\includegraphics[width=28mm]{1236.eps}\\1236石野真木(後藤)\\\end{minipage} % ------- ここまで名簿データ ------ } \end{document}