niszetの日記

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

(Pandoc)docx出力時、テンプレートのとじしろの設定が反映されるようになった

バグの解消

Pandocはテンプレートのスタイルなどを使って、生成するファイルの見栄えを制御出来ますが、Pandocがテンプレートとなるファイルからその情報を抜き出すように処理を書いているものだけが対応していて、全ての設定が反映されるわけではありません(が、概ね反映されるはず)

Pandoc 3.1.6より、ページ設定の余白のとじしろが反映されていないバグが修正されました。

github.com

こういった細かいバグはまだあると思いますので、見つけたらpandoc-discussやPandocのIssueにどんどん報告していきましょう!

(Pandoc)docx出力形式でもsvgファイルを使うことが出来るようになった

Pandoc 3.1.10より。

以前から機能的には出来そうな雰囲気であったが、バグがありそれが対応された結果、docxファイルにsvg画像を使えるようになった。

対応するIssueはこれ。

github.com

svgファイルを取り扱うにはpandoc本体とは別にrsvg-convertが必要になる。linux環境であれば、librsvgを入れればよいでしょう。

qiita.com

Windowsの場合はpandocのinstallのマニュアルにあるようにChocolateyを使うのが良さそう。Pandocも入れられる。

pandoc.org

有償版もあるが、コミュニティ版?でも大丈夫。

community.chocolatey.org

PowerShellのターミナルを管理者権限で実行し、以下の手順に従ってインストールするだけ。

chocolatey.org

その後、choco install rsvg-convertでインストールできる。pandocもchoco install pandocでインストールされるのは最新のバイナリだった。

PowerShell上でパスが通ってるかはこちらで確認できる。gcm rsvg-convertとか gcm pandocで確認できる。

win.just4fun.biz

Chocolateyでインストールした物もパスは通っているので、cmdやRMarkdown/qmdからも見えるため、あとは普通にPandocでsvgファイルを含んでいるmarkdownファイルを変換してあげればよい。

rsvg-convertはsvgを扱う上では現状でば最適ぽいので、他の用途でも問題なく使えるだろう。下記の記事も参考にした。

qiita.com

PowerShellでWord文書をpdfに変換する際に参考にしたサイト

少しだけトラブったのでメモを残します。

Wordからpdfファイルを生成する際、手でやるのは大変なのでバッチでやりたいと考えました。Windows上での使用が前提なので、PowerShellで記述例がないかを探していました。下記の記事のコードがほぼそのまま利用できました(tmpディレクトリはワーキングディレクトリに変更した)

projectgroup.info

このコードを実行する際、このシステムではスクリプトの実行が無効になっているため、...というエラーが出ました。権限の問題のようで、調べて下記の記事にあたり、実行ポリシーを変更しました(-Scope Processを指定する方法です)。この前に管理者権限での実行もしましたがうまくいかず(変更後は試していません)

qiita.com

この変更により実行可能となりましたが、今度は以下のエラーとなりました。

"Visible" の設定中に例外が発生しました: "型 'Microsoft.Office.Interop.Word.ApplicationClass' の COM オブジェクトをイン
ターフェイス型 'Microsoft.Office.Interop.Word._Application' にキャストできません。IID '{00020970-0000-0000-C000-0000000
00046}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため
、この操作に失敗しました: 要素が見つかりません。 (HRESULT からの例外:0x8002802B (TYPE_E_ELEMENTNOTFOUND))。"

このエラーの内容で検索して、下記の記事にあたり、上から試そうとしたところ、最上段のOfficeの修復の対応で問題が解決しました。

elleneast.com

これは割とあるエラーのようで、エクセルなどでもヒットしますね。

qiita.com

Officeの修復については下記のページにある手順で進めました。

support.microsoft.com

クイック修復で直りました。数分待ちます。

最初の記事にあるcmdからbatを呼ぶ方法では権限の設定を変える必要があったので、そちらはやらず、これらを設定後、PowerShellを起動し、対象のディレクトリ上で.\mkpdf.ps1のように.\をファイル名に付けた状態で実行して実行できることを確認しました。 また、ps1のファイルを右クリックしてpowershellで実行でも同様に動くことを確認しました。

今のところ完全自動でやる必要まではないのですが、完全自動でやる場合は権限の変更が追加で必要かと思っています。ひとまず出来たので、至った手順とトラブルについてまとめておきました。

(Pandoc)docx変換時にabstractのタイトルを変更することが出来る(3.1.4~)

そもそもAbstractのタイトルが増えていたのか

pandoc 3.1.2から、Abstractのタイトルが設定されるようになっていたそうだ。

github.com

しかし、このタイトルが常にAbstractで、変更したいあるいは不要なユーザにとっては邪魔な物であった。Pandoc3.1.4からはこれを変更することが出来る。

github.com

また、このタイトルについてはYAML上ではabstract-titleとして指定出来る。

abstract-title:  あぶすと!ちゃんとかけよ!
abstract: 概略をかく

変換結果は以下のようになる。

スタイルは Abstract Title が指定されるようだ。Abstractの本文(?)は Abstract のまま変わらず。

なお、abstractがなく、abstract-titleだけが存在しても、タイトルは表示されない。値が無い状態でもよいのでabstractがあれば表示される。なお、値が入っていない場合はYAMLの文法チェックをしてくれるエディタの場合は警告が出る(RStudio IDEなど)が、(いまのところ)問題なく変換はできている。

YAMLのパーサの動きが直感と異なるため、要調査であることがわかった。いずれ確認します。

(Pandoc)Pandoc 3.1.10 から、脚注のブロック引用のスタイルがブロックからFootnote Block Textに変更された

今年1本目。

久々の更新となる。Pandocはいつの間にか機能が増えている。

今回は脚注に置かれたブロック引用に、それ専用のスタイルが当てられたという更新について。ブロック引用とは、

> このように
> 複数の行にまたがった内容を
> 引用とわかるように書くための記法

のように、行頭に>を置いて複数行の引用文を表現する。具体的には次のように記述すると

ここだよ [^1][^1]: 
> このように
> 複数の行にまたがった内容を
> 引用とわかるように書くための記法

以下のようになる。スタイルが固有のモノになっていることがわかる(以前は表示名はブロックとなっていた)

なお、見た目はこのように改行されないようである。あくまで、長い文章を引用するときの便利な記法程度に考えておいた方が良さそうである。また、インライン脚注の場合はブロック引用が解釈されないようで、そちらでは使用出来ない。

元となるIssueは下記。

github.com

IRUMA BASICを開発しています。

自作のインタプリタです。

まだまだ粗は多いですが、IRUMA BASICという自作のインタプリタを作成しています。

こちらはキャラクタ液晶のPLCDに文字を表示した様子です。これだけだとなんだかわからない気もしますが…。

久々に、何かを作っている系の記事を書くことが出来ました。

今後、こちらでIRUMA BASICの開発進捗などを報告していきたいと思います。

スプラ3でS+9、XP1800を達成した

久々の記事がスプラ・・・

色々と忙しくて更新が滞っていました。

そんな中、スプラは一応毎日コツコツ続けていて、5月末までにS+9、XP1800(やぐらのみ。わかば使用)を達成しました。最終的な平均XPは1550くらいだったかな?ホコとアサリが足を引っ張ってます。 昇格戦、やぐらでやればいけた感じがありましたが、残念ながらS+10未達のため、今シーズンはSスタートです。

闇鍋と言われがちのシーズン初めですが、意外となんとかなっており、実力がついているのかなという気もしています。

継続は力なり。

今シーズンはS+10達成、XP2000、平均XP1700くらいを目指して頑張っていこうと思います。