2014-01-01から1年間の記事一覧
(前回の続き) その他のデバッグ用のモノ tracingナントカ や showナントカ 以外にも、次のようなものがデバッグ用機能として用意されている。(☆ 印は e-TeX 拡張で追加されたもの。) \errorcontextlines 〔整数パラメタ〕: エラーや showナントカ で実行停止した際…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
アレな話の補足の類の何か。 ImageMagick を用いてビットマップ画像の bbox を調べる ImageMagick の identify コマンドに -verbose オプションを付けて実行すると、画像についてのかなり詳細な情報が得られ、その中に bbox に関するものも含まれる。例えば…
まあ、JPEG2000 形式の画像が“実際に”使われているのは見たことないけど……。 最近の dvipdfmx の改修で、JPEG 2000 形式の画像がサポートされた。最新の W32TeX では既に使用可能になっている。 Re: inclusion of images and dvipdfmx (TeX Forum) "JPEG 2…
取りあえず、メモとして要点をまとめておく。 特に明示する場合を除き、EPS 形式のことは考えない。 dvipdfm? ああ、懐かしいね…。 「標準の方法」は何か “普通の環境”において、初級者に奨めるべき“標準”の方法は何か? 特に bbox を取得する各種の方法の…
結論をどう纏めればよいのかを迷って文章が進まなくなってしまったので、 代わりにコレを作ってみた。 dvipdfmx で mediabb できるかも知れないやつ(tcxmediabb パッケージ) このパッケージは、dvipdfmx + graphicx 専用であり、mediabb を内部で読み込み…
(前回の続き) dvipdfmx で mediabb するとどうなるか 以下では、mediabb パッケージを dvipdfmx と併用した場合の挙動について述べる。ただし、まず最初に注意すべきことがある。mediabb パッケージのソースコードは graphicx パッケージあるいはそのドラ…
TeX Forum のトピックの方に書いた話であるが、そちらの方は私の認識の混乱のため嘘が混じっているので、改めてここに纏めておく。 先にまとめておくと mediabb パッケージは(dvipdfmx の前身である)dvipdfm、あるいは、かなり昔(7 年以上前)の dvipdfmx…
Adobe が先日公開したフリーフォント「Source Han Sans」が話題になっている。 早速 TeX してみたいのだが… で、OpenType の機能を色々備えた“スマート”なフォントを新たに手に入れたとなると、TeX 屋としては XeTeX あたりでちょっと遊んでみたくなるのが自…
アレの新版がリリースされた window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter…
dvipdfmx では使えないパッケージの代表格といえば、PSTricks である。何せ、dvi の中に直接 PostScript コードをゴリゴリ書いているので、dvipdfmx では絶対に動くわけがない……。 ……ところで、こんなものを作ってみた。 LaTeX: to use PSTricks with dvipdf…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
(前回の続き) ビットマップ画像の解像度の話 以前に書いたように、ビットマップ画像を扱う場合でも bbox は「物理的な長さ」で表される。従って、各 DVIウェア/エンジンは各画像ファイルに対して「解像度」を決定して、その上でピクセル数を「物理的な長…
昨日の記事では「TeX レベルの話」を敢えて避けていたが、ここではその辺りについて解説する。 pdfTeX/LuaTeX pdfTeX では以下に挙げるプリミティブで出力 PDF のバージョンと圧縮を設定する。 \pdfminorversion:[整数パラメタ;読書可] 出力する PDF の…
以前の記事で mediabb パッケージがアレであるという話をした。この話において、アレなことになるのは PDF のバージョンの違いが原因であった。特にバージョン 1.4 と 1.5 の間では、PDF ファイルの「書式」そのものに大きな変更が加えられているため、PDF 1…
(前回の続き) 画像挿入関連の機能 著名な DVIウェア/TeX エンジンについて、画像挿入機能の一部(特に bbox に関連するもの)について解説する。無論、これらは「TeX レベル」に属するもので、一般の LaTeX ユーザが用いるべきものではない。 ※書式記述中…
(前回の続き) PDF における 5 つの“ナントカBox” さて、PDF 画像に関してはちょっと話が複雑になってくる。PDF 自体が「PostScript に取って代わるもの」として開発されたものであるため、「無限に続く座標平面があり、そこに命令列を通して描画を行う」と…
LaTeX の graphicx パッケージの \includegraphics 命令で外部画像ファイルを文書に取り込む、という話をする際に、画像の「バウンディングボックス(bounding box;よく bbox と略称される)」という概念が登場する。本記事では、この「bbox」について、適…
……らしい。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"…
まあ、自分自身は、「間違った指定をしたときの出力結果」について、それほど関心がないのであるが、この辺りが物凄く気になる人もいるようなので……。 実験内容 テスト用画像ファイルは例のアレ。 tiger.png : PNG 画像、bbox は [0 0 550 568]。*1 tiger.e…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
最近の日本の TeX 界隈では「索引」がホットトピックになってるようで、例えば、mendex が(部分的に)Unicode に対応*1したり、或いは、とある TeX な目的のために とある技術情報投稿サイトでとある人が日本語のソート処理の説明を英語で書いていたりする…
Knuth「TeXは組版言語で非エンジニアでも使うもの。なのでプログラム言語のような構成にはすべきでない」 Knuth「従って、記述の構造化はマクロにより行われる。『マクロの展開』であれば誰でも理解できる」 ↓ Knuth「しかし、if文くらいはあった方が便利だ…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
以前の記事で、「TeX 言語を学習するための資料」について紹介した。しかし、プログラミング言語というものは、ただ座学で資料を読んでいるだけではなかなか身につかないものであり、熟達には「実際にコードを書く」という作業が不可欠である。 「自分が必要…
先日の記事では、「TeX 言語がフリーフォーマットでない」ことを述べた。その時に紹介した「例のスライド」では、TeX 言語の(プログラミング言語としての)特徴として次の 3 つを挙げている。 フリーフォーマットではない ローカル変数はない 「関数」はな…
(参考:昨日の記事) TeX Live を最新状態に更新して、graphicx + dvipdfmx で「段落内の \includegraphics」を試したら、なんかおかしい……。\documentclass[a4paper]{article} \usepackage[dvipdfmx]{graphicx} \begin{document} A\includegraphics[width=…
(前回の続き) 「段落先頭」という罠 ところで、このような割と単純な「アウトな空白」によるバグは、少しでもテストをしていれば気付くはず、と考える人もいるだろう。だが、実際には「アウトな空白」のバグは、「テストケースの作り方」が悪いために見過…
TeX 言語の構文規則が「フリーフォーマットでない」――すなわち、空白や改行に対する注意を怠ってはいけない――ことは、すでに以前の記事で説明した。この話題に関して、(某アドベントカレンダーでおなじみの)neruko3114 さんが非常に解りやすい例を含む発表…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…