ことの発端
先日、こんなツイートをしました。
非常にニッチな話&ネットで調べれば解決策は分かる話なんだけど、マックで作ったプレゼンテーションで、フォントが「ヒラギノ角ゴ」とかだと、SlideShareでは日本語が消えてしまう問題があります。
代替案としてSpeakerDeckというサイトがあるですが(続)— 荘加 大祐(Daisuke Shoka) (@DaisukeShoka) 2017年8月3日
できれば頑張ってSlideShareにしておいた方がいいと思います。SpeakerDeckはTwitterで見たときに、タイムラインの中でスライドショー表示ができないので。やり方はここにあります。https://t.co/f0vFF3ynt2
— 荘加 大祐(Daisuke Shoka) (@DaisukeShoka) 2017年8月3日
で、このやり方が「ターミナル」というソフトを使う必要があり、僕も面倒なのでSpeakerDeckに上げていたわけですが、やっぱりTwitter大事だなと思うようになりました。上のサイトのコードの"/path/to/pdf"を削除して、そこに変換したいPDFをドロップするだけです。
— 荘加 大祐(Daisuke Shoka) (@DaisukeShoka) 2017年8月3日
ドロップするとファイルの絶対パスが表示されるので、そこでエンター押せば解決です。ターミナルを使ったことがない人には抵抗あるかもしれませんが、本当に簡単です。僕は普通にターミナル使っていたので、なんでこんな手間を惜しんでいたのかと反省しています。
— 荘加 大祐(Daisuke Shoka) (@DaisukeShoka) 2017年8月3日
要するに、「Macで作ったプレゼンをSlideShareに上げるのはIT素人には大変だけど、まあ頑張ろうよ」って話をしてます。ただ、この一連のツイート、勢いに任せて書いたこともあって、分かる人にしか分からない内容になっちゃってるんですよね。誤字もある。分からない人のためにツイートしたのに、これはよろしくない。
でね、ここで思ったわけですよ。「あれ、これチャンスじゃね? IT分かってるフリしてブログにエントリー書いちゃうチャンスじゃね?」って。
というわけで、意気揚々と筆をとったわけです。以下、「非エンジニアのための、SlideShareで日本語が消える問題の対応策」というタイトルで書いた、結果として死産になったエントリーになります。ゴミ箱に捨てるのはもったいないので、前フリとして使わせていただきます。ご査収ください。
+++++<ここから>+++++
問題
筋トレのようなメジャーなテーマのあとでこんなニッチなテーマを扱うのも気が引けるのだが、Macで作ったスライドをSlideShareに上げると、日本語が消えてしまうという問題がある。厳密に言うと「Mac特有のフォント(ヒラギノ角ゴだけ?)を使ったスライドは、日本語が消えてしまう」のだが、Macを使ってスライドを作る場合、普通はヒラギノ角ゴを使うので、たいてい消えてしまう。
いきなり真っ白になったスライドが現れるので、誰もが慌てて「SlideShare 日本語 消える」で検索をかける。そうすると、以下のブログが見つかる。ドンピシャだ。良かった、解決策があった。
ところが、世の中そんなに甘くない。上のブログには大きく分けて4つの解決策が書いてあるが、どれも一長一短なのだ。示されている解決策は、以下の4つである。
- コードを使って解決する
- Acrobat Pro を買う
- Speaker Deck に移行する
- OS Xの標準フォントを使わない
1に関しては後から説明する。2と4は、お金かフォントを犠牲にすることになる。
3の「Speaker Deckに移行する」という選択肢はお金やフォントはかからないが、Speaker Deckには「Twitterのタイムライン上でスライドショーを表示できない」という欠点がある。また、スライド共有サービスとして知名度・集客力が上なのもおそらく(間違いなく?)SlideShareだ。MicrosoftがSlideShare(Linkedin)の親会社であることを考えると、この傾向は今後も続くだろう。結局、多くの人にスライドを見てほしい場合、この選択肢は選びにくい。
そうすると、残るのは1だ。上記のサイトにも、冒頭にこの解決策が紹介されている。良かった、何も犠牲にせずに、このままSlideShareを使えそうだ。では、詳細が書かれているブログに飛んでみよう。
ここには大きな問題がひとつある。エンジニアでない人には、このブログに何が書いてあるのかサッパリ分からないのだ。このブログはガチのエンジニア向けのブログだ。ここで紹介されているコードを走らせるソフトは何なのか、コードのどこを自分用にカスタマイズすればいいのかは、このブログには書いていない。素人がこれを読んでも、全く理解できないだろう。実際、「デザイナーにこの方法は無理だから、フォントを変えろ」と言っているサイトすらある。
結局、これより詳しい情報はウェブ上では見つからないので、ここで挫折するまでが1セットだ。何も犠牲にせずにSlideShareを使い続ける方法は分からない。検索から来てこのエントリーを読んでいるなら、おそらくあなたも挫折した1人だろう。
ということで、挫折した人向けに、僕が上記のブログを素人向けに翻訳したい。本当はSlideShareがさっさとこの問題を解決してくれるといいのだが、1年以上放置されているところを見ると、この問題の優先順位は低いのだろう。困っている人の助けになれたら嬉しい。
……と、先に進む前に、先駆者にお礼を述べておきたい。安川さん、荒引さん、お二人のおかげで僕は問題が解決しましたし、このエントリーを書くことができます。ありがとうございました。本エントリーに何か問題ありましたら修正しますので、ご連絡ください。
では、本題に入りたいのだが、その前に注意点が1つある。
注意点:PowerPointの場合、リンクだけは壊れる
この方法を使っても、PowerPointから書き出したPDFの場合、リンクだけは壊れる。SlideShareには「プレゼンの最初の3ページのリンクは無効になる」という謎の仕様があるのだが、そういう話ではなく、何ページ目でもダメだ。
上記の安川さんのブログでは「リンクも維持される」と書いてあり、実際にそのスライドも提示されているが、どういうわけか僕の場合はダメだった。プレゼンソフトがKeynoteでなくPowerPointなので、その辺に違いがあるのかもしれない。親会社のMicrosoftさん、何とかしてください!
まあ、この問題で悩む人のほとんどはKeynoteユーザーだと思うし、プレゼン内にリンクを貼らない人も多いと思う。そういう人は、この解決策で問題ない。というわけで、本題に入ろう。
STEP 1:アップしたいPDFをデスクトップにコピーする
アップしたいPDFが準備できたら、それをデスクトップにコピーしてほしい。これは別にやらなくてもいいが、この後の操作でPDFのデータを変換する。とりあえず、オリジナルのPDFは残しておくことをオススメする。
STEP 2:「ターミナル」を立ち上げる
次に、「ターミナル」というアプリケーションを立ち上げてほしい。Macなら標準で入っているアプリだ。「アプリケーション」→「ユーティリティ」とすすめば、そこに見つかる。
STEP 3:コードをコピペする
ターミナルを立ち上げたら、何も触らずに、点滅している部分に以下のコードをそのままコピペしてほしい。
LANG=C LC_ALL=C sed -i '' s'|/Registry (Adobe) /Ordering (Japan1) /Supplement [0-9]|/Registry(Adobe) /Ordering(Identity) /Supplement 0|g'
なお、このコードの最後にはスペースが入っているので、そこまでキッチリコピーしてほしい。これを忘れると上手くいかない。
また、このコードは上記の荒引さんが考案したものを、私が素人向けに改変したものだ。内容が気になる人は先ほど紹介したサイトを熟読してほしい(というより、僕も内容は半分くらいしか分かっていない)。
STEP 4:PDFをドラッグ&ドロップする
最後に、デスクトップに用意したPDFをターミナルのウィンドウの中にドラッグ&ドロップしよう。先ほどコピーしたコードの後ろに、文字列が追加されるはずだ。
なお、これはPDFファイルの位置(専門用語で「絶対パス」)をコピーするための操作なので、ファイルが移動するわけではない。デスクトップからPDFは消えないが、それで間違っていないので安心してほしい。
あとは、Enterを押して終わりだ。ターミナル内で改行されて、立ち上げたときと同じ文字「(ユーザー名)-no-(端末名):~ (ユーザー名)$」が出れば成功である。ゴチャゴチャと文字が出てきたら失敗なので、もう一度コピペからやり直してほしい(それでもダメなら、この方法は諦めてもらうしかない)。
これで、デスクトップ上のPDFはSlideShareにアップしても日本語が消えないように変換されている。あっけなくて拍子抜けするかもしれないが、本当にこれだけだ。
例として、以下のパッケージを見てほしい。「ヒラギノ角ゴ ProN」で作ったパッケージだが、問題なく表示されている(後半のリンク機能しなかったため、ハイパーリンク自体をつけていない)。ついでに言っておくと、これは僕の本の紹介なので、できれば買ってください(笑)
というわけで、ITの知識がなくてもSlideShareにスライドを上げることは可能なので、このエントリーを参考に頑張ってほしい。分からないところがあれば、コメントしてもらえれば僕の分かる範囲で答えます。
+++++<ここまで>+++++
……で、下書きが完成したので、一旦やめたわけですよ。僕は書いた文章は公開する前に寝かした方がいいと思ってるので、ちょっと時間をあけようかなと。ちょうど出かける用事もあったし。
んで、出かける直前にツイッターを覗いたら、こんなレスが来てました。
もっと手軽に変換できるようにしました。ご参考まで https://t.co/WE8bwyqlz9
— Takeshi Arabiki (@a_bicky) 2017年8月5日
普段ターミナルを使わない方でも変換できるように、ブラウザに Drag & Drop すれば変換された PDF を保存できるようにしました。
…
……
ワイとレベルが違いすぎて草www
あ、これがカイジで言うところの「ぐにゃあ」なんだな、と思ったよね。引用の要件を満たさない関係で僕は画像を貼れないので、知らない人は「カイジ ぐにゃあ」で検索かけてください。上のレスを見たときの僕の気持ちが表現されています。
というわけで、上記のエントリーを書くのにかかった、僕の土曜日の2時間(画像も作ったから、もうちょっとかかったかも?)がムダになったわけです。
感想
では、この一連の出来事を通じて、僕が学んだことを共有させていただきます。猛烈に長い前フリでしたが、ここから本エントリーの本題です。
とりあえず、「スーパーエンジニアはスーパーだな(小並感)」ということを思いました。ちょっとすごすぎる。
もう1つは、「ITを分かっていないことは根本的なレベルで解決策を間違えるリスクをはらんでいて、これは他の部分の努力では取り返せない」ってことです。まあこんなことは言われ尽くされているし、自分でも分かっていると思っていたわけですが、改めて身にしみました。
今回の例で言うと、僕はマニュアルを作ったわけです。「本当は難しいプロセスを、理屈が分からない人でもゴールに到達できるように、どうしても必要なステップだけを切り出して解説する」ということをやっている。理屈が分かっている人も同じプロセスを経るわけで、プロセス自体は変わっていない。
ところが、荒引さんは新しいプロセスを作っている。「ここにファイルをドラッグ&ドロップしろ。以上」というシンプルなプロセスにすることで、素人でも不安なくゴールに到達できるようになっている。どちらが解決策として優れているかは、言うまでもない。
では、この差を生んだのは何かというと、ITに対する知識の差に他なりません。僕は「ブラウザ上でファイルを変換することが可能だ」ということを知りませんでした。当然、それを実装する能力もないわけですが、それは「ブラウザ上でファイルを変換できるようにしたい」というゴールがあれば何とかなる話です。問題なのは、知識がないゆえに最初から「ターミナルを使わせよう」とう発想に落ち着いてしまったことです。
ここに問題の本質がある気がしています。人間は、自分の知っている範囲で何とかなることは、その範囲で何とかしようとしてしまう。どうにもならないことなら新しい解決策を探そうとするのですが、何とかなることは何とかしてしまうのです。結果として、「もっと効率的な方法」が調査のアンテナから漏れてしまう。
これの典型例がマクロでしょう。おそらく、世の中で行われているエクセル作業の20パーセントくらいは、マクロを組めば1秒で終わるようなものだと思います(数字は適当)。でも、そんな作業を1週間かけてやっている人が、未だに相当な数でいる(と、思います)。
それはなぜかと言えば、「世の中にはマクロというものがあり、マクロではこんなことができる」ということをほとんどの人が知らないからでしょう。もちろん、「下手に効率化されたくない」、「古いやり方にこだわりたい」などの理不尽な理由もあるとは思いますが、一番大きいのは「もっと簡単にやる方法(マクロ)があることを知らない」ということではないでしょうか。
で、これって、ITに限らず、医療とかにもあてはまると思うんですよ。とりあえず僕たちは「何か体に異常があったら、医者に行く」という解決策を知っているし、そこにいる医者も自分の知っている範囲で何とかしてくれる。でも、実は世の中にはもっと優れた解決策がありました、みたいな。これからこの傾向はもっと加速するんじゃないかな。
どうしたらいいのか
となると、次の問いは「どうしたら『より効率的な方法』を仕入れ続けることができるか?」ってことなんだけど、ここはイマイチ答えが出てません。
短絡的に考えると「多方面にアンテナを貼って、ひたすらに情報を仕入れる」ってことになるんだろうけど、これは筋が悪い気がしてます。よく情報収集術の本で「とにかく大量インプットして、大量アウトプットだ。インプットにはRSSとかその他もろもろ、インプット中に気になったところをevernoteとかその他もろもろでメモして、ソーシャルでアウトプットUUUURRRYYY」みたいなことが書いてあるんですが、こういう人ってずっとブログで読書感想文だけ書いてるイメージがある(偏見かもしれんけど)。
というわけで、あんまり締めがよろしくないですが、もう長いし、書きたいように書くブログなのでこのへんで終わります。ご精読ありがとうございました。