niszetの日記

アナログCMOS系エンジニアが頑張る日記

(R) usethisパッケージ1.2.0 と The tidyverse style guide について (メモ)

パッケージを更新するときはNewsで何が更新されているか見てみるのはおススメです。

deprecated になった関数や、bugfix、追加の関数、関数のオプションなどが書かれていて、一読の価値ありです。

今まで、RStudioのpackageタブからupdateからのSelect AllからのInstall Updatesしていたのですが、いつからか右端のNEWSのリンクから(ファイルがあれば)更新を読むようになりました。おすすめです。

usethisパッケージが1.2.0になった

昨年11月にこのパッケージについて書いているんですが(当時は1.1.0)、これが1/19に更新されたようです。 niszet.hatenablog.com

で、この usethis パッケージのNEWSのリンク(下記)

NEWS

にThe tidyverse style guideなるドキュメントへのリンクが。

style.tidyverse.org

なお上記のNEWSには

use_tidy_style() styles an entire project according to http://style.tidyverse.org (#72, #197 @lorenzwalthert).

とあるので、この関数使うとtidy_styleにしてくれるってことでしょうか…(未確認)

usethisパッケージ、tidy style guideともに要確認ですね…

とりあえず忘れないように速報的なメモ記事です。

以上。

Enjoy!!

B. P. Lathiの Signal Processing And Linear Systemsで状態空間表現について学ぶ

量が多いので複数回に分ける。

時系列の解析をしたい。そのためには状態空間モデルについて避けることができない。しかし、状態モデルと観測モデルの式の形はわかるし、意味もわかったと思ったのに実際に式を追いかけてみるとイマイチ理解ができない。
そんな中でディジタルフィルタについて勉強していると、状態空間による表現があることを知り、そうであればモデルを「推定」するのではなくて回路構造等アーキテクチャがあらかじめ決まっていて、そこには推定すべきあいまいさがない状態で考える方がわかりやすいのではないか…?

…と考えて海外の大学の講義資料等を見て回った結果、B. P. LathiのSignal Processing And Linear Systems という本が良さそうだということで購入して読んでみました。

この日記はその中で得られた理解や問題を解いた結果をペタペタ貼っていこうという話の導入編です。つまりあまり中身がないということです。

購入

USA/Canada以外ではペーパーバック版がお安く買えます。中古で買っても良いのかもですが、著者にお金が入る方が良いなと思って。
なお、この本は800ページにわたって信号処理に関する内容が書かれていて、Sate Space Analysisとして13章に状態空間の話が載っています。ページ数が多くて結構ドン引きしますが、英語がかなり読みやすく、式の変形・展開や事例などを丁寧に解説してあるため、変に省略された本を買うよりもよほどわかりやすいです。amazonなら8kほどで購入できるので1円/ページってことですか。

雑な理解

一通り読み終わって、とりあえず下記のように理解しました。

  • 状態空間の式は1階の微分方程式の行列表現(連立方程式
  • 「状態」は各ノードの値。あるいは「積分器」の前後、あるいは積分器そのものだと考えても良いと思う
  • 離散時間の場合はこれがz^-1なので、実質FF(Flip Flop)
  • 連続時間の場合は受動素子ならLやC。iとvの関係が逆なので、i,vどちらかがもう一方に対して積分する関係として表現できる。RLC回路などは各節点についてi,vを決めるため、どちらも「状態」を保持するための素子として使用できる。
  • 伝達関数による表現は入力から出力に至るものだけ。つまり可観測かつ可制御の状態。
  • 直達項は分子分母が同じ次数だと出現。
  • pole/zeroキャンセルすると見えないものがある(うろおぼえ)
  • ラプラス変換で周波数領域で考えても良いし、時間領域で解いていっても良い(前者の方が解くのは簡単そう)
  • カルマンフィルタはこの本の範囲外だが、入力が存在せず、状態と観測それぞれに誤差項が入ったモノ(ただしそれぞれ独立)と考えると個人的にはすっきりする
    • 観測には必ず誤差が含まれる、ということで観測式の方はその誤差が入った発展版という理解。
    • 状態の方は、系に対して信号として扱えるほどの大きな入力はないが、無数の小さなランダムな入力が入っていてそれがガウシアンノイズっぽく見えているのでは、などと考えるとちょっとすっきりする。
  • こっちのSSは制御のお話なので入力によって制御したいという気持ち。時系列は制御する対象ではないという点(観測したものから”推定”する)
    • "推定"するにはそちらのお作法がある。 この本の外の話なのでこの本では時系列解析自体はわかるようにならない。ただし状態空間表現を学ぶことが出来る
  • あとは行列というか線形代数の話。これも不安があるなら別途勉強するほうが良い。

もうちょっとちゃんと理解したい

ならば私は手を動かすしかないですね。少しずつやっていきます。
また、これとあわせて時系列解析の方もやっています。それらを合わせて考えたときに、上の雑な理解はどう変化しているか。んー、楽しみ()

TokyoR67に行ってきました(一部追記)

行ってきました。

1/22追記:
ATNDの方に資料のリンクが追加されたようなので、そちらを参照すると良いと思います(この記事自体は残しておきます)

前回、資料リンク作らなくても良いかなぁと思ったのですが、Togetter作っておこうかなと思ったら流れでまとめてしまいました。なお、現時点で確認できたものだけ、今後更新するかは不明、です。
なお、前回からATNDにリンクを貼っていただけているので、そちらから見ても良いのかなって思いますが、コレ結構時間かかるので無理ない範囲で…!

ちなみに私は良く参加していますが、運営さんではないRエンジョイおじさんです。
運営さん、いつもお疲れ様です。今回もありがとうございました。

なお、別にtwitter IDと紐づけて発表しなくてはいけないこともないし、発表資料を公開しなくてはならないわけでもないし、配信をしなくてはいけないわけでもないので、発表するの興味はあるけど名前伏せたい…とかも出来ますので、運営さんに聞いてみよう。ATNDの主催者の方に問い合わせるか、r-wakalangのtokyorチャンネルなどからどうぞ。

なお、次回は3/3を予定しているそうですが、場所は未定、発表者も募集中とのことです。我こそは!という方は是非是非!

感想

ここからしばらくはポエムなので読み飛ばしましょう。
2018年、1回目の開催でした。毎回初参加の方がいらっしゃる(それなりの割合で)し、参加される方の分野も色々なので(私が言うのもなんですが...)面白いコミュニティだなーっていつも思っています。

今回はステッカーもいただいたし、次回はLT出来るようにたゆまぬ努力します。

以下、資料まとめ

ATND

資料のリンクについて、ATNDの方が公式ですので更新されていたらそちらをご参照ください() atnd.org

Togetter

私が個人的にまとめているものです。お気づきの点があればご連絡ください。 togetter.com

r-wakalang

slackにてRについて質問できる場所があります。下記の記事をご参考に。 qiita.com

ツイキャス

当日の様子は配信されることがあります。ありがたいですね。 ただし、必ず配信されるというわけではないので、配信していたら喜びましょう。 twitcasting.tv

TokyoRコミュニティのツイッターアカウント

こちらから。LT希望などもこのアカウントに呟けば拾ってもらえます。
また、当日配信(があれば)のアドレスも呟かれているので、気になる方はこちらもチェック。 twitter.com

会場

会場を貸していただけるってありがたいことだなぁと常々思っているので、リンクを貼ることで多少なりとも宣伝になれば…

www.otto-online.jp

以下、オットージャパンさんのHPトップから引用です。

オットーについて
オットージャパンは、ヨーロッパを中心に世界30カ国で展開するドイツ発の通販企業です。インターナショナルなレディースファッションを中心に高品質の商品を充実したサービスでこれからも皆様にお届けしてまいります。

とのことです。興味がある方はHP下部の採用情報からどうぞ…!とのことでした。

オープニング

前回同様、オープニングにTokyo Rについての説明がありました。
手元のメモによると下記の通り。

niszet メモ

以下は手元にあったメモから。ご参考程度に。

  • 主催者が変わりましたというご案内

    • 主催者変更は前回からですが、しばらくは周知のため告知が続くと思います
  • 連絡はTokyoR Communityアカウント(twitter)によろしくお願いします

    • 公式のアカウントがあるのは良いですね。LT希望等はここへ連絡すればよいという安心感。
  • 今回から追加された(ATND参照)、アンチハラスメントポリシーについての説明。

    • 他人の嫌がることはしちゃダメだよ!という当たり前の話ではありますが、コミュニティとして表明して活動しますよ!というのは心強いですね。ただ、僕の観測範囲でそういうことがあったという認識はないので、安心感がより増しましたよという理解です。
  • 配信についての説明。

    • ツイキャスで配信されたくないという方は運営さんにご連絡を。臨機応変に対応していただけますよ。
  • 次回開催予定の連絡。

    • 次回は3/3に開催予定。場所は未定。発表者も募集中。とのこと。皆さま、是非ッ

初心者セッション

初心者セッション1

初心者セッション 1 データ読み込み編
github.com

初心者セッション2

Beginner's Session2 --data manipulation--
speakerdeck.com

初心者セッション3

Rでデータを可視化する

www.slideshare.net

応用セッション

応用セッション1

RからGoogleCloudVisionAPI を使う

www.slideshare.net

niszet メモ

以下は手元にあったメモから。ちゃんとキャッチできているかはわかりませんのでご参考程度に。「これ違くない?」とかあったら教えていただければありがたいです~

  • マクドナルドは場所わかる?

    • 指定してないが、難しいかなという
  • 歪みとかが影響している?

    • あるっぽい
  • ロゴは登録してあるものは??

    • ちょっと良く分からない。ためしてみる
  • Web検出とは?

    • 本体にはあるけど、このパッケージにはなかった。pythonはあったけど、Rのサンプルコードはなかった。
  • レスポンスは?

    • 1秒以下とかで、軽い
  • 顔検出、個数以外、何か見れる?表情とか。

    • サンプルだと男女、笑顔かどうかとか。
  • お値段は?

    • 1000unitまで無料、1000unitあたりいくら。顔で1unit、・・・という感じ。
  • ebiイメージとは?

    • vertexを描画に使う。今回は使ってない
  • ロゴはまとまったやつを投げたところ8個かえってきた。

    • 画像を分割して投げたらそれぞれで返ってくるかも。

しゅくだいのかいとう

応用セッション2

機械学習と解釈可能性

speakerdeck.com

niszet メモ

以下は手元にあったメモから。ちゃんとキャッチできているかはわかりませんのでご参考程度に。「これ違くない?」とかあったら教えていただければありがたいです~

  • 回帰した時に、1番目と1000番目で重要度が変わっている場合は難しい?

    • 単調なケースはグローバル、凄い複雑だとローカルがよいか。
  • マルチクラスの分類は1:1? *1:rest になっている。

応用セッション3

パイプ演算子自作入門
パイプ演算子 自作入門

niszet メモ

以下は手元にあったメモから。ちゃんとキャッチできているかはわかりませんのでご参考程度に。「これ違くない?」とかあったら教えていただければありがたいです~

  • pipeで.を使うところで、渡す先に関数をネストしたときに.だと評価できない。

    • pipe使ったことがないので。。
  • 柔軟性を感じる。いつ追加されたのだろう?

    • Rの歴史に詳しくないので…
    • schemeを参考にしているらしい。lisprubyなど

LT

LT0

ランダムフォレストを使って探索的データ分析

speakerdeck.com

LT1

Apache Arrowから取り残されるR

speakerdeck.com

LT2

R Shiny 100本ノックの進捗

www.slideshare.net

LT3

佐渡島を見積もる

github.com

speakerdeck.com

LT4

vcdで日本語(3) long format が旧世界とのGateway

www.slideshare.net

LT5

森を見て枝を矯める

www.slideshare.net

補足記事があるそうです。実際の分析手順にご関心のある方はどうぞとのこ

kato-kohaku-0.hatenablog.com

元ツイートはこちらを参照しています。

LT6

R MarkdownPythonを書く
RPubs - R MarkdownでPythonを書こう

アナログRF CMOS集積回路設計[応用編] 5章を読む (前半)

1章はどうした…

niszet.hatenablog.com

例のように備忘録的メモ。

5章はICの構造の話で、5.1 CMOS回路の構造と5.2 半導体パッケージに分かれている。

  • 5.1.1 CMOS回路の構造 さほど枯れてもなく、先端でもない(といってもこの本が出たのがずいぶん前)ときの話かしら。
    マスクとレチクルの話、縮小光学系をレチクル、等倍はマスクと言われるという話は割と最近意識するようになりました。まぁあまり気にする必要もないのですが。

トリプルウェル構造の話、DNW(Deep Nwell)に囲われたp領域、RWと略しますがレトログレードウェル(retrograde well)と呼ぶのですね。正式名称知らなかった。実レイアウトではDNW/NWellでの囲い損ねに注意。Wellは界面に容量があるのでAC成分が抜ける点は注意(書かれている通り)

  • 5.1.2 配線 式(5.1)は間違いでは。 R=R_s\frac{L}{W} が正しい。配線は長い方が抵抗は高い。
    上層のメタル、グローバル配線が低抵抗ってのはおおむねどのプロセスでもたぶん同じですね。先端ほど顕著かなぁ。
    配線容量の式、参考文献3をいつか読もう。まぁ5.1.3にもあるとおり、LPE(Layout Parasitic Extraction)で抽出することが必要ですが、初期見積もりが簡易的に出来るならそれに越したことはない。

  • 5.1.3 ゲートフィンガー構造 fingerといえばLOD(Length of Diffusion)を気にしてしまいますが…。
    Lossを気にする場合、gate抵抗の低減、Cggの低減が必須なので、コンパクトに作るのは大事ですね。RFならなおさらなのでしょうね

先端プロセスだと単純に配線幅(とピッチ)が細く狭いので抵抗が高い。材料的にも既にCuを使用しているので下げようがないので、先端に行くほど寄生成分を気にする必要があるので注意。

5.1.4 ガードリング 大事です。囲いましょう。
囲いましょう。

5.1.5 静電気放電と保護回路 ESD(Electro-static discharge)、大切ですね。ざっくりとは言え、破壊モードのはなし、保護の基本的な方針と回路構成がコンパクトにまとまっていて読みやすい。
これだけで一日語れる話なので深追いしない。

5.1.6 PAD PADの話。基板抵抗による電力損失についてはラザビーの方のRFにも載っていた気がしますね。 Bonding構造次第で取れる構造が変わるので地味とは言えあらかじめ把握しておかねばならない。

5.1.7 LSIの信頼性 グラウンドバウンス-> ノイズの問題の話かと思ったらEMIの話でした。EMIも奥が深いですが、基本はループを小さくですね。大体どの本読んでも書いてあるはず。和訳されたものもあったはず。読みましょう。私は読んでない。

アンテナ効果、図5.11のように、上層に持ち上げてから解決する方法もありですが、理想的には直近で拡散層に接続したいところですね(まぁ全部は無理なのでこの方法は知っておくと良い)

エレクトロマイグレーション、EM。電流密度が上がっていく先端プロセスほど問題になりやすい。丸善のプロセスマイグレーションの説明がわかりやすかった記憶がある。

ダミーメタル。CMP(Chemical Mechanical Polishing)の平坦性確保のために必要。ただ、ダミーメタルは寄生容量や渦電流による抵抗増大、インダクタンス減少などを引き起こすのでこれもあらかじめ考慮しておくと良い(無茶言うなぁ)

5.1.8 スクライブライン オリフラ(オリエンテーションフラット)、12"だとノッチの方が一般的なんですね。

という感じでざっと読みましたが、こういう「回路設計のメインの話ではないが、それぞれが要素として存在していて、押さえておくとよい話」が書かれているのは大事ですね。
それぞれの項目についてより深く調べるなら別の本か詳しい人に聞く、かな。

それぞれ読んだことのある本があるはずなので、思い出したら備忘録として、また別に記事にしますかねー。

5.2はまた気が向いたときに。

(メモ) Rでmatrix(行列)の足し算では気を付ける

背景

MATLABで書かれたコードを、Rに移植したい。
しかし機能的に互換1なコードをRでまっさらから書くのはしんどい。
そうだ、pracma, signal, controlパッケージなどがあるじゃないか

niszet.hatenablog.com

うまくいかない…原因は行列の足し算にあった。

具体例

Rは要素数が1でもベクトル。ベクトルの足し算はリサイクル規則が働くので2つ目の例のように各要素に足される。
しかし行列はリサイクル規則が働かない。3番目のコードのように。
1行1列だって例外ではないのだ。4番目のコードのように。

# 行列
matrix(1:8,2,4)
#>      [,1] [,2] [,3] [,4]
#> [1,]    1    3    5    7
#> [2,]    2    4    6    8

# 行列にスカr...ベクトルを足す
matrix(1:8,2,4)+1
#>      [,1] [,2] [,3] [,4]
#> [1,]    2    4    6    8
#> [2,]    3    5    7    9

# 列数があわないので足せない
matrix(1:8,2,4)+matrix(1:4,2,2)
#> Error in matrix(1:8, 2, 4) + matrix(1:4, 2, 2) : non-conformable arrays

# こっちも
matrix(1:8,2,4)+matrix(1,1,1)
#> Error in matrix(1:8, 2, 4) + matrix(1, 1, 1) : non-conformable arrays

カルマンフィルタのMATLABで書かれたコードを、pracmaなどのパッケージの関数に置き換えてみたところ、これは常に行列を返すようで上記4のようなことが起こったのでした。
as.vectorでmatrix(1,1,1)を変換すると下記の通り。

matrix(1,1,1)
#>      [,1]
#> [1,]    1
as.vector(matrix(1,1,1))
#> [1] 1
str(matrix(1,1,1))
#>  num [1, 1] 1
str(as.vector(matrix(1,1,1)))
#>  num 1
matrix(1,1,1)
#>      [,1]
#> [1,]    1
as.vector(matrix(1,1,1))
#> [1] 1
str(matrix(1,1,1))
#>  num [1, 1] 1
str(as.vector(matrix(1,1,1)))
#>  num 1
class(matrix(1,1,1))
#> [1] "matrix"
class(as.vector(matrix(1,1,1)))
#> [1] "numeric"
typeof(matrix(1,1,1))
#> [1] "double"
typeof(as.vector(matrix(1,1,1)))
#> [1] "double"

is.vector(matrix(1,1,1))
#> [1] FALSE
is.vector(as.vector(matrix(1,1,1)))
#> [1] TRUE

is.matrix(matrix(1,1,1))
#> [1] TRUE
is.matrix(as.vector(matrix(1,1,1)))
#> [1] FALSE

後ろの方は蛇足ですが…。

MATLABのコードはおとなしくMATLAB上で動かすことにします2

なお、昨今の記事はreprex::reprex()を使用して整形していますが、エラーが出る箇所については基本的にはNAが返ってきています。それらの行だけは通常のコンソールに打ち込んで出てきた文字列を加工しています

Enjoy!!


  1. 互換というか、同じ動きをしてくれれば良いのです

  2. なぜはじめからそうしようとしないのか。いつもお前はそうだ

(1/15 追記) Markdown Preview Enhanced+pandocでdocxを出力する際のあれこれ(あるいはスタイル対応表)

背景

さて、前回の記事 niszet.hatenablog.com

niszet.hatenablog.com

の続きになります。

markdownはテキストファイルで書ける点が良いところですが、残念ながら現職ではそのメリットを活かす機会はこなそうです(まずgit使用してないからね…) そこで、「自分はmarkdownで書くが提出する際にpandocにてwordに変換してからリリース」という方法でなんとかしようという魂胆です。

なお、下記は書きかけ…というか、markdownを実際に変換して生成したdocxを眺めて調べた範囲で出来る分としては一旦closeです。が、対応関係が不明なものが結構あって、これはpandocのソースを読んでどれがどのスタイルになっているかを確認しないと手間がかかりすぎるな…という感じになっています。

もしお気づきの点があればご連絡…なくていいや、どこかにまとめてください…

なお、公式のマニュアルはこちら(英語)です。

Pandoc - Pandoc User’s Guide

reference.docxを準備する

さて、markdownからword文書への変換自体はpandocを使うことで出来るのですが、wordを出力する際、やはり気になるのはその書式です(正確には提出先の方が気にされますね)

公式のマニュアルにもスタイルを指定することが出来る点については触れられています。しかし、細かい内容、特にmarkdownのどの部分がどの書式(スタイル)に対応するのか?という点については公式以外含めて検索してもわかりませんでしたので(例によって)自分向けにまとめておこうという点が本記事のモチベーションとなります。

また、出来上がったword文書を一つ一つ、イチイチ手で修正していたらmarkdownで書くメリットが全然ないわけでして。そのため、あらかじめreference.docxという名前で書式のテンプレートを作っておき、そのスタイル情報を使用してdocxを生成させるのがpandocを使用したmarkdownからwordドキュメントファイル生成手順としては鉄板だと思います(同様の内容は検索すると沢山出てきます)

テンプレートとなるファイルの場所は --data-dir=DIRECTORY でDIRECTORYに指定したディレクトリにある、--reference-doc=FILE のFILEで指定したファイルになりますが、デフォルトでは C:\Users\USERNAME\AppData\Roaming\pandoc となるそうです。これはpandoc --versionで確認でき、私(niszet)の場合は

C:\Users\niszet>pandoc --version

pandoc 2.1
Compiled with pandoc-types 1.17.3, texmath 0.10.1, skylighting 0.5.1
Default user data directory: C:\Users\niszet\AppData\Roaming\pandoc
Copyright (C) 2006-2018 John MacFarlane
Web:  http://pandoc.org
This is free software; see the source for copying conditions.
There is no warranty, not even for merchantability or fitness
for a particular purpose.

でした。例と一致していますね。ここにreference.docxという名前でテンプレートとするファイルを置けばよいです。

なお、後述するように書式だけを使用するため、文書内部に文字や図が含まれていても問題ありません。ただし、秘伝のタレのようにして引き継がれたドキュメントの場合は使えないかもしれません(実際に過去使えなかった事があるため)

なお、reference.docxの元になるファイルは下記コマンドで生成できますが、

pandoc --print-default-data-file reference.docx > custom-reference.docx

生成されたcuston-reference.docxの中には書式を設定できるスタイルが一覧で書かれています。

f:id:niszet:20180112231450p:plain

公式のマニュアルには下記について書式の設定が出来る、とあります

For best results, do not make changes to this file other than modifying the styles used by pandoc: [paragraph] Normal, Body Text, First Paragraph, Compact, Title, Subtitle, Author, Date, Abstract, Bibliography, Heading 1, Heading 2, Heading 3, Heading 4, Heading 5, Heading 6, Heading 7, Heading 8, Heading 9, Block Text, Footnote Text, Definition Term, Definition, Caption, Table Caption, Image Caption, Figure, Captioned Figure, TOC Heading; [character] Default Paragraph Font, Body Text Char, Verbatim Char, Footnote Reference, Hyperlink; [table] Table.

後述の通り、実は生成されたスタイルはこれだけじゃないんですが…。

markdown中のどの記述がwordのどのスタイルに対応しているのか確認する

まずは先に生成した(custom-)reference.docxについて、設定されているスタイルを調べてみます。

こちらの記事を参考に、ファイル - オプション - 詳細設定から「下書き表示およびアウトライン表示でのスタイル名表示領域」を適当に設定(下記記事では20mm)します。 ciao.aoten.jp

すると、ツールバーの[表示]-[下書き]で表示するとreference.docxは下記のように表示されます。

f:id:niszet:20180114213916p:plain

これで各行に使われているスタイルの確認が容易になるはずです。ただし、文中にスタイルが変更されている箇所については正しく見ることが出来ません。
スタイルの確認はツールバーのホームで、スタイルとなっているところが選択されて表示されるのでわかるのですが、ここに表示されていないものは右下のマークを押して表示されていないスタイルも表示する必要があります(下図の見出し6の右下ね)

f:id:niszet:20180114214410p:plain

これで、今選択しているplot(iris)と書いている部分がSource Codeのスタイルであることがわかりますね。

なお、このスタイルの表示、アクティブになったスタイルにスクロールしてくれないので、ハイライトされている項目を自分で探す必要があります。面倒くさい。
word嫌いなのはこういうところだよ…

一覧(暫定)

気を取り直して現時点でわかっている範囲の対応表です。ご参考程度に。

[paragraph] Normal (1/15追記)

日本語wordだと「標準」スタイル。基本的にすべてのスタイルはこの標準スタイルを継承しているため、このスタイルを変更するとすべてのスタイルが変更されてしまうため、注意。
ただ、素の設定のままだと行間が1行になっていてすごい間延びしたスタイルになります。固定にするか、最小値で入れておくと良いと思います。
自分はフォントをMeiryo にしていますが、この場合はptをフォントのサイズx1.5くらいにしておくとまぁまぁ良い感じに文字が詰まります。

[paragraph] Body Text

日本語名は本文。基準スタイルは標準。次の行は本文。普通に文章を書いていくとこのスタイルが使用されるので、スタイルを変更するなら標準ではなくてこちらかな?

[paragraph] First Paragraph

日本語名は不明。見出し直後に*などでリスト化せずにそのまま文章を書き始めるとこの書式が設定される。基準スタイルは本文。次の段落は本文スタイルとなる。字下げなどに使うか?

[paragraph] Compact

日本語名だと行間詰め?

[paragraph] Title

日本語名だと表題。Markdown Preview Plusの場合、YAMLヘッダ中に記載することでTitleを生成できる。この点についてはいずれ別の記事に書きます。

[paragraph] Subtitle

日本語名だと副題。Markdown Preview Plusの場合、YAMLヘッダ中に記載することでSubtitleを生成できる。この点についてはいずれ別の記事に書きます。

[paragraph] Author

日本語スタイル名は不明。Markdown Preview Plusの場合、YAMLヘッダ中に記載することでAutherを生成できる。この点についてはいずれ別の記事に書きます。

[paragraph] Date

日本語スタイル名は不明。Markdown Preview Plusの場合、YAMLヘッダ中に記載することでDateを生成できる。この点についてはいずれ別の記事に書きます。

[paragraph] Abstract

Abstractを書いた場合に領域に設定される。Markdown Preview Plusの場合、YAMLヘッダ中に記載することでAbstractを生成できる。この点についてはいずれ別の記事に書きます。

[paragraph] Bibliography

参考文献に当たるスタイルだと思いますが、よくわかりません。保留。

[paragraph] Heading 1- 9

日本語名だと見出し1, 見出し2, ... のスタイル。markdownでは #, ##, ... に対応する。

[paragraph] Block Text

日本語名だとブロック。基準は本文。次の段落は本文。> で始まる行がこのスタイルとなる。基準スタイルは本文、次の段落も本文。

[paragraph] Footnote Text

[paragraph] Definition Term

現時点で生成する方法不明

[paragraph] Definition

現時点で生成する方法不明

[paragraph] Caption

現時点で生成する方法不明

[paragraph] Table Caption

現時点で生成する方法不明

[paragraph] Image Caption

現時点で生成する方法不明

[paragraph] Figure

現時点で生成する方法不明

[paragraph] Captioned Figure

現時点で生成する方法不明

[paragraph] TOC Heading

pandoc実行時に--tocをつけることで目次を入れることが出来るが、目次の見出し、目次1, 目次2, ... と目次作成に使用された見出しの階層関係に対応してスタイルがそれぞれ与えられる。

[character] Default Paragraph Font

現時点で生成する方法不明

[character] Body Text Char

現時点で生成する方法不明

[character] Verbatim Char

本文中に...のようにしてback tickで囲った部分はこの書式となる。

[character] Footnote Reference

現時点で生成する方法不明

[character] Hyperlink

日本語名もハイパーリンク。基準にするスタイルは図表番号(文字)

[table] Table.

現時点で生成する方法不明

例に含まれていないが実際には生成されるスタイル

ソースコード ...

これはSource Codeというスタイルになります。 生成したreference.docxにはこのスタイルは含まれていませんが、新たにこの名前のスタイルを追加しておいてdocxを生成するとこのスタイルが使用されるようでした。
reference.docxを不必要に修正するのはあまり推奨されないとは思うのですが、とはいえ書式気になるし…。

なお、このブロック、変数名や=、数字などそれぞれの文字に対して別々のスタイルが使われているようです。このあたりから生成物でチェックすることに限界を感じたので、現時点でのチェックは終了、pandocの中身を確認して対応表を作ることにします(いつ完成するかはわからない)

TOCをつけるにはYAMLヘッダを変更する

なお、MPEでTOCを有効にするにはYAMLヘッダ部分を下記のようにすると出ます。

---
title: "Markdown to Docx by MPE/pandoc2.1"
author:  niszet
date: Jan 13, 2018
output:
  custom_document:
    path: ./test.docx
    toc: true
---

本当はプラグインのsettingのpandoc optionでいけるはずなんですがうまく動かず。同様にyamlヘッダ部分に下記を追加しても無効でした。tocのtitleの設定も効かない。

    pandoc-args: [
      "--toc-depth", "6"
    ]

バグかなーって思うのですが、ちょっと自信ないのでissueとかはまだあげてないですが…。まぁ、mdが生成できれば自分でpandocに流し込めばいいからいいかなー

リストのスタイル (2018/01/15追記)

これはまた別の話ですが、wordではスタイルにリストを紐づけることが出来ませんね?(たぶん。)
pandocのソースをチラ見した感じで、このインデントが固定値になっているっぽいです。そのため、現状ではスタイルを定義したりしてリストのインデント深さを変更することは通常の使い方であれば難しいのだと認識しています。生成後に処理するのでVBAでやるのかなぁ…
ただ、reference.docxにリストを定義しておくと、その設定は引き継がれるようです。そのため、生成したdocxを開いて、自分で定義したリストのスタイルを反映させることで対応は一応できるのかな、と思っています。TOCを入れた場合、開くと確認ダイアログも出てしまいますし、まぁdocx大量生成する機会はそうそうないでしょう、ということで、ここは諦めてボタンポチポチしましょう。

reference.docx が互換モードで開かれる(2018/01/15追記)

これもよくわかりませんが、上の方に書いた方法で生成したreference.docxは互換モードで開かれるようです。
このまま使い続けることも出来ると思いますが、一応変換した方が無難かな。ファイル->情報から 互換モードと書かれた文字の近くの、変換ボタン(アイコン)を押して変換しましょう。確認ダイアログが出ますが、OKを押して変換しましょう。なんか今テーブルが動いたような…?
細かい差分を把握していないのですが、互換モードと通常のdocxだとどうも見栄えが微妙に変わるようです。なので、スタイルを設定する前に変換しておいた方が良いでしょうね。

Rで出来ませんか…?

MPEと同じことをRmdでもやりたいと思っています。が、knitまわりの理解がまだまだなので…。
これでreproducibleなドキュメント生成環境に出来るのか?というと微妙ですが…。まずはMPE使いこなしてからかな。Rmdはまだpandoc1.x系で動いてますので、移行が終わったころに本気出せるように今からコツコツと調べておきましょう。

FPGAの世界にこんにちは…できていない…

今日こそLチカさせようと思ったものの…

こんばんは。
この土日はだらだらして過ごしてしまっていますが、まぁ少しは何かしないと…と先日購入した

niszet.hatenablog.com

を使って何かしようと思ったのですが…

ライセンスのアクティベーション等はうまくいった

インストールしてからも放置していたので、ライセンスコード入れてアクティベーションまではやりました。

で、適当にhellow worldしようと思ったのですが、

make pre-build main-build 
sdsoc_make_clean Debug
 
Building file: ../src/hellow.c
Invoking: SDSCC Compiler
sdscc -Wall -O0 -g -I"../src" -c -fmessage-length=0 -MT"src/hellow.o" -MMD -MP -MF"src/hellow.d" -MT"src/hellow.o" -o "src/hellow.o" "../src/hellow.c" -sds-sys-config standalone -sds-proc a9_0 -sds-pf "zybo"
[[: not found
[[: not found
[[: not found
/cygdrive/c/Xilinx/SDx/2017.2/bin/setupEnv.sh: 33: Syntax error: Bad substitution
make: *** [src/hellow.o] エラー 2

こんな感じで、setupEnv.shでエラーって何ですかね…。

ということで、cygwin入れる(上記pathがcygwinぽい)かlinuxでやるかした方が良いのかなぁ…という感じで止まってしまいました。あとで振り返るとなんてことぁないんでしょうが…記録のために書いておきます。そして、しらばくまた触らないんだろうな…