TexLive 2021のfancyhdrをバージョンダウンする
経緯
ドキュメント作成にLatexを使用することが多いのですが、Windowsで作成するときに使用しているツールは Texlive 2020です。
- TexLiveのダウンロードはこちら
\pagestyle{fancy}を使用することが多いのですが、ヘッダーのアルファベットがすべて大文字になってしまうのを防ぐために、かうぱーとさんのブログ記事を参考にさせてもらっています。
こんな感じのtexファイルになります。
\documentclass[11pt,a4paper]{jsbook}
\usepackage{fancyhdr}
\begin{document}
\makeatletter
\def\ps@fancy{%
\def\chaptermark##1{\markboth{\ifnum \c@secnumdepth>\z@ \thechapter\hskip 0.5em\relax \fi ##1}{}}%
\def\sectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne \thesection\hskip 0.5em\relax \fi ##1}}%
\ps@@fancy
\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
\ifdim\headwidth<0sp
\global\advance\headwidth123456789sp\global\advance\headwidth\textwidth
\fi
}
\makeatother
\pagestyle{fancy}
\chapter{fancyのテスト}
\section{はじめに}
fancyのpagestyleをテストします。
\clearpage
2ページ目
\end{document}
TexLive 2021でのエラー
上記のtexファイルですが、TexLive 2021でタイプセット実行すると以下のエラーが出力されます。
This is ptex2pdf[.lua] version 20200520.0.
Processing untitled-2.tex
This is e-pTeX, Version 3.141592653-p3.9.0-210218-2.6 (utf8.sjis) (TeX Live 2021/W32TeX) (preloaded format=platex)
restricted \write18 enabled.
entering extended mode
(./untitled-2.tex
pLaTeX2e <2020-10-01>+2 (based on LaTeX2e <2020-10-01> patch level 4)
L3 programming layer <2021-02-18>
(c:/texlive/2021/texmf-dist/tex/platex/jsclasses/jsbook.cls
Document Class: jsbook 2020/10/09 jsclasses (okumura, texjporg)
(c:/texlive/2021/texmf-dist/tex/platex/jsclasses/jslogo.sty))
(c:/texlive/2021/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty)
(c:/texlive/2021/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)
(./untitled-2.aux)
! Undefined control sequence.
\ps@fancy ...skip 0.5em\relax \fi ##1}}\ps@@fancy
\gdef \ps@fancy {\@fancypl...
l.17 \pagestyle{fancy}
?
どうもps@fancyのところがエラーになっているようですが、詳しいことはよくわかりません。^^;;
fancyhdrのバージョン比較
fancyhdr.styを比較するとtexlive2020にインストールされているfancyhdrはバージョン3.10、texlive2021のはバージョン4.0.1であることがわかりました。
そこで、fancyhdrをバージョンダウンさせてみます。
fancyhdrのバージョンダウン
- githubからfancyhdrのリポジトリをクローンします。
git clone https://github.com/pietvo/fancyhdr
cd fancyhdr
- バージョン3.10をチェックアウトします。
git checkout V3.10
- スタイルファイルを生成します。
tex fancyhdr.ins
リポジトリには元からスタイルファイルが入っていて、上記のコマンドを実行しても変化なしなのでこの手順はいらないのかもしれません。
- 出来上がったファイルを、texliveがインストールされているフォルダにコピーします。
md C:\texlive\texmf-local\tex\latex\local\fancyhdr
copy *.sty C:\texlive\texmf-local\tex\latex\local\fancyhdr
- texlive2021のls-Rファイルを更新します。
mktexlsr
結果
git clone https://github.com/pietvo/fancyhdr
cd fancyhdr
git checkout V3.10
tex fancyhdr.ins
リポジトリには元からスタイルファイルが入っていて、上記のコマンドを実行しても変化なしなのでこの手順はいらないのかもしれません。
md C:\texlive\texmf-local\tex\latex\local\fancyhdr
copy *.sty C:\texlive\texmf-local\tex\latex\local\fancyhdr
mktexlsr
fancyhdrのバージョンダウン後、再度タイプセットを実行するとエラーなくPDF化できました。ヘッダーのアルファベットもちゃんと小文字で出力されています。
Texliveのパッケージ参照について
今回の件では、Texlive 2021のdistに入っているfancyhdr V4.0.1を削除してはいません。
localフォルダにfancyhdr V3.10をインストールしてls-Rを更新すると、localのほうが優先されるようです。
もとはといえば、ブログの内容をべた貼りしていることが問題なのかもしれませんが、latexの書式設定って難しくて。。。
何かの参考になれば。
Author And Source
この問題について(TexLive 2021のfancyhdrをバージョンダウンする), 我々は、より多くの情報をここで見つけました https://qiita.com/L_A_P_119611/items/941bf3dc9057a5c0f9c8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .