SublimeText3で日本語TeXを書いてる時にFont family `JT1+gt' unknown.で悩まされた話.
コンソールから直打ちでplatex hoge.texをやるとコンパイルが通るのにST3経由だと通らない!という問題にぶち当たっていつの間にか解決してしまったのでメモ.
追記:なんとなく原因がわかった
やりたかったこと
学会で指定されたサンプル(tex, cls)を使ってSublimeText3で日本語のTeXファイルをコンパイル→Skimでプレビュー
問題
ST3でビルド(⌘B)するとFont family〜〜〜〜系のエラーが大量に出る.
しかしコンソールでplatex hoge.texしたらエラーなしで通る
問題が起きていた環境
最後にTeXを書いてたのはST2だったので,ST3に変えてから初めて日本語でTeXを書くことになった.(たぶん)
LaTeXTools TraditionalBuilderの内容
DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
"-e", "$latex = 'uplatex %O -interaction=nonstopmode -synctex=1 %S'",
"-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
"-e", "$bibtex = 'upbibtex %O %B'",
"-e", "$makeindex = 'makeindex %O -o %D %S'",
"-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
"-f", "-norc", "-gg", "-pdfdvi"]
試したけどダメだった・これだけだと効果がなかったこと
- TradirionalBuilderのコンパイラをuplatexからplatexにしてみた
- コンパイルするファイルの文字コードをUTF8にした
- texファイルの\usepackage[dvips]{graphicx}を[dvipdfmx]に変更
解決方法:コンパイラ変更+SublimeTextの再起動だけで良いっぽい
- TradirionalBuilderのコンパイラをuplatexからplatexに変更
- コンパイルするファイルの文字コードをUTF8にする
- texファイルの\usepackage[dvips]{...}を[dvipdfmx]に変更
- 漢字埋め込み設定の確認(kanji-config-updmap-sys status)
- 漢字埋め込み(kanji-config-updmap [任意のフォント])
- 設定変更後,SublimeTextを再起動する(再起動しないと設定が反映されない)
TraditionalBuilderの設定は関係なかったな〜って思いながらuplatexに直してST再起動させてビルドしたら再びエラーが出た.笑った.
そもそもplatexだと問題無いのが分かっていたのにSTを再起動しないと設定反映されないってことに気づかなかったのが敗因でした.
解決した時点で試していたこと
- TeXLive2014のインストール,アップデート
- 漢字埋め込み設定の確認,埋め込み
漢字フォントの埋め込み
今の設定を確認
$ kanji-config-updmap-sys status
CURRENT family : noEmbed
Standby family : hiragino
Standby family : hiragino-pron
Standby family : ipa
Standby family : ipaex
とりあえずヒラギノを埋め込んだ(※ヒラギノの設定などはggると出てくる)
$ kanji-config-updmap hiragino
Setting up ... ptex-hiragino.map
Creating new config file /Users/ほげほげ/Library/texlive/2014/texmf-config/web2c/updmap.cfg…
もう一度設定を確認
kanji-config-updmap-sys status
CURRENT family : hiragino
Standby family : hiragino-pron
Standby family : ipa
Standby family : ipaex
この後にビルドしてみたらさらっとエラーが消えた.TeXLiveをアップデートしなくても漢字埋め込みの設定をちゃんとするだけで通る気がする.
■
この間入れたangular-file-uploadを使って画像をdataURLに変換→mongoDBに保存する機能を実装してみた.
小さい画像は問題なく動作するが,大きい画像(例:iPhoneから写真を投稿するなど)の場合以下のエラーが出てアップロードできなかった.
[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error)
調べたところリクエストサイズが大き過ぎるよ〜とかそんな感じらしい.
bodyParserのオプションを設定する
/config/express.js
// Request body parsing middleware should be above methodOverride
app.use(bodyParser.urlencoded({
extended: true,
limit: 1000*1000*5
}));app.use(bodyParser.json({
limit: 1000*1000*5
}));
app.use(methodOverride());
他の場所に書けそうもなかったので直書き.とりあえず5MBに設定.
bodyParserのパラメータはここを参考にした. https://www.npmjs.org/package/body-parser
再度試すとそれなりに大きいサイズもアップロードできるようになった.
一定以上の大きさの画像はリサイズするようにしたほうがいいかも.
bower installしてきたモジュールをMEAN.JSアプリに追加する手順
MEAN.JSアプリにangular-file-upload(danialfarid/angular-file-upload · GitHub)を入れてみた.
CSSやらjsを追加するファイルの場所が分からん…ってなったのでメモ.
モジュールのインストール
bower install ng-file-upload --save
bower.jsonのdependenciesに名前が追加される.
モジュール名を確認
モジュール追加時はファイル名じゃなくてモジュール名が必要になる.
インストールしたモジュールはpublic\libに入っているのでそこから探す.
var angularFileUpload = angular.module('angularFileUpload', []);
CSS, jsを追加
config\env\all.jsのassetsに書き足す.
assets: {
lib: {
css: [
'public/lib/bootstrap/dist/css/bootstrap.css',
'public/lib/bootstrap/dist/css/bootstrap-theme.css',
],
js: [
...,'public/lib/ng-file-upload/angular-file-upload-shim.min.js',
'public/lib/angular/angular.js',
'public/lib/ng-file-upload/angular-file-upload.min.js'
]
}
モジュールを追加
public\config.jsのapplicationModuleVendorDependenciesにモジュール名を追加.
var applicationModuleVendorDependencies =
['ngResource', 'ngCookies', 'ngAnimate', 'ngTouch', 'ngSanitize', 'ui.router', 'ui.bootstrap', 'ui.utils', 'angularFileUpload'];
これでおしまい.
MEAN.JSのサンプルをheroku上で動かす
MEANスタック(MongoDB, Express, Angular.js, Node.js)を利用してアプリを作ってみたくなったので備忘録として動くまでにやったことを残しておく.
【目標】
yo meanjs で作成したサンプルがheroku上で動作する
【前提条件】
・git, yo, grunt, node.js, mongoなどは既に導入済み
・yo meanjsが実行できる
【手順】
1. yeomanを利用したサンプルの作成
・アプリ用のディレクトリを用意
mkdir TEST
cd TEST
・yeomanの実行
yo meanjs
$ yo meanjs
_-----_
| |
|--(o)--| .--------------------------.
`---------´ | Welcome to Yeoman, |
( _´U`_ ) | ladies and gentlemen! |
/___A___\ '__________________________'
| ~ |
__'.___.'__
´ ` |° ´ Y `
You're using the official MEAN.JS generator.
?What would you like to call your application?TEST
?How would you describe your application?Full-Stack JavaScript with MongoDB, Express, AngularJS, and Node.jss)
?How would you describe your application in comma seperated key words?MongoDB, Express, AngularJS, Node.jss)
?What is your company/author name?Xenon
?Would you like to generate the article example CRUD module?Yes
?Which AngularJS modules would you like to include?ngCookies, ngAnimate, ngTouch, ngSanitize
とりあえず全部Yes(Default)にした.
しばらくするとインストールが完了する.
・ローカルでの動作チェック(mongodbを起動しておく)
mongod
grunt
ブラウザで見ると動いてた.
2.herokuアプリの作成とconfig設定
・herokuアプリの作成(createをつかうとgitの登録もしてくれる)
heroku create [適当なアプリ名]
もしくは
heroku create
$ heroku create
Creating mighty-river-7706... done, stack is cedar
https://mighty-river-7706.herokuapp.com/ | git@heroku.com:mighty-river-7706.git
アプリ名を指定しないとアプリ名が自動生成される
・mongoHQアドオンの追加(MongoDBの利用を可能にする)
heroku addons:add mongohq --app [アプリ名]
・heroku上の環境変数を設定(production環境にする)
heroku config:set NODE_ENV=production --app [アプリ名]
・メインのビルドパックとしてbuildpack-multiを登録
heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git
herokuは標準だと一つのbuildpackしか使えないっぽいが,buildpack-multiは.buildpacksファイルに記載された複数のビルドパックを利用可能にする
・buildpack-multiで利用するビルドパック一覧を作成
vim .buildpacks
https://github.com/shunjikonishi/heroku-buildpack-with-grunt-task
https://github.com/heroku/heroku-buildpack-nodejs.git
この二つを登録.
一つ目はheroku上でgruntタスクを実行できるようにするビルドパック
二つ目はnodejsをheroku上で利用するためのビルドパック(公式が用意してくれている)
・configの確認
heroku config --app [アプリ名]
$ heroku config --app mighty-river-7706
=== mighty-river-7706 Config Vars
BUILDPACK_URL: https://github.com/ddollar/heroku-buildpack-multi.git
MONGOHQ_URL: mongodb://heroku:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NODE_ENV: production
こんな感じ.herokuへMEANのアプリを登録する準備ができた.
3.MEANアプリのherokuへのデプロイ
grunt build
$ grunt build
Running "jshint:all" (jshint) task
>> 53 files lint free.
Running "csslint:all" (csslint) task
>> 2 files lint free.
Running "loadConfig" task
NODE_ENV is not defined! Using default development environment
Running "ngAnnotate:production" (ngAnnotate) task
>> 1 file successfully generated.
Running "uglify:production" (uglify) task
>> 1 file created.
Running "cssmin:combine" (cssmin) task
File public/dist/application.min.css created: 506 B → 424 B
Done, without errors.
※/public/dist以下にminifyされたjsファイルが作成されているかを確認
→dist以下のファイルの中身が空になっていることがある.この場合herokuへpushしてもエラーは起きないがherokuアプリを開いても何も表示されない.
→ローカルのgrunt build時のNODE_ENVの環境を変えてみたりするとうまくいった.
(おまけ)ローカルでgrunt buildするときのNODE_ENVの設定方法
NODE_ENV=production grunt build
これだけ.ちなみにNODE_ENVのデフォルトはdevelopmentになっている.
・gitへのコミット
git init
git add -A
git commit -am "first commit"
・commitした内容をherokuへpush
git push heroku master
・herokuアプリの確認
heroku open
ブラウザが自動的に開いてローカルで見たものMEANアプリと同じ画面が表示されるはず.
【参考にしたサイト】
たくさん.
Twitterアイコン(2014/9/30〜)
P4GA視聴&P4Gプレイと本格的にペルソナ4にはまり始めたのでアイコンを変更。
最初は頭を出してるやつ(前までのアイコンの使い回し)にしようと思っていたけどあまりにもバランスが悪いので下半身だけ見えてる方を採用。
NBC_079 アルパカ クリーム
余ったパーツ
- 2×8:1
- 2×4:3
- 2×2:3
- 1×4:3
- 1×2:5
- 1×1角:4
- 1×1丸:4
- 2×4:1
- 1×2:2
- 1×2半:2
- 1×2:3
- 1×1丸:4
頼んでたパーツが届いた。
ダイヤブロック通販【DaiaBlock Factory】で単色部品をポチったのが届いたので早速100円ショップで買ったケースに移し替えてみた。
まだまだ色も数も少ないです。今度はモノクロ系追加と茶系かな。
nanoblockにハマった経緯
nanoblockいいなーってなったのはつい最近のことでした。確か卒研がやばすぎて現実逃避を始めたあたりだから…去年の12月とかでしょうか。
3Dドット絵やminecraftの建築物を立体物にしたい→羊毛フェルト、粘土は手間がかかる⇒ブロックならそれっぽい見た目になるし楽かも?
という流れでnanoblockに辿り着きました。あと部品をバラバラに買える(しかも安い)ってのも大きかったです。
作りたい物を全部作り終わったら…どうするかな。ジオラマとかに挑戦するのも面白いかもですね。
そういえば部品を頼んだのは今回で2回目なんですが、初回は手書きのメモが入ってて感動しました。工場から直接送ってきてくれてるんですよね…これからもお世話になります。