マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

2013-11-01から1ヶ月間の記事一覧

zxjatype でアレな環境を使うとアレな件(2)

(前回の続き) 対処法 これに対処する方法であるが、挿入されるトークン列の方に細工を施して、そちら側で先読み処理をする、という方法も考えられるが、元々の挿入トークン列の性質によっては困難な可能性がある。恐らく、\end マクロの方を修正する方が簡…

zxjatype でアレな環境を使うとアレな件(1)

アレのことだけど。 [zxjatype] 文字サイズの \begin{} ... \end{} による指定 zxjatype じゃなくて xeCJK を指定して同様の文書を作った場合にも同じエラーが発生するので、これは xeCJK の問題といえるだろう。で、きちんと調べたわけではないが、何となく…

表組みの段落セルの改行のアレ

アレのことだけど。 tabular 横幅の指定について \tabularnewline のことも覚えておいてあげてください。\documentclass[a4paper]{article} \usepackage{array} \begin{document} \newcolumntype{C}{>{\centering}p{4em}} \begin{center}\begin{tabular}{c|C…

欧文の従属“ギリシャ”文な書体を指定する件

ラテン文字の言語とギリシャ文字の言語が混在した(欧文 8 ビットの)LaTeX 文書を作成するときに、「ラテン文字(T1 エンコーディング等)とギリシャ文字(LGR エンコーディング)で異なるファミリを使いたい」とする。例えば、ラテン文字(のセリフ、つま…

今年も TeX で Advent Calendar する件について

TeX

やります! TeX & LaTeX Advent Calendar 2013 (Adventar) TeX & LaTeX Advent Calendar 2013 とっておきの TeX/LaTeX ネタを皆で持ち寄って楽しむ 「TeX & LaTeX Advent Calendar」 盛況にうちに終わった昨年に続き第 2 回の開催です。 皆さんの、心をこめ…

LaTeX 上で色々と実装してみる話(ナベアツ編-8)

前回で「Grass 言語でナベアツ」を紹介して、これで無事に「ナベアツ編」は完結して次の課題に進める、と考えていたが、やはり一つ心残りなことがある。このブログの愛読者であれば容易に想像が付くと思われるが、それは、 「Brainfuck でナベアツ」をやって…

ちょっと BaSiX しますよ…(BASIC on TeX)

昨日の記事で BaSiX を紹介したのでちょっと遊んでみる。といっても「TeX への入力」ができないのでナベアツは諦めて FizzBuzz することにする。 まず、CTAN から basix.tex のファイルを入手する。このファイルを現在ディレクトリに置いて「tex basix」を実…

LaTeX 上で色々と実装してみる話(ナベアツ編-7)

(前回の続き) Grass (bxgrassator パッケージ) (参照:アレ) 「LISP on TeX もいいけど、たまには草を植えてみたい」という人は、bxgrassator パッケージを利用すると、LaTeX 文書で Grass のコードを利用できる。 grassator パッケージバンドル(GitH…

LaTeX 上で色々と実装してみる話(ナベアツ編-6)

(前回の続き) なんだか「マクロツイーター」っぽくなってきましたね! MetaPost 前回は PostScript を用いてナベアツを実装した。描画言語を利用するというアイデアは有望であるが、しかし残念ながら PostScript ではフォントをアホにすることができなかっ…

LaTeX 上で色々と実装してみる話(ナベアツ編-5)

(前回の続き) ここからは場外乱闘コーナー。 dvips で PostScript (参照:アレ) DVI ウェアとして dvips を使用する場合、PostScript special 命令を使って比較的自由に PostScript 言語のコードを書くことができる。そして周知の通り、PostScript でナ…

LaTeX 上で色々と実装してみる話(ナベアツ編-4)

(前回の続き) PythonTeX(pythontex パッケージ) (参照:アレ) PythonTeX は LaTeX 上で Ruby のコードを動作させるためのパッケージである*1。詳しくはリンク先の記事を参照のこと。 [nabeazz-pythontex-ruby.tex]\documentclass[a4paper]{article} \u…

LaTeX 上で色々と実装してみる話(ナベアツ編-3)

(前回の続き) 今までは「TeX で実装された言語」を扱った。ここからは、既存の言語処理系(またはそのエンジン)と TeX 処理系の連携で動作するものを紹介する。 LuaTeX(+ luacode パッケージ) (参照:アレ) みなさんご存じの LuaTeX。これは TeX 処理…

LaTeX 上で色々と実装してみる話(ナベアツ編-2)

(前回の続き) LISP on TeX (lisp-on-tex パッケージ) (参照:アレ) 「LISP on TeX」という怖そうな*1パッケージを使うと、LISP 的な言語でプログラミングができる。というわけで早速ナベアツしてみる……。 ……と思ったら、自分の思い通りにはいかないこ…

LaTeX 上で色々と実装してみる話(ナベアツ編-1)

「LaTeX 上で動く」色々なプログラミング言語を使って実装してみよう、という話。 まずは基本のナベアツから。問題は次の命令を実装すること。 \NabeAzz{}: 1 から n までの整数の 10 進表記を順に空白区切りで出力する。ただし、整数が「3 の倍数である」…

LISP on TeX で \sb するとアレ

TeX

アレ。\documentclass{article} \usepackage{lisp-on-tex} \begin{document} \lispinterp{(\texprint ((\lambda (\sa) (\* \sa :6)) :7))}% OK \lispinterp{(\texprint ((\lambda (\sb) (\* \sb :6)) :7))}% ERROR! \end{document} 多分、\sb が「文字トーク…

LISP on “plain” TeX

「LISP on TeX」こと lisp-on-tex パッケージ は LaTeX のパッケージであるので、plain TeX 等の「他の TeX フォーマット」では LISP することができない。しかし実際には lisp-on-tex の実装中で LaTeX の機能を用いている箇所は極めて少ない。なので、他の…

せっかくだから PythonTeX でナベアツを実装した

TUG 2013 で PythonTeX についての発表があって少し話題になっているようた。 PythonTeX というのは、端的にいうと、「LaTeX 文書中で Ruby のプログラムを実行する機能」を提供するパッケージである。すなわち「PerlTeX の Ruby 版」に相当する。なので、「…