Draw by MetaPost with LuaTeX and luamplib in Japanese
Autor
Satie Moonlight
Letzte Aktualisierung
vor 7 Jahren
Lizenz
Creative Commons CC BY 4.0
Abstrakt
Test paper for Japanese TeX and MetaPost User
Test paper for Japanese TeX and MetaPost User
%\documentclass{article}
\documentclass[fleqn,a4paper]{ltjsarticle}
\usepackage[top=10truemm,bottom=10truemm,left=10truemm,right=10truemm]{geometry}
\usepackage{amsmath,amssymb}
\usepackage{luatexja-fontspec}
\usepackage{luamplib}
\usepackage{luatexja-ruby}
\usepackage{multicol}
\everymplib{beginfig(1);}
\everyendmplib{endfig;}
\begin{document}
% title
\noindent$\square$\hfill$\square$\par\vspace{-1\zw}
\noindent\Huge\hfill%
Overleaf というブラウザ経由での\TeX 環境で,\hfill~\par\noindent\hfill%
Lua\LaTeX で日本語と\verb+\luamplib+を使って\hfill~\par\noindent\hfill%
日本語での数式込み\textsf{MetaPost}作図な文面を試す
\hfill~\par%\vspace{-1\zw}
\normalsize
\noindent$\square$\hfill$\square$\par
%
%
\begin{multicols}{2}
\ruby{私}{わたし}は\ruby{誰}{だれ}?
%
\par\noindent\hfill$\infty$\hfill~\par
%
それはさておき...
%
\par\noindent\hfill$\infty$\hfill~\par
%
\TeX 文書の冒頭,所謂プリアンブルなどと呼ばれる部分は,
このお試し文書では次のようにしてみた。
%
\begin{quotation}\parindent=0pt\begin{verbatim}
\documentclass[fleqn,a4paper]{ltjsarticle}
\usepackage[top=10truemm,bottom=10truemm,%
left=10truemm,right=10truemm]{geometry}
\usepackage{amsmath,amssymb}
\usepackage{luatexja-fontspec}
\usepackage{luamplib}
\usepackage{luatexja-ruby}
\usepackage{multicol}
\everymplib{beginfig(1);}
\everyendmplib{endfig;}
\begin{document}
\end{verbatim}\end{quotation}
%
少しだけ説明してみましょう。\par
%
\noindent\verb+\documentclass[fleqn,a4paper]{ltjsarticle}+
\par
これは\ruby{\textbf{文書}}{document}\ruby{\textbf{クラス}}{class}というもので,\verb+ltjsarticle+という仕様で,
\verb+fleqn+は「数式の位置を左から一定の位置に書く」ことにしてねっていう指示で,\verb+a4paper+はそのまま。
\verb+ltjsarticle+については,
\verb+l-t-js-article+みたいな区切りで読めば多分よくて,\verb+lua+な\verb+tex+での\verb+js+は日本語での\verb+article+は本(book)でもレポート(report)でもない記事(article)という短い文書用の体裁でっていう指定です。
\noindent\verb+\usepackage[top=10truemm,bottom=10truemm,+\par
\noindent\verb+left=10truemm,right=10truemm]{geometry}+\par
これは,巷のワープロなどと同様でデフォルトだと文書の余白が余裕で広いので,余白調整したいなぁという時の呪文。
\noindent\verb+\usepackage{luamplib}+\par
これで\verb+lua+で\verb+mp+(MetaPost)を使う\verb+lib+(ライブラリ)のパッケージを使うよってしておいて\par
\noindent\verb+\everymplib{beginfig(1);}+\par
\noindent\verb+\everyendmplib{endfig;}+\par
はその\verb+luamplib+を快適に使うための\ruby{御呪い}{おまじない}。
%
\par\noindent\hfill$\infty$\hfill~\par
%
さて,
\vspace{1\zw}\par\noindent\hfill%
\begin{mplibcode}
pickup pencircle scaled 3mm;
draw (0,0)--(5cm,5cm){dir 270}..{dir 180}(2.5cm,0)..{dir 90}(0,2.5cm)..(1.5cm,4cm)..(3cm,1cm)..{dir 90}(2.5cm,5cm);
\end{mplibcode}
\hfill~\par\vspace{1\zw}
%
このように\textsf{MetaPost}で図を描くことも容易だ。
もちろん,こんな感じで,
\vspace{1\zw}\par\noindent\hfill%
\begin{mplibcode}
pickup pencircle scaled 0.5mm;
z.A=(4cm,5cm);z.B=(0cm,0cm);z.C=(6cm,0cm);z.M=1/2[z.B,z.C];
draw z.A--z.B--z.C--z.A--z.M;
label(textext("A"),z.A+(3mm,0) rotated 90);
label(textext("B"),z.B+(3mm,0) rotated 200);
label(textext("C"),z.C+(3mm,0) rotated -20);
label(textext("M"),z.M+(3mm,0) rotated -90);
\end{mplibcode}
\hfill~\par\vspace{1\zw}
所謂初等幾何的な図もサクサク描くことができる。
ちなみに上の三角形の部分は,
\begin{quotation}\begin{verbatim}
\begin{mplibcode}
pickup pencircle scaled 0.5mm;
z.A=(4cm,5cm);z.B=(0cm,0cm);
z.C=(6cm,0cm);z.M=1/2[z.B,z.C];
draw z.A--z.B--z.C--z.A--z.M;
label(textext("A"),z.A+(3mm,0) rotated 90);
label(textext("B"),z.B+(3mm,0) rotated 200);
label(textext("C"),z.C+(3mm,0) rotated -20);
label(textext("M"),z.M+(3mm,0) rotated -90);
\end{mplibcode}
\end{verbatim}\end{quotation}
というとてもシンプルなものだ。
\end{multicols}
\end{document}