ラベル texlive の投稿を表示しています。 すべての投稿を表示
ラベル texlive の投稿を表示しています。 すべての投稿を表示

2018-03-10

確定申告の添付書類台紙へ本人確認書類を電磁的に貼り付ける

確定申告書を印刷して提出する時, 源泉徴収票 (原本) とマイナンバーカード (写) を添付書類台紙へ貼る必要がある. わざわざ別の紙に印刷して貼るのは面倒かつ紙の無駄である. pLaTeXを使用して電磁的に貼る方法を説明する.
  • まず, 貼る予定のカードをスキャンし, 大きさをそろえて周囲を切り取る. 各ページをEPSで保存する. 一例としてGimpを使用するとこのような作業ができる.
  • 貼り付け台紙のページをEPSへ変換する.
    $ pdftops -f 2 -l 2 ../h29syotoku.pdf id-format.eps
    もしAcrobat Reader等からEPSを作成したい場合, このページが役に立つかもしれない.
  • pLaTeXのコードを作成し, PDFを作成する.
    platex id && dvipdfmx id
    以下に, TeXのソースコードを示す.
    \documentclass{jarticle}
    \usepackage{wallpaper}
    \usepackage{graphicx}
    \usepackage{geometry}
    \usepackage{color}
    
    \geometry{left=0mm,right=0mm,top=20mm,bottom=20mm}
    
    \begin{document}
    \thispagestyle{empty}
    \ThisCenterWallPaper{1.0}{id-format.eps}
    
    \center \begin{tabular}{c}
      ~\vspace{77mm}~ \\ % 位置を調整する
      \colorbox{white}{
        \begin{tabular}{cc}
          ~ \\
          \includegraphics[width=90mm]{taxid-1.eps} &  % マイナンバー 表
          \includegraphics[width=90mm]{taxid-2.eps} \\ % マイナンバー 裏
          ~ \\
          % 本人確認書類を貼る場合:
          \includegraphics[width=90mm]{lic-1.eps} &
          \includegraphics[width=90mm]{lic-2.eps} \\
          ~ \\
        \end{tabular}
      }
      \\
    \end{tabular}
    \end{document}
    
    width=90mmの箇所は, 周囲を切り取ったときの大きさに合わせて設定する. あるいは, EPSに大きさを正しく設定していれば, widthは不要になる.
  • 2017-06-25

    LaTeX 表の中のセルに改行を入れる方法

    LaTeXの表で改行を入れる方法としてよく紹介されるのは, 罫線を部分的に消して, 次の行と一体化しているように見せる方法である. 一方で, この方法では, ひとつのセルの情報がソースコード中ではバラバラになってしまうので, わかりにくい.

    ここでは, 別の方法, 表を入れ子にする方法を紹介する.

    ソース:
    \begin{table}
     \center \begin{tabular}{|c|c|c|} \hline
      & A & B \\\hline\hline
      a &
      \begin{tabular}{l}
        n: 0.0 -- 0.5 \\
        p: 1.2 -- 0.7
      \end{tabular} &
      \begin{tabular}{l}
        n: 0.0 -- 0.6 \\
        p: 1.2 -- 0.6
      \end{tabular} \\\hline
     \end{tabular}
    \end{table}
    
    出来上がり:

    2017-06-14

    dvips + ps2pdfで日本語をタイプセットするためのメモ

    Fedora 24上のTeXLive 2017/platex + dvips + ps2pdf で日本語混じりのドキュメントをタイプセットするための設定方法をメモする. どういう変更をしたのか理解できていないが, 日本語が埋め込まれたPDFが生成されたようなので良しとする.
    なお, dvips+ps2pdfの代わりにdvipdfmxを使用すると, 一部の図が表示できなくなった.

    $ cat /usr/share/ghostscript/9.20/Resource/Init/cidfmap.ja
    /IPAexMincho << /FileType /TrueType /Path (/usr/share/fonts/ipa-mincho/ipam.ttf) /CSI [(Japan1) 6] >> ;
    /IPAexGothic << /FileType /TrueType /Path (/usr/share/fonts/ipa-ex-gothic/ipaexg.ttf) /CSI [(Japan1) 6] >> ;
    
    上記は, cidfmap
    (cidfmap.ja) .runlibfileifexists
    
    という行が見つかったので, 日本語のためにcidfmap.jaというファイルをインクルードしているのだろうと推測した. もともと, cidfmap.jaというファイルは見つからなかったので, cidfmapと同じディレクトリに作成. ipam.ttfとipaexg.ttfは, find /usr/share/fonts -name ipa*.ttfでパスを探しだした.
    将来GSのバージョンが変わった時は, 9.20の部分を新しくするべきなのだろう.

    以下のコマンドでPDFを生成する.

    platex -halt-on-error  -recorder  "main.tex"
    dvips -P pdf  -o "main.ps" "main.dvi"
    ps2pdf -dPDFSETTINGS=/prepress -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true  "main.ps" "main.pdf"
    
    生成したPDFのフォントを確認する:
    $ pdffonts main.pdf
    name                                 type              encoding         emb sub uni object ID
    ------------------------------------ ----------------- ---------------- --- --- --- ---------
    ...
    WWYGYS+IPAMincho                     CID TrueType      H                yes yes no     276  0
    ...
    
    IPAMinchoが埋め込まれている (emb=yes) ようだ.

    生成されるPSファイルには,

    %%DocumentFonts: NimbusRomNo9L-Regu NimbusRomNo9L-Medi rtxr rtxmi
    %%+ NimbusRomNo9L-ReguItal IPAexMincho-H rtxb txsy txex Times-Roman
    %%+ Helvetica Symbol Times-Italic Courier Helvetica-Oblique
    %%+ NewCenturySchlbk-Roman Times
    
    と書かれており, IPAexMincho-Hがあるので, IPAexMinchoを設定すれば十分なのだと思う.

    以下のサイトを参考にした.

  • ghostscript 日本語フォントの設定 -alprovs の記録; SL 6とUbuntu 16での設定方法が書かれている.
  • 2015-02-13

    pLaTeXのコードをオンラインでコンパイル

    pLaTeXのコードをオンラインでコンパイルして, SVGやEMFでダウンロードできるサイトがある: tex2svg/emf.

    こういうのがあると, コマンドをサーバで実行できないものかと考えたくなる. (他人のサーバに送ると不正アクセスとなる可能性があるので, 手元のLaTeXで検証してみた.)

    \write18を使う方法:

    \documentclass{article}
    \immediate\write18{ls > scriptoutput.tex}
    \begin{document}
    \input{scriptoutput.tex}
    \end{document}
    
    以下のように, \write18は制限されているとメッセージが出た.
     restricted \write18 enabled.
    

    Runpopenを使う方法:

    \documentclass{article}
    \begin{document}
    \input{|"/bin/ls"}
    \end{document}
    
    これもダメ
    runpopen command not allowed: /bin/ls
    
    どうやら, platexを実行するときにオプション--enable-pipes --shell-escapeを付けないといけないらしい.

    2015-01-20

    LaTeX: 外部のリファレンス

    LaTeX にて, 他のソースファイルにつけたラベルを参照したい場合がある. このような場合, xr (eXternal References) というパッケージを使うと良い.
    例えば, 論文のリプライレターにおいて, 「X.X節にXXXを追記しました」などと書く場合, 本文にかいたlabelを参照した方が間違いを減らせるだろう. 章構成の変更 (章を追加するなど) が予定されている場合でも安心である.

    以下に例を示す.
    ファイル aaa.tex に以下のように記載があったとする.

    \section{Experimental setup} \label{sec:setup}
    
    これを, ファイル別のソースファイルから参照する場合, 以下のように書く.
    % プリアンブル
    \usepackage{xr}
    \externaldocument{aaa}
    ...
    % 本文
    In Sect.~\ref{sec:setup}, ...
    
    \externaldocumentはプリアンブル (\begin{document}の前) に書く必要があるらしい.

    2014-10-27

    図表や参考文献番号をリンクにする

    LaTeXで論文などのPDFを作成する時, 図表や参考文献番号をリンクにしておくと, 読者に対して親切である.

    私は, 以前に紹介したように, dvipdfmxを使ってPDFを作成している. この場合, 以下の1行をプリアンブルに書いておくとよいと先輩から教えてもらった.

    \usepackage[hidelinks,breaklinks,dvipdfmx]{hyperref}
    リンクでジャンプする先が図表本体ではなくキャプションであることが難点だが, ないよりはましだろう.

    2014-08-26

    PDF末尾に注意を記載する

    PDFtk を使用すると, 全てのページにスタンプを押すことができる. PDF末尾に注意事項を記載する場合の方法を紹介する.
    1. スタンプのPDFを作成する. 以下のようなpLaTeXのファイル notice.tex を作成し, PDFを作成する.
      \documentclass[a4j,10pt]{jarticle}
      
      \setlength{\topmargin}{243mm}
      \setlength{\textheight}{10mm}
      
      \begin{document}
      \footnotesize
      本著作物の著作権は情報__学会に帰属します.
      本著作物は著作権者である情報__学会の許可のもとに掲載するものです.
      ご利用に当たっては「著作権法」ならびに「情報__学会倫理綱領」に従うことをお願いいたします.
      \end{document}
      
    2. PDFtkを使用して, paper.pdf にスタンプを押し, web.pdf を作成する.
      $ pdftk paper.pdf stamp notice.pdf output web.pdf

    2014-06-21

    LaTeX での文字サイズ

    LaTeX にて \tiny により小さい文字にできるが, 縦横比が変わり, 上下にへしゃげた文字になる. そのままの縦横比で小さくするには, \scalebox の方がよさそうだ. 図表の中の文字サイズを変えるときに便利.

    2013-09-10

    LaTeX 英文のスペル・文法チェック

    ieice.cls を使うと, figure/minipage 環境内の caption が折り返されない

    クラスファイル ieice.cls を使用して, 図を左右に並べ, それぞれに \caption を使ってキャプションを書くと, なぜか元のダブルカラムの幅で折り返される. このような場合は, 以下のように \capwidth を定義し直すことで回避できる.
    \begin{figure}
     \begin{minipage}{0.59\hsize}
      \center \includegraphics[width=25mm,angle=270]{schematic.eps}
      \floatenv\capwidth\hsize
      \caption{Schematic of the proposed circuit.}
      \label{fig:sch}
     \end{minipage}
    ...
    \end{figure}
    
    figure の定義において, \capwidth\textwidth から計算しているので, minipage 環境内で正しく幅の処理がされないようだ.
    \newenvironment{figure}
                   {\floatenv
                    \if@referee\capwidth.66\textwidth\else\capwidth\hsize\fi
                    \abovecaptionskip4\p@\belowcaptionskip\z@\@float{figure}}
                   {\end@float}
    

    gs を使って PDF にフォントを埋め込む

    様々なツールで PDF を作成できるようになってきているが, フォントを埋め込むかどうかなどを指定できないツールもある. この場合, Ghostscript に付属の gs コマンドを使用して フォントを埋め込んだ PDF を作成することができる.
    gs -dPDFSETTINGS=/prepress -dEmbedAllFonts=true -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf -c .setpdfwrite -f input.pdf
    

    2013-06-04

    私のlatexmkrc

    latexmk というプログラムを使うと, コマンドひとつで LaTeX のソースファイルのコンパイル, PDF の作成などを行うことができる. 実行してみると *.fdb_latexmk というファイルが生成されていて MD5 が書かれていたので, 中間ファイルや依存ファイルの MD5 が変わったかどうかを見てコンパイルするかどうか, もう一度コンパイルし直すかどうかを判断する.

    作業ディレクトリにlatexmkrcというファイルを用意しておくと, 使用するコマンドをカスタマイズできる. 以下に私が使用しているlatexmkrcの例を示す.

    #!/usr/bin/env perl
    
    $latex  = 'platex -halt-on-error %O %S';
    $bibtex  = 'pbibtex %O %B';
    $dvipdf  = 'dvipdfmx %O %S';
    $pdf_mode = 3;
    
    $ENV{"LANG"} = "ja_JP.UTF-8";
    
  • 日本語を書くので, platex, pbibtex, dvipdfmxを使用する. これを上記の様に設定する.
  • pdf_modeを3に設定することで, DVIPDFによりPDFを生成する.
  • 念の為, 環境変数LANGをja_JP.UTF-8に設定しておく.
  • その他の設定は, latexmkの中身 (perlで書かれている) を読んで調べれば良い. なお, latex ではなく platex を使用したい場合は,
    latexmk -latex=platex
    
    とすれば良いようだ.

    また, 英語で論文などを書くときには, 以下のlatexmkrcを使っている.

    #!/usr/bin/env perl
    
    $latex  = 'latex -halt-on-error %O %S';
    $bibtex  = 'bibtex %O %B';
    $dvipdf  = 'dvipdfmx %O %S';
    $pdf_mode = 3;
    
  • 2013-05-02

    LaTeX パッケージのドキュメント

    LaTeX のパッケージに含まれるコマンドの使用方法を調べる場合, CTAN のウェブページを利用するのが良い. コマンド名で検索しても, 不完全な情報しか得られないが, オフィシャルなドキュメントには, サポートされている全てのオプションが記載されている (べきである).

    2013-02-07

    DVIからフォントを埋め込んでPDFを作成

    DVIからPDFを作成する際, 全てのフォントを埋め込む場合には以下の手順を使用する.
    dvips document.dvi
    ps2pdf14 -dPDFSETTINGS=/prepress -dEmbedAllFonts=true document.ps
    

    2011-11-19

    Dvipdfmx によるフォントの埋め込み (TeXLive 2011)

    Dvipdfmx (に限らず TeX) のフォント設定はなかなか情報がみつからない. SL 6 にインストールした TeXLive 2011 にて, 試行錯誤でとりあえずフォントが埋め込まれるように設定できた. メモを残しておく.

    True Type フォントの配置

    True Type フォントは, 適切なパスに配置しなければならないようだ. 以下のいずれかに配置する.
    • . (現在のディレクトリ).
    • $TEXINPUTS で指定したディレクトリの下の fonts/truetype およびそのサブディレクトリ.
    • インストールディレクトリの下の texmf*/fonts/truetype およびそのサブディレクトリ.
    • その他?
    kpsewhich を使用することで, パスがあっているか確認できる.

    True Type フォントから VF を作成

    以下のようなスクリプトを作ってみた.
    #! /bin/bash
    
    vpl=$(mktemp --suffix=.vpl)
    tfm=${1/.ttf/.tfm}
    
    ttf2tfm $1 -q -T T1-WGL4.enc -v $vpl $tfm &&
    vptovf $vpl $2 $tfm
    

    VF の配置

    True Type フォントの配置と同様だが, truetype ではなく vf の下に配置する.

    マップファイルの作成

    TeX でのフォントと実際に埋め込むフォントとの対応を記述する. 以下が例.
    rml H sazanami-mincho
    gbm H sazanami-gothic
    
    dvipdfm を使用するのであれば, ユーザーズガイドに書式がかかれている.

    Dvipdfmx の実行

    オプション -f でマップファイルを指定する. texmf/dvipdfmx/dvipdfmx.cfg というファイルがあるので, これを編集するとデフォルトを変えられるかもしれない.