【Rmarkdown】longtableで二重線が重なる問題の解決法

Rmarkdown

Rmarkdownで論文や報告書を作成していると、kableで作成したlongtableのヘッダ下に二重線を引きたいという場面があります。しかし、よく知られた設定を使うと、通常の表では問題なく二重線になるのに、longtableでは二重線が重なってしまうという厄介な現象が起こります。

今回はそれを解決できる方法を見つけたので紹介していきます。

よくある対処法とその課題

\hline\hlineを使う

\renewcommand{\toprule}{\hline\hline}

多くのサイトで紹介されているのが次の方法です。

しかし、\hline\hline を指定すると、longtableでは二重線が重なってしまいます。

\hhlineを使う

\usepackage{hhline}
\renewcommand{\toprule}{\hhline{==}}

パッケージを使って二重線を引く方法です。

=」の数だけ列に二重線を引きます。

\hhline パッケージを使えば制御できますが、= の数を列数に合わせて書く必要があり、列数が異なる複数の表をpreambleで扱う場合に不便です。

対処方法

色々と試した結果、次の1行が最もシンプルかつ安定して動作する方法でした。

\renewcommand{\toprule}{\hline\noalign{\vskip 2pt}\hline}

この方法で、Rmarkdownのlongtableでも二重線が出力できるようになりました。

もし同じ問題で悩んでいる方がいたら、この記事がその一助となれば嬉しいです。

広告

Amazonアフィリエイトでブログ運営しています。
応援いただけると嬉しいです。


ネスカフェ 香味焙煎 ひとときの贅沢 スティック ブラック 20P,箱,レギュラー ソリュブル コーヒー,個包装


AHMAD TEA(アーマッドティー) クラシックセレクション ティーバッグ 20袋

タイトルとURLをコピーしました