![tikzposter クラスと microtype パッケージ間の非互換性](https://rvso.com/image/286362/tikzposter%20%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%A8%20microtype%20%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E9%96%93%E3%81%AE%E9%9D%9E%E4%BA%92%E6%8F%9B%E6%80%A7.png)
私は新しいtikzposter
クラスを使い始めたばかりですが (以前はfancytikzposter
同じ作者のパッケージを使用していました)、すぐにそのmicrotype
パッケージを使用すると TeX が失敗することがわかりました。
どうすればいいのか分からないので、他にもこれに遭遇した人がいるかどうか気になっています。私の MWE は次のとおりです:
\documentclass{tikzposter}
\usepackage{microtype}
\begin{document}
%\block{\textls{title}}{text}
\end{document}
中央のコメントアウトされた行はmicrotype
、 を使用する理由の 1 つです。つまり、文字間隔をより細かく制御できるようにするためです。 、 でも同じ結果が得られますpdftex
。xetex
またlualatex
、私は新しく更新された TeXlive インストールを使用しています。
失敗したエラーは次のとおりです:
! Missing endcsname inserted.
<to be read again>
protect
l.5 \end{document}
?
答え1
これはかなり難しい問題でした... のバグだと主張しますtikzposter
。
問題は、 が環境を開始するためにtikzposter
使用し、その後環境が閉じられることです。つまり、パッケージ (この場合は) が挿入するその他のコードはすべてグループ内で実行されるため、ローカル割り当てはすべて元に戻されます。具体的には、 はプリアンブル内でのみ許可されている一部のコマンドを無効にし、エラーを引き起こします。\AtBeginDocument
tikzpicture
\AtEndDocument
microtype
AtBeginDocument
AtEndDocument
microtype
ABD
AED
アドバイスclsguide
:
タイプセットの結果が予測できないため、タイプセットを行うコードにはフック
\AtBeginDocument
を使用しないでください。
ここでの実際のタイプセッティングはtikzposter
問題ではなく、むしろそれが開くグループですが、それでもこれは . の不適切な使用に該当すると言えます\AtBeginDocument
。代わりにfrom コマンドtikzposter
を使用できます(いずれにせよ、これはロードされます)。\AfterEndPreamble
etoolbox