TikZで正十二面体と正二十面体

TikZライブラリを使って,正十二面体・正二十面体を描こうと思いました.

\documentclass{article}
\usepackage[dvipdfmx]{graphicx}
\usepackage{tikz}
\def\PHI{1.61803}
\def\cosA{0.809017}
\def\sinA{0.587785}
\def\cosB{0.309017}
\def\sinB{0.951057}
\begin{document}
\begin{tikzpicture}[line join=bevel,z=4.5,scale=2]
\coordinate (A) at (1,0,0);
\coordinate (B) at (\cosB,\sinB,0);
\coordinate (C) at ( - \cosA,\sinA,0);
\coordinate (D) at ( - \cosA, - \sinA,0);
\coordinate (E) at (\cosB, - \sinB,0);
\coordinate (F) at (\PHI,0,1);
\coordinate (G) at (\PHI * \cosA,\PHI * \sinA,\PHI);
\coordinate (H) at (\PHI * \cosB,\PHI * \sinB,\PHI);
\coordinate (I) at ( - \PHI * \cosB,\PHI * \sinB,\PHI);
\coordinate (J) at ( - \PHI * \cosA,\PHI * \sinA,1);
\coordinate (K) at ( - \PHI,0,\PHI);
\coordinate (L) at ( - \PHI * \cosA, - \PHI * \sinA,1);
\coordinate (M) at ( - \PHI * \cosB, - \PHI * \sinB,\PHI);
\coordinate (N) at (\PHI * \cosB, - \PHI * \sinB,1);
\coordinate (O) at (\PHI * \cosA, - \PHI * \sinA,\PHI);
\coordinate (P) at ( - 1,0,\PHI + 1);
\coordinate (Q) at ( - \cosB, - \sinB,\PHI + 1);
\coordinate (R) at (\cosA, - \sinA,\PHI + 1);
\coordinate (S) at (\cosA,\sinA,\PHI + 1);
\coordinate (T) at ( - \cosB,\sinB,\PHI + 1);

\draw[fill opacity=0.7 , fill=green!20] (A)--(B)--(C)--(D)--(E)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (A)--(B)--(H)--(G)--(F)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (B)--(C)--(J)--(I)--(H)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (C)--(D)--(L)--(K)--(J)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (D)--(E)--(N)--(M)--(L)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (E)--(A)--(F)--(O)--(N)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (S)--(T)--(P)--(Q)--(R)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (S)--(T)--(I)--(H)--(G)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (T)--(P)--(K)--(J)--(I)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (P)--(Q)--(M)--(L)--(K)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (Q)--(R)--(O)--(N)--(M)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (R)--(S)--(G)--(F)--(O)--cycle;
\end{tikzpicture}
\end{document}

正十二面体

\documentclass{article}
\usepackage[dvipdfmx]{graphicx}
\usepackage{tikz}
\def\PHI{1.61803}
\begin{document}
\begin{tikzpicture}[line join=bevel,z=4.5,scale=2]
\coordinate (A) at (\PHI, 1 , 0);
\coordinate (B) at (\PHI, - 1 , 0);
\coordinate (C) at ( - \PHI , - 1 , 0);
\coordinate (D) at ( - \PHI , 1 , 0);
\coordinate (E) at ( - 1, 0 , \PHI);
\coordinate (F) at (1 , 0 , \PHI);
\coordinate (G) at ( - 1 , 0 , - \PHI);
\coordinate (H) at (1 , 0 , - \PHI);
\coordinate (I) at (0 , \PHI , 1);
\coordinate (J) at (0 , \PHI , - 1);
\coordinate (K) at (0 , - \PHI , - 1);
\coordinate (L) at (0 , - \PHI , 1);
\draw[fill opacity=0.7 , fill=green!20] (A)--(B)--(F)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (B)--(L)--(F)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (E)--(F)--(L)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (C)--(E)--(L)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (C)--(D)--(E)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (E)--(D)--(I)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (E)--(I)--(F)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (A)--(F)--(I)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (L)--(K)--(C)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (L)--(K)--(B)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (I)--(J)--(A)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (I)--(J)--(D)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (A)--(B)--(H)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (B)--(K)--(H)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (G)--(H)--(K)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (C)--(G)--(K)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (C)--(D)--(G)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (G)--(D)--(J)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (G)--(J)--(H)--cycle;
\draw[fill opacity=0.7 , fill=green!20] (A)--(H)--(J)--cycle;
\end{tikzpicture}
\end{document}

正二十面体

 

参考:Drawing polyhedra using TikZ with semi-transparent and shading effect

広告

3 次元極座標のラプラシアンをPythonTeXで計算してみた

3 次元極座標のラプラシアン(PDF)

Python\TeXを入れて,記号計算が出来るとやってみたくなるのが

「3次元極座標のラプラシアン」の計算である.

物理学では随所で現れるにも関わらず,学部生には非常に鬼畜と名高い計算である.

これをPython\TeXを使って導出するのが目的です.

gallery.pdf だと,pythonの中でprint文書いてtexコマンドを書いているが

texの中でpython呼び出して部分的に計算させる方がスッキリするが,自由度は少なめ.

PDFの構成が悪く,sympyのコードと\LaTeXのコードを離して書いてしまったのは反省している..

参考: The pythontex package

Laplacianと極座標

TeXLive2013とPythonTeXを入れた

TUG2013のプログラムリスト見ていたら,PythonTeXなるものが書いてあったので調べてみた.

すると,(例えば積分の)計算の途中を一行ずつTeXに流す,みたいな面白そうな機能が.が.これはやってみたい!!!

参考: pythontex_gallery.pdf (PDF注意)

積分公式みたいなものもサンプルにあります.これは面白そう!!

さて,インストール方法なのですが,日本語の情報が非常に少ない.

ところが,何かを書き留める何かさんで紹介されている通り,インストールはとても簡単.

さあ,やってみよう!

… と思ったら,私のTeXLiveは2011でしたwww サボりすぎwww うぇwww

ということで,TeXLive2013を入れる流れに.

でも,ほら,TeXLiveのインストールって怖くないですか? 既存パッケージとの依存関係とか.正直ビクビクしてたんですよ.

でも,TeXLive2013のインストールに書いてある通り,「実は簡単」なんです.

TeX / LaTeX を初めてお使いの方も、今まで使われていた方も、TeX のシステムのインストール、というと、気が重くなったりしていないでしょうか?

たしかに、TeX のシステム自体は決して単純な構造というわけではありません。本体の中核をなす実行ファイル、クラスファイルやスタイルファイル、フォント……様々な種類のフォントが階層構造的に置かれ、相互にはたらくことで TeX は動作します。こういうことを理解していればいる程、インストールの作業が憂鬱に思われるかもしれません。

ところが、TeX Live のインストールというのは、実は非常に簡単に行うことができます。というのも、default のままインストールを行うと、TeX Live に関わるファイルは全て /usr/local/texlive/2013 内にインストールされるからです。つまり、TeX / LaTeX に関わるファイルは全てこのディレクトリ内に存在し、システムがこのディレクトリの外のファイルを直接参照することはありません。

つまり、新しい TeX Live をインストールする際には、今まで使っていた TeX Live を消す必要すらありません。前年度の TeX Live と新しい TeX Live の構成ファイルが混ざってしまう心配がないからです……ですから、保険代わりに今までの TeX Live を残しておけば、新しい TeX Live に何らかの問題があるときには、path だけ書き換えればもとの環境にすぐ戻すこともできます。

このサイトに従って,TeXLive2013をインストールしました.

MBAの人は,install-tl-unx.tar をダウンロードします.展開したフォルダの中にある,install-tlを「管理者権限」で実行します.

$cd (the path of install-tl-yyyymmdd)/
$sudo install-tl

既存のパッケージが見つかった,上書きするか?と聞いてくるので,y

インストールは,I で始まります.すると,3000個近いパッケージのダウンロードが始まり,まったり待って終了.超簡単!ヤバ!

自作のbeamerのテーマなどを移して,終わり!

あ,これは自分用備忘録ですが,\LaTeXでプログラムのソースコードを乗せるのに便利な,listingsを追加しました.CTANからすべて面倒ですが,ちまちまとダウンロードします.そして,

$platex listings.ins

して,更新

$sudo mktexlsr

はい,終わり!

さて,pythontexですが,TeXLive2013に入ってるらしいです!すげ!あとは,Pygmentsをインストールします.僕は,pip使っているので

$pip install pygments

で一瞬でした.

Github-PythonTeXのサンプルが動いたので,自分なりに何か書いてみようと思います.

texファイルのコンパイル(からpdfで見るまで)は,何かを書き留める何か さんで書かれている通り

$platex hogehoge.tex
$pythontex hogehoge.tex
$platex hogehoge.tex
$dvipdfmx hogehoge.tex

としないといけないみたいです.

インストールがうまく行かなかった場合も,Githubに上げられたドキュメントに結構丁寧なインストールガイドがあるので参考になると思います(適当

追記)

TeX関係で最近twitter近辺で凄く出回っている

使ってはいけない LaTeX のコマンド・パッケージ・作法

はとても勉強になった.{\bf hogehoge} ってダメだったんだ!!20へぇ!!(死語