niszetの日記

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

(OOXML) 文字の網かけ(メモ)

必要最小限の構成が分からん…。

ひとまずいつものように書いてunzipして抜き出してみるとこんな感じ。

<w:p w:rsidR="00360B6D" w:rsidRPr="00E40D32" w:rsidRDefault="00360B6D">
  <w:pPr>
    <w:rPr>
      <w:shd w:val="pct15" w:color="auto" w:fill="FFFFFF"/>
    </w:rPr>
  </w:pPr>
  <w:r w:rsidRPr="00E40D32">
    <w:rPr>
      <w:rFonts w:hint="eastAsia"/>
        <w:shd w:val="pct15" w:color="auto" w:fill="FFFFFF"/>
    </w:rPr>
    <w:t></w:t>
  </w:r>
</w:p>

shdが本体のようだが、valを指定する必要があるのか?とか、pPrは必要なのだろうか?とかがわかりませんね。なくても良さそうな気はしますが。

そもそもPandocで変換された場合、pってidつくのだろうか?とか、調べなくては分からないことが多い上に、ドキュメント化されていないものばかりで闇だ…

とりあえず続けていく。

(OOXML) ルビ周りのメモ

OOXMLは仕様が良く分からないので掘り下げていく…

さて、RMarkdownからWord文書を作るにあたって、まだ色々とWordの機能を使いこなせていませんでした。今年はOOXMLの要素を少しずつ解読していこうと思っています。とりあえずルビから。

適当にWord上でルビを振ってみて、ooxmlを見てみるとこんな感じ。

<w:p w:rsidR="003817DF" w:rsidRDefault="000E3067">
<w:r>
<w:ruby>
<w:rubyPr>
  <w:rubyAlign w:val="distributeSpace"/>
  <w:hps w:val="10"/>
  <w:hpsRaise w:val="18"/>
  <w:hpsBaseText w:val="21"/>
  <w:lid w:val="ja-JP"/>
</w:rubyPr>

<w:rt>
  <w:r w:rsidR="000E3067" w:rsidRPr="000E3067">
  <w:rPr>
    <w:rFonts w:ascii="MS 明朝" w:eastAsia="MS 明朝" w:hAnsi="MS 明朝" w:hint="eastAsia"/>
    <w:sz w:val="10"/>
  </w:rPr>
  <w:t>ひらがな</w:t>
  </w:r>
</w:rt>

<w:rubyBase>
  <w:r w:rsidR="000E3067">
    <w:rPr>
      <w:rFonts w:hint="eastAsia"/>
    </w:rPr>
    <w:t>平仮名</w:t>
  </w:r>
</w:rubyBase>

</w:ruby>
</w:r>
</w:p>

eastAsia系がちょっと分からんですね。が、ルビの設定関係は比較的読みやすいですね。rmd2docxsupにも簡単に実装出来そうです。

とりあえず構成は分かったので、設定との対応関係をまとめていこう(今はメインPCがないのでやれない)

自己紹介のページがなかったので

2018年を振り返らず。

さて、いろいろと活動の幅を広げた結果、私はいったい…?となってきたのでちょっと整理します。

現在はR界隈と電子工作/ハードウェア自作界隈やインフラ勉強会界隈に顔を出しつつ、Pandocまわりの活動が増えてきた気がします。お仕事はCMOSアナログ回路設計のはずなんですが、大学は化学を専攻して、化合物半導体の結晶成長とかやってました。この時点でよくわからんですね。

とはいえ、ソフトに強いわけでも統計に明るいわけでもなければ化学のことは忘れたし回路設計は面倒くさいので出来ればやりたくないなーぐらいの人です。こんな感じなので特に何が強いというわけでもなく、なんかあっちへフラフラこっちへフラフラしている感じです。今後もきっとこんな感じですね。

アイコンはタンゴに良く使われる楽器なのですが、弾くのが恐ろしく難しいので1曲を習得するのに長い時間がかかるため、最近は全然弾いておりませんね。弾きたい気持ちはある…

音楽はバロックかボカロか劇伴をよく聞きますが、これに限ってるわけではないですね。

そんな感じでとりあえず振り返りはこの間書いたし(適当)、自己紹介のページなかったので、良し。

みなさま良いお年を~

コミケ(C95)行ってきた

2日目は技術系島を回っているだけで終わる。

さて、冬コミですね。1日目は欠席でしたが、今回は2日目が本命、3日目も外せないので今日は早く寝ようと思います。

戦利品は約20センチくらいだと思う。メジャーが手元にない。

活動を続けていると、どんどんと知り合いが増えて、場所をめぐって話をして…とやっているとあっという間に時間がなくなりますね。

そんなわけで?サークル参加申込書をもらってきました。サークル参加すれば準備の時に話が出来るかもしれませんね(そうか?

というわけで、何を書くか、技術書典との差異化はどうするのか?みたいなことを考えよう、明後日から。。。

戦利品の感想はいずれ呟き次第ここにぶら下げていきます。

以下、感想です。

レジェンドアフェス Vol.1 昼の部に行ってきました(ふりかえりです)

至福の時でした…。

そんなわけで、11/10はモーションブルー横浜に行って、大好きな劇伴の音楽を堪能してきたのでした。もうずいぶんと前になりましたが…。

所属作家陣によるライブ『Legendoor FES. vol.1』の開催が決定! | Legendoor | レジェンドア

やはり好きな曲を生演奏で聞けるってのはすごい良いですよ(語彙力がないので伝えられない…)

最近は、以前よりは真面目に劇伴曲聞いていないですが、たまに思い出したように聞いたりしていますね。

しかしやはり林さんの曲は良い…。良いので、みな、是非…聞いて…。

Vol.2も開催してほしいですねぇ~。良い反応が返ってくれば、開催あるかなって思ったので簡単ですが日記に書きました。

全体的にバイオリンが目立つ曲が多かったかな。あれを昼夜弾きっぱなしはすごいな…って思いましたね…。

ちなみに、夜の部は公式がYouTubeで公開していますので、視聴、是非…是非…ッ!

www.youtube.com

(Pandoc) Pandoc ASTを出力して中身を確認していく(1回目)

そもそも始めに全ての記法を含んだファイルがあればよいと思うのよね…

ということで、以前宣言だけしていたコレをやっていきます。

niszet.hatenablog.com

PandocのPATHが通っている場所で(あるいはPandocの絶対パスを指定して)下記のように実行してみます。

pandoc.exe --from markdown hoge.md --to native --output hoge.ast

ここで、入力ファイルhoge.mdは下記のように書いたものを使用します。ここでは見てもわかりませんが、line2の後ろには半角スペースが2つ入っています(改行)。line3のバックスラッシュ()の直後で改行する方法も変換後に改行となる記法ですね。

# Header1
line1
line2  
line3\
line4

line5

生成された、hoge.astは下記のようになります。

[Header 1 ("header1",[],[]) [Str "Header1"]
,Para [Str "line1",SoftBreak,Str "line2",LineBreak,Str "line3",LineBreak,Str "line4"]
,Para [Str "line5"]]

パッと見、記号の意味は分かりづらいですが、対応関係から少し読み解けますね。#の行はHeader 1に変換され、そのあとの文字列Header1がStr型で含まれているように見えます。

次の行はParaとなっており、パラグラフ(段落)として扱われていますね。ここで、line1とline2の間はMarkdown中で単純に改行しただけ(変換後に改行にならない記法)でしたが、間にSoftBreakというものが入っています。これの挙動をLineBreakと同じにすればMarkdown中の単純な改行も変換後に改行に出来そうだなー…とか見えてきます。

lin4とline5の間には空行が入っているため、別の段落として扱われていることがわかりますね。

と、こういった形で--to nativeを指定することでPandocが内部的にどのようにデータを保持しているのか?がわかります。本当?はReaderやWriterを理解してく方が良いのですが、実装が変わることがあるので、まずはデータ構造を把握した方が良いかなと思っています(処理が変わってもデータ構造は大きくは変わらないため)

このあたりの知識は自作のフィルタを作ろうと思ったときに役に立つのかなと思います。日本語の資料だとこのあたりですね。

Pandocチュートリアル 第2回 HaskellでPandocフィルタを実装しよう

来年はこの辺りから順次やっていきます。

Enjoy!!..

2018年の振り返り

手抜き…

さっき呟いたので、これですね。

あとは明日、明後日のコミケであいさつ回りをして、実家に帰れば完了ですね。

今年もあと少し!頑張っていこう~