SlideShare uma empresa Scribd logo
1 de 68
Baixar para ler offline
dvipdfmx 
と 
3つ 
の 
バッド・. 
ノウハウ 
八登崇之(Takayuki YATO) 
Twitter ID: @zr_tex8r 
TEX ユーザの集い2014 2014 年11 月8 日
この物語(LT) は 
dvipdfmxで 
画像を挿入するときの 
“封印” された 
バッドノウハウを 
記したものである。
バッドノウハウ?
バッドノウハウ 
= 
バグ技
. 
正攻法 
バッド・ノウハウ 
vs
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} “仕様に従った”
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} 正しい出力結果
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} 正しい出力結果 
☺ 当然。
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} 正しい出力結果 
☺ 当然。 
begin{document} 
マチガッテルコード 
end{document} 
“仕様は未定義”
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} 正しい出力結果 
☺ 当然。 
begin{document} 
マチガッテルコード 
end{document} 
正しい出力結果
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} 正しい出力結果 
☺ 当然。 
begin{document} 
マチガッテルコード 
end{document} 
正しい出力結果 
 素敵。
バージョンアップ!
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} “仕様に従った” 
begin{document} 
マチガッテルコード 
end{document} 
“仕様は未定義”
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} 正しい出力結果 
☺ 当然。 
begin{document} 
マチガッテルコード 
end{document} 
“仕様は未定義”
. 
正攻法 
バッド・ノウハウ 
vs 
begin{document} 
正しいコード 
end{document} 正しい出力結果 
☺ 当然。 
begin{document} 
マチガッテルコード 
end{document} 
間違った出力結果 
 破滅!
封印された 
バッド・ノウハウは 
破滅 
を生む 

封印された 
バッド・ノウハウたち。 
① ドライバ詐称 
② バウンディングボックス詐称 
③ 面倒だからピクセル単位
バッド・ノウハウその① 
ドライバ詐称 
false driver name
ドライバ指定 
. 
?
ドライバ指定 
documentclass[uplatex]{jsarticle} 
usepackage[dvipdfmx]{graphicx} 
usepackage{lisp-on-tex} 
%...(以下略)... 
. 
コレ!
普通のドライバ指定 
documentclass[uplatex]{jsarticle} 
usepackage[dvipdfmx]{graphicx} 
usepackage{lisp-on-tex} 
%...(以下略)... 
. 
☺ 
一致! 
[zr@here]$ dvipdfmx talk.dvi
バッドなドライバ指定 
documentclass[uplatex]{jsarticle} 
usepackage[dvips]{graphicx} 
usepackage{lisp-on-tex} 
%...(以下略)... 
. 
 
食い違う!! 
[zr@here]$ dvipdfmx talk.dvi
バッドなドライバ指定 
documentclass[uplatex]{jsarticle} 
usepackage[dvipdfm]{graphicx} 
usepackage{lisp-on-tex} 
%...(以下略)... 
. 
 
食い違う!! 
[zr@here]$ dvipdfmx talk.dvi
バッドなドライバ指定 
documentclass[uplatex]{jsarticle} 
usepackage[dviout]{graphicx} 
usepackage{lisp-on-tex} 
%...(以下略)... 
. 
 
食い違う!! 
[zr@here]$ dvipdfmx talk.dvi
“ドライバ詐称” してみよう! 
% upLaTeX 文書 
documentclass[a6paper,papersize,uplatex]{jsarticle} 
usepackage[dvips]{graphicx} 
setlength{fboxrule}{8pt} 
setlength{fboxsep}{0pt} 
begin{document} 
. 
begin{center}LARGE 
{TeX} ユーザの集い2014 
parsmallskip 
fbox{includegraphics[width=3cm]{image.eps}} 
parsmallskip 
は{gtfamily アレ。} 
end{center} 
end{document}
“ドライバ詐称” してみよう! 
▶ ドライバ指定は“dvips” 
% upLaTeX 文書 
documentclass[a6paper,papersize,uplatex]{jsarticle} 
usepackage[dvips]{graphicx} 
setlength{fboxrule}{8pt} 
setlength{fboxsep}{0pt} 
begin{document} 
usepackage[dvi.ps]{dvipdfmx} 
▶ EPS 画像を挿入する 
. 
includegraphics[wi..dth=3cm]{image.eps} 
begin{center}LARGE 
{TeX} ユーザの集い2014 
parsmallskip 
fbox{includegraphics[width=3cm]{image.eps}} 
parsmallskip 
は{gtfamily アレ。} 
end{center} 
end{document}
古いTEX 環境で処理すると… 
(TEX Live 2012) 
TEX ユーザの集い2014 
. 
は 
アレ。 

新しいTEX 環境で処理すると… 
(TEX Live 2014) 
TEX ユーザの集い2014 
. 
は 
アレ。 

楽しい!! 
✌('ω'✌)三✌('ω')✌三(✌'ω')✌
バッド・ノウハウその② 
バウンディング 
ボックス詐称 
false bounding box
バウンディングボックス 
(bbox)って何 
. 
?
バウンディングボックス 
(bbox)って何 
説明省. 
.. 略。 
そう、アレです。
各々の画像は固有の 
bbox の値を持つ。 
. 
image.eps
各々の画像は固有の 
bbox の値を持つ。 
. 
image.eps 
▶ E.PS形式 
▶ bbox = 
[540 315 900 675]
各々の画像は固有の 
bbox の値を持つ。 
. 
image.png 
▶ P.NG形式 
▶ bbox = 
[0 0 360 360] 
ビットマップ画像も同様。
普通のbbox 指定の方法。 
. 
image.png 
▶ P.NG形式 
▶ bbox = 
[0 0 360 360] 
☺ 
普通。 
includegraphics[bb=0 0 360 360]{image.png}
画像を “一部だけ” 挿入したい! 
. 
image.png 
▶ P.NG形式 
▶ bbox = 
[0 0 360 360]
画像を “一部だけ” 挿入したい! 
“一部” = 
[18 162 342 342] 
. 
image.png 
▶ P.NG形式 
▶ bbox = 
[0 0 360 360] 
(0,0) 
(360,360) 
(18,162) 
(342,342) ..
バッドなbbox 指定の方法。 
“一部” = 
[18 162 342 342] 
. 
image.png 
▶ P.NG形式 
▶ bbox = 
[0 0 360 360] 
 
食い違う! 
includegraphics[bb=18 162 342 342]{image.png}
“bbox 詐称” してみよう! 
▶ ドライバは当然“dvipdfmx”。 
▶ さっきの例の通りに 
PNG 画像を“一. 
部だけ” 挿入。 
includegraphics. 
[bb=18 162 342 342]{image.png}
古いTEX 環境では… 
(TEX Live 2012) 
. 
は 
アレ。 

新しいTEX 環境では… 
(TEX Live 2014) 
. 
は 
アレ。 

楽しい!!! 
✌('ω'✌)三✌('ω')✌三(✌'ω')✌
バッド・ノウハウその③ 
面倒なので 
ポイント単位 
lazily-in-point
bbox の値は? 
. 
image.png 
▶ PNG 形式 
▶ 解像度= 96 dpi 
▶ 480 px × 480 px
bbox の値の単位は 
ポイント(bp)
bbox の値は? 
. 
image.png 
▶ PNG 形式 
▶ 解像度= 96 dpi 
▶ 480 px × 480 px 
96 px = 1 in = 72 bp
bbox の値は? 
. 
image.png 
▶ PNG 形式 
▶ 解像度= 96 dpi 
▶ 480 px × 480 px 
1 px = 0.75 bp
bbox の値は? 
. 
image.png 
▶ PNG 形式 
▶ 解像度= 96 dpi 
▶ 480 px × 480 px 
480 px = 360 bp
普通の bbox の値。 
. 
image.png 
▶ PNG 形式 
▶ 解像度= 96 dpi 
▶ 480 px × 480 px 
☺ 
ポイント単位。 
bb=[0 0 360 360]
バッドな bbox の値。 
. 
image.png 
▶ PNG 形式 
▶ 解像度= 96 dpi 
▶ 480 px × 480 px 
 
ピクセル単位。 
bb=[0 0 480 480]
“ピクセル単位” してみよう! 
▶ さっきの例の通りに 
PNG 画像を実物大で挿入。 
. 
includegraphics. 
[bb=0 0 480 480]{image.png}
大昔のTEX 環境では… 
(2005 年頃のTEX 環境) 
. 
アレ。 

新しいTEX 環境では… 
(TEX Live 2014) 
. 
アレ。 

少し古いTEX 環境では… 
(TEX Live 2012) 
. 
アレ。 

楽しい…? 
✌('ω'✌)三✌('ω')✌三(✌'ω')✌
楽しくない!! 

正しいコ☺ードを書こう! 
. 
.. 
 
正誗
ステップ① 
extractbb 
自動起動設定
詳細省.. 略。 
TEX Wiki 見ろ。
ステップ② 
graphicx 
読込
graphicx にdvipdfmx。 
usepackage[dvip. . 
dfmx]{graphicx}
color にもdvipdfmx。 
usepackage[dvip.. . 
dfmx]{graphicx} 
usepackage[dvipdfmx]{color}
ステップ③ 
画像を挿入
bb は無し。 
includegraphi.. 
cs{image.png}
“一部だけ”→viewport。 
includegraphi.. 
cs 
[viewport=18 162 342 342] 
{image.png}
☺ 
☺ 
大成功。 
. 
は 
アレ。 
☺ 
☺
☺ 
☺ 
Happy 
TEXing . 
! 
☺ 
☺

Mais conteúdo relacionado

Destaque

The history of TeX and its recent advances
The history of TeX and its recent advancesThe history of TeX and its recent advances
The history of TeX and its recent advancesYusuke Terada
 
データの可視化 20140208
データの可視化 20140208データの可視化 20140208
データの可視化 20140208Marie Goto
 
15分で学ぶ!文献リスト作成術 -文献管理ツールRefWorksの使い方を中心に-【文献整理講習会】(2015)
15分で学ぶ!文献リスト作成術 -文献管理ツールRefWorksの使い方を中心に-【文献整理講習会】(2015)15分で学ぶ!文献リスト作成術 -文献管理ツールRefWorksの使い方を中心に-【文献整理講習会】(2015)
15分で学ぶ!文献リスト作成術 -文献管理ツールRefWorksの使い方を中心に-【文献整理講習会】(2015)Yoshida-South Library, Kyoto University
 
書籍制作でReVIEWを使う実践ワークフロー
書籍制作でReVIEWを使う実践ワークフロー書籍制作でReVIEWを使う実践ワークフロー
書籍制作でReVIEWを使う実践ワークフローMasahiro Hidaka
 
ReVIEWを用いたPDFとEPUBへの変換について
ReVIEWを用いたPDFとEPUBへの変換についてReVIEWを用いたPDFとEPUBへの変換について
ReVIEWを用いたPDFとEPUBへの変換についてmasayoshi takahashi
 
輪講・卒論にむけてのLaTeX入門
輪講・卒論にむけてのLaTeX入門輪講・卒論にむけてのLaTeX入門
輪講・卒論にむけてのLaTeX入門Toshiaki Hashimoto
 
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜Takuya Oikawa
 
心地よいUIの温度 - 言葉と気遣いで高めるUI -
心地よいUIの温度 - 言葉と気遣いで高めるUI -心地よいUIの温度 - 言葉と気遣いで高めるUI -
心地よいUIの温度 - 言葉と気遣いで高めるUI -wariemon
 
絶対に描いてはいけないグラフ入りスライド24枚
絶対に描いてはいけないグラフ入りスライド24枚絶対に描いてはいけないグラフ入りスライド24枚
絶対に描いてはいけないグラフ入りスライド24枚itoyan110
 
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識Tsutomu Sogitani
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座Mariko Yamaguchi
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版MOCKS | Yuta Morishige
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 

Destaque (14)

The history of TeX and its recent advances
The history of TeX and its recent advancesThe history of TeX and its recent advances
The history of TeX and its recent advances
 
データの可視化 20140208
データの可視化 20140208データの可視化 20140208
データの可視化 20140208
 
15分で学ぶ!文献リスト作成術 -文献管理ツールRefWorksの使い方を中心に-【文献整理講習会】(2015)
15分で学ぶ!文献リスト作成術 -文献管理ツールRefWorksの使い方を中心に-【文献整理講習会】(2015)15分で学ぶ!文献リスト作成術 -文献管理ツールRefWorksの使い方を中心に-【文献整理講習会】(2015)
15分で学ぶ!文献リスト作成術 -文献管理ツールRefWorksの使い方を中心に-【文献整理講習会】(2015)
 
書籍制作でReVIEWを使う実践ワークフロー
書籍制作でReVIEWを使う実践ワークフロー書籍制作でReVIEWを使う実践ワークフロー
書籍制作でReVIEWを使う実践ワークフロー
 
ReVIEWを用いたPDFとEPUBへの変換について
ReVIEWを用いたPDFとEPUBへの変換についてReVIEWを用いたPDFとEPUBへの変換について
ReVIEWを用いたPDFとEPUBへの変換について
 
輪講・卒論にむけてのLaTeX入門
輪講・卒論にむけてのLaTeX入門輪講・卒論にむけてのLaTeX入門
輪講・卒論にむけてのLaTeX入門
 
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
 
心地よいUIの温度 - 言葉と気遣いで高めるUI -
心地よいUIの温度 - 言葉と気遣いで高めるUI -心地よいUIの温度 - 言葉と気遣いで高めるUI -
心地よいUIの温度 - 言葉と気遣いで高めるUI -
 
絶対に描いてはいけないグラフ入りスライド24枚
絶対に描いてはいけないグラフ入りスライド24枚絶対に描いてはいけないグラフ入りスライド24枚
絶対に描いてはいけないグラフ入りスライド24枚
 
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedeeしょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
 
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Semelhante a dvipdfmxと3つのバッド・ノウハウ

コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたのでKenichiro MATOHARA
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会Tatsuhiko Kubo
 
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~Kazunari Hara
 
RLアーキテクチャ勉強会 MERLIN
RLアーキテクチャ勉強会 MERLINRLアーキテクチャ勉強会 MERLIN
RLアーキテクチャ勉強会 MERLINYumaKajihara
 
Rプログラミング03 「データ分析編」デモ
Rプログラミング03 「データ分析編」デモRプログラミング03 「データ分析編」デモ
Rプログラミング03 「データ分析編」デモwada, kazumi
 
卒研発表
卒研発表卒研発表
卒研発表yayugu
 
㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かきNishida Kansuke
 
DIST.17「こんなに変わる!npmとwebpackを使ってWEB開発をもっとラクに。」2017.08.25
DIST.17「こんなに変わる!npmとwebpackを使ってWEB開発をもっとラクに。」2017.08.25DIST.17「こんなに変わる!npmとwebpackを使ってWEB開発をもっとラクに。」2017.08.25
DIST.17「こんなに変わる!npmとwebpackを使ってWEB開発をもっとラクに。」2017.08.25Tomonori Watanabe
 
メディア芸術基礎 II Canvas + Javascriptで図形を描く
メディア芸術基礎 II Canvas + Javascriptで図形を描くメディア芸術基礎 II Canvas + Javascriptで図形を描く
メディア芸術基礎 II Canvas + Javascriptで図形を描くAtsushi Tadokoro
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII
 
Hokkaido.pm.casual #03 slide
Hokkaido.pm.casual #03 slideHokkaido.pm.casual #03 slide
Hokkaido.pm.casual #03 slideTohru Shinohara
 
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描くAtsushi Tadokoro
 
WordPress 3.5 目覚めし8つの新機能
WordPress 3.5 目覚めし8つの新機能WordPress 3.5 目覚めし8つの新機能
WordPress 3.5 目覚めし8つの新機能Odyssey Eightbit
 

Semelhante a dvipdfmxと3つのバッド・ノウハウ (13)

コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたので
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会
 
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
 
RLアーキテクチャ勉強会 MERLIN
RLアーキテクチャ勉強会 MERLINRLアーキテクチャ勉強会 MERLIN
RLアーキテクチャ勉強会 MERLIN
 
Rプログラミング03 「データ分析編」デモ
Rプログラミング03 「データ分析編」デモRプログラミング03 「データ分析編」デモ
Rプログラミング03 「データ分析編」デモ
 
卒研発表
卒研発表卒研発表
卒研発表
 
㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき
 
DIST.17「こんなに変わる!npmとwebpackを使ってWEB開発をもっとラクに。」2017.08.25
DIST.17「こんなに変わる!npmとwebpackを使ってWEB開発をもっとラクに。」2017.08.25DIST.17「こんなに変わる!npmとwebpackを使ってWEB開発をもっとラクに。」2017.08.25
DIST.17「こんなに変わる!npmとwebpackを使ってWEB開発をもっとラクに。」2017.08.25
 
メディア芸術基礎 II Canvas + Javascriptで図形を描く
メディア芸術基礎 II Canvas + Javascriptで図形を描くメディア芸術基礎 II Canvas + Javascriptで図形を描く
メディア芸術基礎 II Canvas + Javascriptで図形を描く
 
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
SSII2022 [TS3] コンテンツ制作を支援する機械学習技術​〜 イラストレーションやデザインの基礎から最新鋭の技術まで 〜​
 
Hokkaido.pm.casual #03 slide
Hokkaido.pm.casual #03 slideHokkaido.pm.casual #03 slide
Hokkaido.pm.casual #03 slide
 
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
 
WordPress 3.5 目覚めし8つの新機能
WordPress 3.5 目覚めし8つの新機能WordPress 3.5 目覚めし8つの新機能
WordPress 3.5 目覚めし8つの新機能
 

dvipdfmxと3つのバッド・ノウハウ