2018年10月17日水曜日

macOS MojaveでRealforce compactを使うためのKarabiner-Elements設定

実現したいこと

  1. 無変換 -> 英数
  2. 変換 -> かな
  3. Caps lock -> Command
  4. Windows -> Caps lock
  5. Application -> Fn
  6. KANA -> Command
  7. Alt + [Shift] + Tab で アプリケーションスイッチ
  8. Caps lock + [Shift] + Tabでブラウザタブ移動
1〜6はSimple Modificationsで設定できる.キー名がわからない場合はKarabiner-EventViewer.appで確認する.
7, 8はjsonファイルに設定を記述する.
https://pqrs.org/osx/karabiner/complex_modifications/#rotate_left_modifiers

2018年5月23日水曜日

texliveリポジトリが凍結された後の更新

texliveリポジトリは定期的に凍結(frozen)され,次年度バージョンへ移る.凍結後に追加でパッケージ等をインストールしようとしてリポジトリにアクセスすると,「もう古い」的なことを言われて新バージョンへの移行方法が示される.
% tlmgr update --all
tlmgr: Remote repository is newer than local (2017 < 2018)
Cross release updates are only supported with
  update-tlmgr-latest(.sh/.exe) --update
Please see https://tug.org/texlive/upgrade.html for details.
しかし,こういうときはだいたい〆切直前で環境を大きく変えたくないものである.旧リポジトリから対象パッケージをとってきたい場合は,以下のコマンドで設定できる.
% sudo tlmgr option repository ftp://tug.org/historic/systems/texlive/2017/tlnet-final

2018年4月20日金曜日

フォント外の異字体をWordで使いたい

目的
フォント外の異字体をMS Wordで使いたい
斎のバリエーションのようなもの
下記で販売されているようなフォントには含まれている
https://www.est.co.jp/font/jinmei1500v5

Inkscapeで目的の文字と共通パーツを持つ文字をタイプ
斎でいえば,文の部分と示の部分を合成することを考える
→アウトライン化
→パーツに分解して目的の文字を合成
→基準となるMS Word上のフォントと比べて太すぎるのでパスを白線で囲って痩せさせる
→EPS出力
→MS Word上で画像を貼り付け
→出力してみて文字の太さを調整

試した方法
中華フォントKaitiでそれっぽいのを探す
→近い文字はあったが,目的の文字は見つからず.フォントスタイルは結構合う
異字体を含むフォント販売ページで,サンプルPDFを公開していたので,それをコピペ
→フォントの見かけがちょっと違う
紙で切り貼り
→仕上がりに難.手作業が難しい.

2018年1月4日木曜日

Matlab 2017bでYALMIPとSeDuMiを使えるようにした

Matlab 2017bでYALMIP, SeDuMiを使えるようにしたメモ.

環境

  • macOS: 10.11.6-x86_64
  • Xcode: 8.2.1

YALMIP

サイト(https://yalmip.github.io/download/)からダウンロードして解凍する.適当な場所に置く(~/MATLAB/YALMIP-master など).
Matlabでパスを通す.
addpath(genpath('/Users/hoge/Documents/MATLAB/YALMIP-master'))
savepath

SeDuMi

サイト(https://github.com/sqlp/sedumi)からダウンロード.macOS 64bit用のバイナリ(**.mexmaci64)を適当な場所に配置してパスを通す.
テストしてみるとSDPが解けていない.
yalmiptest
|                    SDP|        N/A|   Unknown problem in solver (Turn on 'debug' in sdpsettings) (関数または変数 'y_s' が未定義です。)|

SeDuMiバイナリの作成

どうやらsedumiがインストールできていないよう.
sedumi([1; 1], 1, [1 1])
無効な MEX ファイル '/Users/hoge/Documents/MATLAB/sedumi-master/whichcpx.mexmaci64':
dlopen(/Users/hoge/Documents/MATLAB/sedumi-master/whichcpx.mexmaci64, 6): Library not loaded:
@loader_path/libmwlapack.dylib
  Referenced from: /Users/hoge/Documents/MATLAB/sedumi-master/whichcpx.mexmaci64
  Reason: image not found。

エラー: pretransfo (line 211)
cpx = whichcpx(K);

エラー: sedumi (line 261)
[A,b,c,K,prep,origcoeff] = pretransfo(A,b,c,K,pars);
mexファイルがおかしいと言われるのでコンパイルしてみる.github上のソースファイルから修正が必要.ここを参考に:
Found the link for the fix.
-#define FORT(x) FORTRAN_WRAPPER(x)
+#define FORT(x) x
at line at line 45 in blksdp.h
修正したらSeDuMiのファイル直下でinstall_sedumiをオプション付きで実行する.
install_sedumi -rebuild
できた.
yalmiptest
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|                   Test|   Solution|                     Solver message|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   Core functionalities|        N/A|       Successfully solved (YALMIP)|
|                     LP|    Correct|      Successfully solved (LINPROG)|
|                     LP|    Correct|      Successfully solved (LINPROG)|
|                     QP|    Correct|     Successfully solved (QUADPROG)|
|                     QP|    Correct|     Successfully solved (QUADPROG)|
|                   SOCP|    Correct|   Successfully solved (SeDuMi-1.3)|
|                   SOCP|    Correct|   Successfully solved (SeDuMi-1.3)|
|                   SOCP|    Correct|   Successfully solved (SeDuMi-1.3)|
|                    SDP|    Correct|   Successfully solved (SeDuMi-1.3)|
|                    SDP|    Correct|   Successfully solved (SeDuMi-1.3)|
|                    SDP|    Correct|   Successfully solved (SeDuMi-1.3)|
|                    SDP|    Correct|   Successfully solved (SeDuMi-1.3)|
|                 MAXDET|    Correct|   Successfully solved (SeDuMi-1.3)|
|                 MAXDET|    Correct|   Successfully solved (SeDuMi-1.3)|
|          Infeasible LP|        N/A|       Infeasible problem (LINPROG)|
|          Infeasible QP|        N/A|      Infeasible problem (QUADPROG)|
|         Infeasible SDP|        N/A|    Infeasible problem (SeDuMi-1.3)|
|      Moment relaxation|    Correct|   Successfully solved (SeDuMi-1.3)|
|         Sum-of-squares|    Correct|   Successfully solved (SeDuMi-1.3)|
|           Bilinear SDP|        N/A|                 No suitable solver|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
設定
Note that YALMIP uses historical default settings for SeDuMi. According to the user guide for SeDuMi 1.1, the YALMIP defaults should be updated as below:
S = sdpsettings('solver', 'sedumi', 'sedumi.eps', 1e-8, ...
                'sedumi.cg.qprec', 1, 'sedumi.cg.maxiter', 49, ...
                'sedumi.stepdif', 2);