プログラミング入門 Processingプログラミングkamiya/pp/pp2018-pp5.pdfプログラミング入門 Processingプログラミング 第5回 九州産業大学 理工学部情報科学科
プログラミングTeX
-
Upload
hidetsugu-tamura -
Category
Technology
-
view
2.695 -
download
4
Transcript of プログラミングTeX
![Page 1: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/1.jpg)
プログラミングTEX
寝る子(neruko3114)
2014/03/15@長岡 IT開発者勉強会 #36
寝る子(neruko3114) プログラミング TEX
![Page 2: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/2.jpg)
自己紹介
氏名:田村英継(=寝る子)Twitter:neruko3114
長岡高専専攻科(3月に卒業)C/Javaを授業で触った程度
寝る子(neruko3114) プログラミング TEX
![Page 3: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/3.jpg)
参加の経緯
寝る子(neruko3114) プログラミング TEX
![Page 4: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/4.jpg)
TEXとは
TEX = 文書組版ソフト(システム)
特徴OSに依存しないフリーでオープンソース数式が綺麗
F (s) =
∫ ∞
0
f (t)e−stdt
寝る子(neruko3114) プログラミング TEX
![Page 5: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/5.jpg)
TEXでプログラミング?
TEXにできること(一部)変数(カウンタ)の定義四則演算ループ構文条件分岐
寝る子(neruko3114) プログラミング TEX
![Page 6: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/6.jpg)
TEXでプログラミング
例:剰余を求める“マクロ”\newcount\xx@a
\newcount\xx@res@count
\def\xx@modulo#1#2{%
\xx@a=#1\relax
\divide\xx@a#2\relax
\multiply\xx@a-#2\relax
\advance\xx@a#1\relax
\xx@res@count=\xx@a
}
寝る子(neruko3114) プログラミング TEX
![Page 7: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/7.jpg)
TEXでプログラミング
例:階乗を求める“マクロ”\newcount\@m
\newcount\@k
\def\factorial#1{%
\@m = 1 \relax
\@k = 1 \relax
\@whilenum \@m < #1 \do {%
\advance \@m 1 \relax
\multiply \@k \@m \relax
}
\the\@k
}
寝る子(neruko3114) プログラミング TEX
![Page 8: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/8.jpg)
※他のプログラミング言語と色々異なる
寝る子(neruko3114) プログラミング TEX
![Page 9: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/9.jpg)
TEX言語の特徴
フリーフォーマットではないローカル変数はない「関数」はない
寝る子(neruko3114) プログラミング TEX
![Page 10: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/10.jpg)
TEX言語の特徴
フリーフォーマットではないローカル変数はない「関数」はない
寝る子(neruko3114) プログラミング TEX
![Page 11: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/11.jpg)
TEX ̸= フリーフォーマット
フリーフォーマット空白文字,タブ,改行文字はどこでもよい(プログラムの動作に影響はない)
TEXの場合空白文字の扱いについて規則がある「文書」と「プログラム」で区別しない
空白文字の扱いに要注意
寝る子(neruko3114) プログラミング TEX
![Page 12: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/12.jpg)
TEX言語の特徴
フリーフォーマットではないローカル変数はない「関数」はない
寝る子(neruko3114) プログラミング TEX
![Page 13: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/13.jpg)
ローカル変数はない
ローカル変数ブロック内でのみ有効ブロック外では使えない
TEXの場合ローカル変数はない宣言したら全てグローバル変数
\xx@aなど,識別子をつけて名前が被らないように工夫する必要
寝る子(neruko3114) プログラミング TEX
![Page 14: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/14.jpg)
TEX言語の特徴
フリーフォーマットではないローカル変数はない「関数」はない
寝る子(neruko3114) プログラミング TEX
![Page 15: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/15.jpg)
「関数」はない
気をつけたいことTEXに「関数」と呼ばれるものはないでも,マクロならある関数っぽいマクロも作れる
TEXでプログラミングとは?マクロを作ること(たぶん)
寝る子(neruko3114) プログラミング TEX
![Page 16: プログラミングTeX](https://reader035.fdocuments.net/reader035/viewer/2022073011/55894e96d8b42a54328b46ad/html5/thumbnails/16.jpg)
まとめ
Q. TEXって何?A. 組版処理ソフト
Q. TEXでプログラミングって?A. できるけど他の言語と大きく異なる実行制御=マクロの展開の制御
Q. 結局のところ?A. TEXでもプログラミングできますただしマイナー,かつ闇っぽい? 1
1Donald E. Knuth:“The TEXbook” Appendix D Dirty Tricks寝る子(neruko3114) プログラミング TEX