ryuna’s diary

ryunaが適当にまとめまーす

sublime textでmarkdown記法で書いてリアルタイムプレビューとかしたい

今まで(約1ヶ月)boostNoteを利用してMarkdown記法により文章を書いていた.

boostNoteは;

  • markdownで書いて,プレビューをするときに同一画面で確認ができる(画面が散らからない)
  • 画像はドラック&ドロップで投げれるから楽ちん
  • タグをつけることで管理と検索が容易
  • ファイル管理が要らない

等々...
自分が使ってる範囲内では以上のことが利点でした. 一方で;

  • potable版がない..っぽい
  • 箇条書きがうまくいかない
  • 画像の読み込みバグ
  • pdfとかに変換できなそう(未調査

みたいな欠点があります.僕的に一番致命的なのはポータブル版がないことで, USBにソフトを入れて持ち歩く身としては不便です.

ということで,boostNoteめちゃくちゃ便利で名残惜しいんですが,いつも使ってるSublimeTextで機能の置き換えをしました.

結論はよくある話なので参考にしたサイトを上げます.

Sublime Text で Markdown を快適にする3つのパッケージ - 情報系大学院生のWebメモ

OmniMarkupPreviewerでブラウザプレビューすると404エラーになる | INCOMPLETE++

ありがとうございました.

パッケージをインストールしただけで簡単ね.このほかPDFに変換するパッケージもあるみたい.便利すぎかよ.

使った感想ですが,図の挿入をする際にリアルタイムプレビューだと読み込まないっぽい. exportしてhtmlにすると見える.少しだけ不便だ.

TeXで図を書きたいこともある

TeXに図を載せるとき,普段はVisioからepsファイルを作ってるけど, 簡単な図はわざわざVisioを起動しないで書きたいときもたまにある.

そんな時のための備忘録です.

必要なもの

tikzのパッケージとTeX本体

手順

\usepackage{tikz}を上のほうに追加しよう. あと,

\documentclass[11pt,a4paper]{jsarticle}
\usepackage[dvipdfmx]{graphicx}

じゃなくて

\documentclass[11pt,a4paper,dvipdfmx]{jsarticle}
\usepackage{graphicx}

にしないと図が次元のかなたに消える模様.

ブロックがいくつか→でつながった何かを書きたい.

\begin{tikzpicture}[every node/.style={rectangle,draw=black, fill=white, text width=2cm, text centered, minimum height=1.5cm}]
   \node (a) at (0,0) {ふふふ}; 
   \node (b) at (3,0) {えへへ};
   \node (c) at (6,0) {おほほ}; 
   \node (d) at (9,0) {ひひひ}; 
   \draw[->] (a) -- (b);
   \draw[->] (b) -- (c);
   \draw[->] (c) -- (d);
\end{tikzpicture}

みたいに書くと横幅:2cm,最低高さ:1.5cmの箱の中に文字が書かれて4つ並ぶ.またdrawで矢印をかける.

f:id:ryuna_tec:20170529222207p:plain

こんな感じ.

本当はいろいろな書き方ができるけどもう面倒くさいしコンパイル通らないと嫌になっちゃうのでわかりやすく書くことが重要だと思いました○.

visual studio みたいにsublime Textでもctrl+k,cでブロックのコメントアウトをしたい

c++のプログラムを学校で書くときは,visual studioctrl+k,cでブロックのコメントアウトをしているけど

家ではもっぱらSublime Textで添削をしている.

Sublime Textでも ctrl+k,cでブロックのコメントアウトをしたい!

Sublime Textのキーバインド

sublime Textのキーバインド

Preferences - Key Bindings

から見れて,USERのほうに好きなのを書けば割り当てられる.ただし既に存在するキーバインドと競合する場合があるので注意.

sublime textでのブロックのコメントアウトは,

{ "keys": ["ctrl+shift+/"], "command": "toggle_comment", "args": { "block": true } }

より,ctrl+shift + /で行うことができる.

このほかのコマンドの名前などは下記URLに載ってる.

Sublime Text - Commands

これをUSERのほうでkey設定だけ変えれば好きなショートカットに割り当てられる.

キーを二回押して任意のショートカットを割り当てたい場合は

"ctrl+k","ctrl+c"みたいに分ければいい.下記URL参照

https://www.techportal.co.za/software-applications-hardware/181-other/sublime-text-3/534-how-to-indent-the-same-way-as-visual-studio-ctrl-k-d-in-sublime-text-3.html

なので,最終的にUSERのところに次のような文を足せば目的は達成できる.

{ "keys": ["ctrl+k","ctrl+c"], "command": "toggle_comment", "args": { "block": true } }

ちなみに最後の{ "block": true }truefalseに変えると/*//に変わるよう.お好みでどうぞ.

また,挿入する文字も変更可能なよう.下記URLを参照してください.

灯火: Sublime Text : コメントアウトコマンド(Toggle Comment)で挿入される文字列を設定する

Sublime Text 経由でgnuplotを使う

Sublime Textとgnuplotを連携させれば,開いてるcsvファイルからグラフ描ける,それって便利じゃね?

というわけで,今回は連携の第一歩として,Sublime Textのbuild systemを使って編集しているdatファイル(csvみたいなの)からepsファイルを作成する方法についてまとめる.

※今回の内容では軸ラベルなどの設定は手動で行う必要がある.すなわち,gpファイルを作成してわちゃわちゃするのと大差はない. だけど,ファイル名くらいは変えれるし,コマンドを毎回打つのは面倒だし,Sublime Textはいつも開いてるからコマンドプロンプト代わりにはなるはず.

準備段階として

本稿の内容をやる前に入れとかないと駄目

  • Sublime Textをインストールする
  • gnuplotをインストールする.
  • 何らかのepsを開くソフトを用意する(作成する図をpngとかにすれば不要)

今回の内容の3ステップ

  1. batファイルを呼び出すためにsublime-bulidファイルを作成する
  2. gpファイルの代わりになるbatファイルを作成する.
  3. ctrl + Bでepsが作成される.

詳しいやり方

sublimetextで図を作成する文を書くためにはまず,その文がcmdで使えるかを確認する.

コマンドプロンプトからgnuplotを開く

cmdで適当な数式のグラフを見たい場合

   > gnuplot -e "plot sin(x);pause -1"

このpause -1がないと一瞬でグラフ描画を終えるので必須

cmdでplt(gp)をloadしたい場合

> gnuplot -e "load `test.plt`"

ちなみにtest.pltの中身は以下.

set title "this is test"
plot sin(x)/x

以上から,cmdでgnuplotが開けることが理解できる.

Sublime Textのbuild systemから図を作成する

例にもよって,sublime-buildに直接起動文を書きたいがうまくいかないのでbatファイルから起動する.

sublime-buildの中身

開くだけ;

{
    "cmd": [
        "${packages}\\User\\gnuplot.bat","$file_base_name"
    ],
    "shell":true
}

gnuplot.sublime-buildとか名前つけて保存. 作成した図を開きたい場合は適当に起動するための文を追加する.

gnuplot.batの中身

今回は保存形式:epsでoutputするファイルの名前を編集しているdat(csv)ファイルの名前にした2列のデータを対象にbatファイルを設定する.

@echo off
set PATH=%~d0\usr\gnuplot\bin;%PATH%
start gnuplot -e "set terminal postscript eps color enhanced;set output '%1.eps';plot '%1.dat' using 1:2 notitle w l;"
exit /b 0

呼び出す場合は;で改行になるらしいので,ラベルの設定とかも足そう. 軸の名前が変わるたびにbatファイルを設定し直す必要があるが. まぁ今回は基本構成で動くの確認できればokなのでこれで問題なし.

実行結果

念のためgnuplot/demoにある1.datを用いてグラフの描画を確認する. 1.datを開いた状態でctrl + Bで同じディレクトリにepsファイルが作成される.

f:id:ryuna_tec:20170515141512p:plain:w500

※ブログに載せる都合上pngにして作成している.

という感じでeps画像が作成できることが確認できる.

まとめ

Sublime Textのbuild systemを使って内部でgnuplotを開いて図を作れるようになった. そんなに便利じゃないけど2列のcsvとかならエクセル開いてグラフ作成よりか高速で波形の確認ができるね.

batファイルからcsvとかdatファイルの先頭にある軸ラベルとかの内容が読み込めたら強いんだけどなぁ.

余談だけど,markdown方式で書いてるけどあんまりいい感じに出力されてくれない.書き方を教えてほしいです.

パッケージの入れ方が分かんなくてもSublime Text単体でコンパイルを済ませたい!

今回はSublime TextでTeXコンパイルをしたいけど, パッケージインストールに挫折した人とか,既にw32texがPCに入ってる人のための内容のつもりです.

なんでこうなった

テキストエディタsublime Textを使ってるけどlatex?のパッケージ入れ方わかんないし,コマンドプロンプトw32texplatexを呼んでればいいやと思ってここ数年texをさわさわしてたけど, つい最近sublime textにbuild systemてゆう便利な機能があってその内容も自分で書けるって知ったのが発端です.

結論

Sublimeでコンパイル - code snippets

このようにしとけばわざわざコマンドプロンプトを開く必要もなくSublime Textのみで完結させることが可能になる.

しかし,texなどの環境はどのpcに入っているわけでもないので出かけ先でtexを使用したい場合はCloud LaTeXやUSBにTeX環境を構築しておくことになる.

その場合,環境変数は指定しないとだし,パスも毎回変えるのは面倒. そこで,usbに構築してあるドライブレターが変わってもフレキシブルに対応できるように中身を書き換えちゃおう.

準備段階

本稿では以下のソフトウェアが必要です.

  • w32texなどのtexが使えるようになるtool
  • sublime Text
  • SumatraPDF等の上書き可のPDFviewer(上書き可能でなくても大丈夫)

adobeだとコンパイルの度に閉じる面倒があるので,SumatraPDFを使うことにする.

本稿の3ステップ

  1. sumlime-buildファイルを作成
  2. PDFviewerを起動するためのbatファイルを作成
  3. ctrl+Bでtexコンパイルすると指定viewerでPDFが開く

詳しいやり方

説明が面倒なので,どのPCにもw32tex等が入ってることにする.

だから今回はPDF表示の部分だけバッチファイルで補う

ここで,

バッチファイル(Batch File)とは、MS-DOSOS/2Windowsでのコマンドプロンプト(シェル)に行わせたい命令列をテキストファイルに記述したもの。

らしい.すなわちwindows向けかもしれない.

buildsystemの作成

コンパイルした後PDFを開きたいけどPDFviewerがUSBに入ってるとき,USBを刺した時にドライブレターが決まるので,この部分はbatファイルで補うことにする.(ワンチャンbuildsystemの変数だけで行けそうな気もする.

{
  "cmd": [
    "platex","$file","-interaction=nonstopmode","&",
    "dvipdfm","$file_base_name","&",
    "${packages}\\User\\platex.bat","$file_base_name.pdf"
    ],
   "shell":true
}

5行目でbatファイルに対して,dvipdfmxで作成されたPDFファイル名を渡してる.

また5行目からもわかるようにbatファイルは sublime-buildファイルの保存先と同じ場所である,package/User/に保存することにする.名前は適当.

なお,この文章中で,selectorの設定を行うと*.texに対してはbuild sytemが自動でplatexに設定されるようにできたりするらしい.ぜひ導入するべき.

platex.batの作成

PDFを起動するだけ

@echo off
set PATH=%~d0\usr\SumatraPDF;%PATH%
start SumatraPDF.exe %1
exit /b 0

batファイルの書き方はよくわかんないので不要な文などが多くあるらしい.(動くからいい的な

実行方法

sublimeTextでTeXを開く,toolのbuildsystemをplatexに指定して,ctrl + B

何もエラーがなければ,SumatraPDFが起動し,生成されたPDFファイルが表示される.

まとめ

sublime Textのbuild sytem機能を用いてLaTeXコンパイル,PDF化,PDFの表示ができるようになりました.今までのmakefileより圧倒的成長✌ やってること的にはEmEditorコンパイル機能と変わらない気がするけど()

build systemはコマンドプロンプトを省略できるのは細かいけど応用が利きそうです.

newラインセンサ回路

こんばんは.

世界大会の枠数は各カテゴリ1枠とのことで,残念ながらCat-Potは世界大会に出場できなくなってしまいました.準優勝のSSSには頑張ってもらいたいです!!

とは言ってもラインセンサを新しく作り直そうと思っていて回路も設計しちゃってめちゃくちゃ乗り気だった昨日までの私.

むなしいので設計だけしてブレッドボードで試してすらいませんがラインセンサの回路を公開します.

使う人はいないと思いますので参考程度にどうぞ.

LINE_2.png

一つ一つアナログ値としてマイコンで読ませます.

そして,ラダー型DACを用いて,出力を8段階の任意のアナログ出力をします.

これをメイン側のマイコンで読んでラインを処理しようという考えでした.

デバッグ用に2ピンあるのは前回の自己保持回路との互換性を保つためです.回路が使い物にならなかった場合はプログラムを書き換えて自己保持回路として利用することもできます.(マイコン積んでるから当たり前ですね.)

動画をいくつか公開しています.動画のマカオの動きをみてチームの戦略に役立ててください.

Cat-Potの秘密

CatPotの(りゅな)でないほうのプログラム担当の(lilac)です.

ロボカップジャパンサッカーオープン2016のときに使用したプログラムを公開しました.

mbedUserでプログラムが見れるorそれでいい方は

メインマイコンのプログラムはこちらのURL

サブマイコンのプログラムはこちらのURL

エディタ等で見たい方は以下のURLにアクセスしてダウンロードをしてみてください.

こちらにはおまけのIRのフォーマットも上がっています. リンク

公開したのでプログラムを書いているロボカッパーの方でCat-Potの動きがどのようになっているのか,

どのようなコードになっているのか気になる人はぜひともご覧ください.

ちなみにあんまりコメント書いてないんでわかりにくいです.申し訳ありません.

そこは変数名でわかりやすくしようと努力したつもりなんでご勘弁願います.

公開したプログラムには2014年のジャパンオープンのchronograph(先輩のチーム)のプログラムを

参考にしています.オムニの出力制御やコンパスの値をモーターの出力に反映するためのPID制御などが該当します.

残りはほとんど独学です.しかし同じ学校の後輩のInputやnncbotの練習風景を見て参考にした点もあり,

彼らがいてこそのプログラムです.

ファイルのなかに,数字がずらりとならんでいるファイルがありますが,手入力をしたわけではなくエクセルを用いて

コピペしました.

プログラムを読んでハード面で分からないことがあったらハード担当の(りゅな)君のツイッターのアカウントにつぶやけば

きっと何か教えてくれると思います.

続きを読む