OOXML
コード読んだけどまだよくわかってない。 HRはそもそもBlock要素なんですが、ParaなどのBlock要素は正しくBlockQuote中に取り込まれるので、段落要素であることが原因ではないとはわかっていますが、コード見てもまだよくわかってません。docx形式で出力する…
linkスタイル死すべし慈悲はない 以前からPandocのdocxのスタイルについて調べていましたが、最近はHaskellのコードも読んでいるので以前よりもさらにわかってきました。 以前… niszet.hatenablog.com いつかちゃんとまとめたいですね…。 でもそれは大変なの…
時間を無駄に溶かしたのでメモをする。 はじめにPandocじゃない話を書いておくと、Rは"\uxxxx"でunicode文字を入れることが出来る。"\u2603"とかやれば☃だ。大文字のUを使えば、4桁で済まない文字も入れられるし、上4つを0で詰めておけば先と等価な文字コー…
誰得だよ… マニュアルの何処にも書いてないと思いますが、docxに出力するときにSpanに特定のclassを与えることでWordのコメント機能を使えるということに気づきました。 入力にこんな感じの文を与えてdocxに変換します。 aaa[bbb]{.comment-start}ccc[ddd]{.…
という気付きが結構前にあったらしい… 下書きのまま放置していたので、忘れてしまわないうちに書く。 stylexパッケージ、docxのstyleをR上で加工しやすくしようと思って作っていたのですが、docxファイルを記述しているOOXMLは、w:nameのようにw:のnamespace…
現れたり消えたりするタグ theme系の情報の取得はちょっと癖がありますね。ついこの間テーマ色を使った方が良いと書いたとはいえ…。 テーマの色は、こんな感じで色選択で出てくるときに上の方に出てくる色のことを指しています。 で、縦方向に段々と色が濃く…
MS Word上で値を変更して、xmlから値を引き抜いてきて表示値との対応表を作る簡単なお仕事 各項目ごとにまとめないといけないのでキリがありませんね、これ。 でも、やっていきです。今はpPr下のshdの値をまとめています。特徴的な名前なのでどこかに定義済…
テーマを変更するだけで同じ設定した箇所は一括で変更されるので。 OOXMLの解析をしています。OOXMLのタグ構造は何かしらの資料で見ればいいものの、実際に何が値として設定されているかは実際に作ってみてみないとわからないなーという感じなのです(何か方…
忘れないうちにどんどんやる 先日書いていたコレ、 niszet.hatenablog.com ある程度形になったので、パッケージ化しました。 github.com しかし、現状では使い方がわからないと思うので、usageというか、使用例をいくつか書く予定。内部の関数名などは今後大…
大きすぎませんかね…? 段落スタイルで、段落の前後にスペースを取ることができます。この値はMS Word上での表示値の20倍の値になっています。480が入っていたら24ptということです。 これも実際に動かしてみないとよくわかりませんね…。
こちらもメモレベルの話。 Wordがどのようにooxmlを解釈しているかはooxmlを直接書き換えて結果がどうなるかを見ていく必要がある。ドキュメント化されているものもあるだろうが、探すよりも見たほうが早い。xmlとしては箱の形は決まっているが、値をどのよ…
私的メモがしばらく続きますが… ooxmlで書かれたdocxファイルのスタイルの一括修正が面倒なのでRでやろうと思ってコードを書いています。基本的にはxml2パッケージを使う。あとはofficerの関数を一部使わせてもらう形(処理そのものはofficerと異なるので全…
これはおそらくWordの仕様 PandocのWordのテンプレートファイルを調べています。 Pandocが生成する、reference.docxには何点か注意しないといけない点があり、そのうちのひとつがStyleIdがWord文書保存時に変更されてしまう、というものです。これはそのスタ…
コミケが終わったので技術書典に向けて走り始めます。 次回は無謀にもWordのスタイルの話をしたいと考えていますが、そのためにはまずWordをxmlに分解してその中身を見ていかねばなりません。 私が一番手馴れているのがR言語なので、xml2パッケージを使って…
ようやく問題が何かがわかってきました… 半年くらい前からK4氏が見つけたこのIssueが解決しておらず、 github.com 春の技術書典で話聞いたときはふ~んって思ってましたが、掘り下げてみるとこれは結構厄介な問題でした。ので、とりあえず議論に参加してみた…
今日もunzipして整形の日…。 Wordには行番号を振るという、いつ使うのかわからない機能がある。これはSection毎に振られるようで、w:sectPrの中に書かれているw:lnNumTypeが対応するようだ。行番号を振らない場合はこの行が存在しない。 <w:sectPr w:rsidR="000A7504" w:rsidSect="005518E1"> <w:pgSz w:w="11906" w:h="16838"/> </w:pgsz></w:sectpr>
そもそもそんな機能があったのね 本文のはじめの文字を大きな文字にして表示することをドロップキャップというのですね。Wordでもこの機能があり、これを例のようにooxml部分を抜き出すとこんな感じだった。 <w:p w:rsidR="00703FE7" w:rsidRPr="00703FE7" w:rsidRDefault="00703FE7" w:rsidP="00703FE7"> <w:pPr> <w:keepNext/> </w:keepnext/></w:ppr></w:p>
いつもの。 <w:bookmarkStart w:id="0" w:name="_GoBack"/> <w:p w:rsidR="00C73A63" w:rsidRDefault="00C73A63"> <w:r> <w:fldChar w:fldCharType="begin"/> </w:r> <w:r> <w:instrText xml:space="preserve"> </w:instrText> </w:r> <w:r> <w:rPr> <w:rFonts w:hint="eastAsia"/> </w:rPr> <w:instrText>eq \o\ac(</w:instrtext></w:r></w:p></w:bookmarkstart>
いつもの。 抜き出してみた。 <w:p w:rsidR="00C73A63" w:rsidRPr="00C73A63" w:rsidRDefault="00C73A63"> <w:pPr> <w:rPr> <w:bdr w:val="single" w:sz="4" w:space="0" w:color="auto"/> </w:rPr> </w:pPr> <w:r w:rsidRPr="00C73A63"> <w:rPr> <w:rFonts w:hint="eastAsia"/> </w:rfonts></w:rpr></w:r></w:p>
いつもの。 抜き出してみる。highlightで指定しているようだ。 <w:p w:rsidR="00C73A63" w:rsidRDefault="00C73A63"> <w:r w:rsidRPr="00C73A63"> <w:rPr> <w:rFonts w:hint="eastAsia"/> <w:highlight w:val="yellow"/> </w:rPr> <w:t>い</w:t> </w:r> </w:p> rFontsのhintってやっぱり必要なんだろうか。optionalで指定するにしても、毎回やるのは面倒くさいのではという気持ち…。rmd2docxsupでどう実装す…
必要最小限の構成が分からん…。 ひとまずいつものように書いて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:rfonts></w:rpr></w:r></w:p>
OOXMLは仕様が良く分からないので掘り下げていく… さて、RMarkdownからWord文書を作るにあたって、まだ色々とWordの機能を使いこなせていませんでした。今年はOOXMLの要素を少しずつ解読していこうと思っています。とりあえずルビから。 適当にWord上でルビ…