マージされたら褒めてくれ。
issueはこれ。
そういえば、テンプレートから反映されないなコレ…ってことでここ2-3日うにょうにょHaskell書いてPRを投げました。
さてどうなるかなー…
今回のことでまた理解が深まったので、ODT形式の方もそろそろ再開したい(今までよくわからんかったことが今回のことで出来ることが分かったので)
issueはこれ。
そういえば、テンプレートから反映されないなコレ…ってことでここ2-3日うにょうにょHaskell書いてPRを投げました。
さてどうなるかなー…
今回のことでまた理解が深まったので、ODT形式の方もそろそろ再開したい(今までよくわからんかったことが今回のことで出来ることが分かったので)
現在、Pandocの脚注の区切り線をテンプレートから持ってこれるように更新をしています。それをどこまでやればよいのかを検討するために調べていたら思った以上に色々設定できることが分かったのでメモを残しておきます。
ツールバーの表示を押した後にリボンの左側にある下書き(下図)を選び、
次にツールバーの参考資料を選択して、リボンの脚注にある注の表示を押すと下の方に編集画面が出るのでここで修正をする。
通常使う脚注は、脚注の境界線なので、これを図のように選び、編集する。長い棒が欲しければ「脚注の継続時の境界線」からコピーしてくると良い。
が、図のように文字を入れたり、それにスタイルを適用したり太文字や色付けなども可能で、日本語を入れても大丈夫なことがわかりました。実際に使うとこんな感じ。
これが脚注のあるページごとに出てくるようです。
まぁこんな脚注の区切り使ってたら怒りますが、仕様上は出来るということで。
絵文字も入れられるんだけども、入れると更新したあともPandocはエラー吐いちゃうのでそれはやめてね…(そんな脚注の区切り文字使わないデショ?)
ちょっと前のissueですが、Pandocでテンプレートを出力する--print-default-data-file
を使う際に pandoc --print-default-data-file reference.docx > custom-reference.docx
で出力するとファイルが壊れることがあります(下記issue)
この回避方法として、>
で出力先をファイルに変更するのではなく、-o
オプションを使って出力先ファイル名を指定することでこの問題を回避できるようになりました。
まぁ実際のところテンプレートを --print-default-data-file
で出力すると抜けるスタイルがあるのでおススメしないですが…(これissueに上げておくべきなのかな…といっても誰も困ってなさそう)
他の形式、たとえばodtやpptxも、-o
で出力した方が良いでしょう。
以前Pandocのemojiについて調べていた時は、Pandoc本体に取り込まれていて対応する文字の数も少なかったのですが、下記のcommitで外部のパッケージに切り出されていたようです。
そのライブラリ自体はこちら。
対応しているemojiの名前はこのファイルに書かれているので、困ったらこのファイルを見ましょう(欲しい絵文字が登録されていないならPR出すとかですね)
Pandocのバージョンは2.11.4です。いつの間にこんなにバージョン上がってるの…。
久々にPandocのissueでも見るかーって見た一個目がこれだったので、これをやることにした。
Wordの脚注の線と脚注の文字の間のスペースを詰めたいという話。
まずはこの脚注の線を修正する方法。ググれば出てくるが、
すると、よくわからんが線が表示される。これを消して他の文字にするなどすれば脚注の線は他の文字に変えることが出来る。これ以外の修正方法があるのかは知らない。
なお、この情報はdocx内ではfootnotes.xml中に含まれており、専用のタグ、<w:separator />
を使って示されている。もう一個の方は<w:continuationSeparator />
である。<w:footnote w:type="separator" w:id="-1">
などで調べると良い。w:idは他の数字かもしれないので注意。
さて、この脚注だが実はこの画面上で右クリックすることでフォントやスタイル、段落設定をすることが可能である。そのため、段落設定で段落後のスペースを0にすることによって、脚注の区切り線と脚注の文字との間を詰めることが可能なのである。
脚注の設定はココでしか使わないので、そのまま指定しても良いが、使いまわしを考えるならばスタイルを専用に作成して指定する方が良いだろうと思う。とはいえ、reference.docx中のスタイルを別のファイルにマージするとか面倒くさいのであまりやることはないと思うだが…。
さて一方でPandocはこの脚注の設定をreference.docxから拾ってくれないようだ。実行した結果がそうなのだからそうなんだろう。footnotes.xmlから設定を引っこ抜いてくるためには、styles.xmlからスタイルを引っこ抜いてくるのと同様の処理をしないといけないであろう。
ということで、あとでissueに書いたコメントを見直してよくわからなかったとき用にメモを残しておく。真面目にキャプチャとか載せておけばもっといい記事になるのに面倒くさいのでやらない。誰か書いてくれ。
ちょっとkuniezu
パッケージを試してみたかったんですが、
内部で使ってるparzer
パッケージがエラー吐いて止まる(Win、32bit版)か止まってしまって処理が返ってこない(Win, 64bit版)という挙動をしていました。
再現できるコードはこれ。
parzer::parse_lon("10")
RToolsは4.0の最新版を入れなおしてもダメでした。一方、Ubuntu上では問題なく動作して、結果として一個前の記事が出来ました(ヨカッタネ)
ってことをTwitterに呟いていたら、僕らのユタ兄さんから、
Sys.setlocale(locale = "C") にすると動きますね。この現象、arrowパッケージでも見たのでなんかあるんだろうと思ってるんですが原因を突き止められていません。。
— Hiroaki Yutani (@yutannihilation) 2021年1月23日
というアドバイスをいただいて、上記コード実行前に
Sys.setlocale(locale = "C")
をしたら動くようにはなりました。が、原因がわからないのでちょっと調べてみます。昔のバージョンなら問題なかったのではないだろうか、とかそのあたりですね…(CRANのテストはもちろん通った状態でリリースされているのでそこら辺ではなさそう)
その後、std::regex
が問題とわかり…
どうもstd::regexがだめっぽいですhttps://t.co/bZY62rHXDc
— Hiroaki Yutani (@yutannihilation) 2021年1月23日
minimal reprexhttps://t.co/Ylmi0fMrtR
結局、gccに問題があるのではということまで来ました(主にユタ兄さんの解析によって)
GCC側で直さないとだめ、という話になってるっぽいです。 https://t.co/SWetVPGB7B
— Hiroaki Yutani (@yutannihilation) 2021年1月24日
現状では先にあげたように、localeを設定してやり過ごすのが対策になりそうです。ちなみに、regexは[]
がダメっぽくて、[0]
はダメ、(a+)*\d
みたいなのはOKでした。こんなこと(コンパイラのバグ)ってあるんですねぇ…(Windowsの日本語localeのみで発生するregexのバグ…)
ちなみに、Windows上でSys.getlocale()
するとこうなります。この環境下でのみ発生する、という感じですね(ubuntuのutf8環境では問題なかった)
> Sys.getlocale() [1] "LC_COLLATE=Japanese_Japan.932;LC_CTYPE=Japanese_Japan.932;LC_MONETARY=Japanese_Japan.932;LC_NUMERIC=C;LC_TIME=Japanese_Japan.932"
Ubuntu18の方で普通にRをインストールするとR3.xが入ってしまうので、Ubuntu20.04LTSに移行しようとした。
で、Rを入れた後にRStudioをこのページに書かれているコマンドで入れようとしたのだが、
以下のようなエラーが出てRStudio serverは起動できなかった。
Couldn't find an alternative telinit implementation to spawn. /usr/lib/rstudio-server/bin/rserver: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
調べたら下記のサイトに書かれていた。
投稿から引用すると、/etc/apt/sources.list
に deb http://security.ubuntu.com/ubuntu xenial-security main
という行を追記し、その後 sudo apt update
して sudo apt install libssl1.0.0
してから sudo rstudio-server start
して起動できることを確認しました。
とりあえず良かった~