niszetの日記

細かい情報を載せていくブログ

無職()になりました

節目なので

そんなわけで明けましておめでとうございます。 令和の時代も色々とやっていきたいですね。

さて、私事ではございますが、去る4月30日をもって、11年ほど勤めた職場を去り、無職()になりました。

そもそも私は何屋なのか…。

このブログではRかPandocか電子工作かみたいな感じですが、本業はCMOSアナログ回路設計の雑用系エンジニアでした。 以前、ちょっと書いた気もしますけどね。

色々な部署とのやり取りをすることが多く、回路自体よりもその使われ方だとか、情報の管理とかの方にそれなりに時間を割いていた気がします。 だもんで回路設計自体は未だよくわかりませんね…。まぁ今後も引き続き頑張っていきましょう。

色々

不思議なもので、退職を決意するとそれ以外のこと、会社への不満とかは割とどうでもよくなってしまうのですよね。意識はもう次に向いているからでしょうか。 その分、移管は割と苦痛でしたねぇ…。延々とエクセルにシミュレーション結果を張り付け、整形、加工するということを1か月くらいやっていました。まぁエクセルにはちょっと慣れたけど、繰り返し作業には向いていませんね…。データシート作成用のRパッケージとか欲しくない…?私は欲しい。

音楽性の違い

2年ほど前に異動があって、そこでしばらくやっていたのですが、元々アウトローな部署にいたせいか、環境自体はとても良いグループなんだけども、仕事の進め方が全然あわなくてそのあたりも続けるの厳しいなぁという気持ちのひとつでした。

情報が口頭で伝えられることが多く、わかってない状態で口頭で言われたことをメモして…というのはやっぱり無理だよねって思うのでした。繰り返し伝える必要のある情報はちゃんとドキュメント化した方が良いと思いますね。

肉x2

平成の終わりに、辞めた先輩、辞める私、辞める予定の先輩で美味しいお肉を食べてきました。2日も。美味い肉はやっぱり美味いですね。 でも、アラフォーにもなってくると、段々と食べられなくなっていくなぁ…という実感でした。若い人は美味しいお肉食べてください。

書くことなくなっちゃった。

まぁ、このブログ的には特に何も変わらず…と思いますので。今後もまったりと。

ではでは。

highlightはAST化したあとに処理されている…?

filterでASTを変えてしまうと反応しなくなる…

本当はWriterとか見ないといけないんですが、たとえば

"C:/Program Files/RStudio/bin/pandoc/pandoc" code2.md -t native -f markdown --highlight-style tango

"C:/Program Files/RStudio/bin/pandoc/pandoc" code2.md -t native -f markdown

のようにhighlight-styleのありなしでnative形式で出力した際に結果に差異がないことが確認できます。

なので、多分highlightの処理はAST化されたあと、Writer側にあるはずなので、LuaのFilterでASTを解釈してhtml等に変換してしまうと以降の処理でhighlightされなくなってしまうのだろうな、と。

Codeに分解した場合でもhighlightは効いているので、行番号処理だけはあきらめるというところだろうか…

段々混乱してきた…

PandocでDivにCustom Styleをあてたときのnative形式の出力

とりあえず困ったらnative形式で見てみるべし。

さて、最近Luaフィルタをいじっていますが、やりたいことは特定条件下でいい感じのスタイルを適当に当ててくれるフィルタを作ることです。具体的にはCodeがfootnoteやHeadingsに入った場合に専用のスタイルを勝手に割り当てて欲しいわけです。もちろん、専用のスタイルはあらかじめWordのテンプレートの方に準備してやる必要がありますが。

…ということで、カスタムスタイルを当てた場合のnative形式での出力を確認してみる。

たとえばこんな感じの記述は

::: {custom-style="Poetry"}
aaa
:::

こんな感じになる。

,Div ("",[],[("custom-style","Poetry")])
 [Para [Str "aaa"]]

Divの下にPara、Paraの下にStrが来るようだ。単純にDiv直下に来るわけではない。ということで、各Block要素、Inline要素についてどの入力パタンであればどうなるかというのを一度見ておく必要がありそう。本当はHaskellのコードを読み解いた方が良いのだろうけども、それはそれで抜けがありそうなので。

ということで、一通り調べるとそれで1冊になってしまいそうですね。書きましょう、書きましょう…。

Enjoy!?

indented codeに行番号をつける

偶然見つけたので書いておく。

atusyさんのこの記事に関連して。

blog.atusy.net

Rのchunk内ではattributesを渡せない…?

前回書いた内容はMarkdownのfenced codeなどのcode系の記法が行番号を扱えるかどうか?の確認であって、Rのコードブロックで取り扱えるものではなかった。これは、Rのコードを実行後、その生成物をMarkdownに埋め込む処理をR/knitr/rmarkdownが対応しているが、コードの表示を行う('echo=True`)ようにしても、チャンクオプションとして与えられるのはclassのみだからであった。

今まで調べた範囲では、チャンクオプションとしてclassは与えられるものの、startFrom=10のような属性(attr)は与えられないようである。

もう少しコードも含めて調べてみるが望みは薄い。

属性をclassとして無理やり渡すことは出来るが、markdownをPandocに与える前に対応する必要がある。具体的には.startFrom=10というclassで与えられるので、これから.をとればよい。これはluaのfilterで対応できる(class名に=があった場合、先頭の.を取る、という方法で)

もちろんこれはpost knitのタイミングで対応しても良い。いずれにしてもPandocに渡す前に対応する必要がある。

一方で、Pandocはインデントされたコードブロックに対して、クラスを与えることが出来る。下記の、

--indented-code-classes=CLASSES

を与えればよい。具体的には、

output: 
  html_document:
    pandoc_args: 
      - --indented-code-classes
      - numberLines
    highlight: tango

とすることで、インデントされたコードブロックにnumberLinesというclassが与えられ、このclassを持ったコードブロックはhighlightが有効になっている場合は行番号が付与される。

ということを見つけたのだが、肝心のRの実行コードに対する行番号付与(正確には行番号の先頭の数字の付与)はこの方法では対応できないのであった。

使う場面があるのか不明なのだが、見つけたのでメモしておく。

Enjoy!!

JavaScriptを使ってR Markdownで生成したHTMLドキュメントに行番号をつける例

learnrパッケージにあった。

見つけたのでとりあえずのメモ。

learnr パッケージのサイトに行くと、コードが行番号付きで埋め込まれている。

rstudio.github.io

htmlのソースを読むと、jsで対応していることがわかり、コード自体はパッケージに含まれているようだ。

github.com

ということで、JavsScriptを使用して行番号を表示するのはこれを参考にする(あるいはライセンスに注意して流用する)ことで対応できそうである。

というメモ。

Enjoy!!

pandoc.Attrを使う際の注意

注意というか…仕様がわからない…。

結局、SOを見て解決した。

stackoverflow.com

ここにあるように、

attrs = pandoc.Attr("", {}, {{"lang", "es-SP"}})

と、3番目の引数は{{}}として囲わないとダメだった。理由はよくわかっていないが、動いたので正しい。tableのtableにする必要がある…?そんな記述どこにもなかったと思うのだけど…。

とりあえず、これで所望の挙動はしたので良いのだが、もうちょっと調べないといけませんね。

(Pandoc) inline_code_attributes option

またPandocの話。

すっかり忘れていたが、inlineのcode chunkであってもattributesを付与できる。

`plot()`{.r #hogge}

こんな感じに。Verbatim(Pandoc native的にはCode)扱いなのであるが、.rのように言語指定しておけば、highlight: tangoなどでハイライトされる。本文中にコードを埋め込みつつハイライトを有効にしたい場合は有効ではないかと思います。

Enjoy!!