
脚注をカスタマイズするためのパッケージを作成しました。現時点では、重要な機能は 1 つだけです。脚注のフォントを変更するために、bool パラメータを指定したいのです。
スタイル ファイルは次のようになります。
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{AFWfnotetext}[2019/07/07 v1.1 A footnotes]
\RequirePackage{sectsty}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
family=AFW,
prefix=AFW@
}%
\DeclareBoolOption[true]{condensed}
%\ProcessLocalKeyvalOptions*
\let\oldfootnote\footnote
\ifAFW@condensed
\RenewDocumentCommand{\footnote}{ O{} m }
{\oldfootnote{\textcn{#2}}}
\else
\RenewDocumentCommand{\footnote}{ O{} m }
{\oldfootnote{#2}}
\fi
\ExecuteOptions{condensed}
\ProcessOptions\relax
ドキュメントのプリアンブルで condensed 値を渡さなくても問題なく動作しますが、\usepackage[condensed=true]{AFWfnotetext}
ドキュメントで use: を使用すると、次のメッセージが表示されます。
Unknown option `condensed=true' for package `AFWfnotetext'. \ProcessOptions\relax
私は LaTeX でのプログラミングが初めてなので、何が起こっているのか理解できませんでした。
ご協力いただければ幸いです。
前もって感謝します
答え1
LaTeX カーネルはキー値オプションをサポートしていません。そのため、使用したようなパッケージがあります 。キー値オプションを認識しないkvoptions
代わりに、次のようなパッケージ コマンドを使用する必要があります。\ProcessOptions
\ProcessKeyvalOptions
\ExecuteOptions{condensed}
\DeclareBoolOption[true]{condensed}
すでにオプションが で初期化されているため、ここでは意味がありませんtrue
。
オプションの宣言、使用法、およびオプションのアクションの順序が正しくありません。
- 最初に: オプションが定義されます (
\SetKeyvalOptions
、\DelareBoolOption
)。 - 2番目: オプションが処理されます(
\ProcessOptions
) - 3番目:評価フェーズでは、オプション値( )に応じてコードが実行されます
\ifAFW@condensed
。
答え2
以下を使用できますl3keys2e
:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{AFWfnotetext}[2019/07/07 v1.1 A footnotes]
\RequirePackage{l3keys2e}
\RequirePackage{xparse}
\ExplSyntaxOn
\keys_define:nn { AFWfnotetext }
{
condensed .bool_set:N = \g_AFWfnotetext_condensed_bool,
condensed .default:n = true,
condensed .initial:n = true,
}
\ProcessKeysPackageOptions { AFWfnotetext }
\cs_set_eq:cc { latex@footnotetext } { @footnotetext }
\bool_if:NT \g_AFWfnotetext_condensed_bool
{
\cs_set:Npn \@footnotetext #1 { \latex@footnotetext{\textit[#1}} }
}
注:\itshape
わからないので使用しました\textcn
(パッケージで定義が提供されているはずです)。
これは、画像を小さくするためにテキストの高さを低くしたテスト ファイルです。オプションの引数を\footnote
使用できることに注意してください。これは、この方法では使用できません。
\documentclass{article}
\usepackage[
% condensed,
% condensed=true,
condensed=false,
]{AFWfnotetext}
\setlength{\textheight}{4cm}
\begin{document}
Test\footnote{Test for footnotes}
Test\footnote[4]{Another test}
\end{document}
condensed
、condensed=true
またはオプションなしの出力は次のようになります。