ling-macros パッケージ実行時に発生する「コマンド \f が既に定義されています」エラーを解決する方法

ling-macros パッケージ実行時に発生する「コマンド \f が既に定義されています」エラーを解決する方法

私は論文(言語学)をタイプセットしていますが、パッケージを使用するまでは XeLaTeX で問題なく動作していました。ling-macros新しいパッケージではないことと、私が遭遇したエラーに関する同様の質問が見つからなかったことを考えると、パッケージは問題なく動作するはずでした。私が得た結果は次のとおりです。

    > ! LaTeX Error: Command \f already defined.
    >                Or name \end... illegal, see p.192 of the manual.
    > 
    > See the LaTeX manual or LaTeX Companion for explanation. Type  H
    > <return>  for immediate help.  ...                                    
    > 
    >                                                    l.235 \newcommand{\f}[1]{\ensuremath{#1}}
    >                                           ^^I^^I^^I^^I^^I^^I% Formal express...
    > 
    > ?

これは私が受け取った非常に具体的なメッセージなので、何らかの関係があるling-macros(または使用した他のパッケージとの競合がある?) と確信しています。その行を % にすると、ファイルは再び正常に実行されました (以下の最後の行を参照)。

以下は私の序文です。

\documentclass[12pt]{article}
\usepackage[hmargin=2.5cm, vmargin=2.5cm]{geometry}
\setlength\parindent{4ex}
\setlength\parskip{0pt}
\usepackage{setspace}
\doublespace
\usepackage{fontspec}
\setmainfont{Times New Roman}
\defaultfontfeatures{Scale=MatchLowercase}
\usepackage{polyglossia}

\usepackage[rm, bf]{titlesec} % formatting taken out for brevity

\usepackage{longtable}

\usepackage{natbib}

\usepackage{fancyhdr} % actual header taken out
\pagestyle{fancy}

\usepackage{titling} % actual title with author info taken out

\usepackage{linguex}
\usepackage{tikz-qtree}
\usepackage{ling-macros}

答え1

パッケージはを のエイリアスとしてlinguex定義します。 には、標準の LaTeX (「アンダーバー」アクセント) とは異なる意味が与えられます。\f\b\b

のコンテキストではlinguex、内部にアイテムを導入するための\ex.入力\a.とがあり\b.ます。パッケージには、さらに\c. \d. \e. \f.多くのアイテムが用意されています。

\f.この問題を回避するには 2 つの方法があります。1 つはかなり思い切ったもので、内の項目に を使用する可能性を排除することです\ex.\let\f\relaxの前にを追加するだけです\usepackage{ling-macros}

\f.内部のアイテムに を使用する場合は\ex.、以下に示すようなより複雑なトリックが必要になります。

\documentclass[12pt]{article}

%% packages

\usepackage[hmargin=2.5cm, vmargin=2.5cm]{geometry}
\usepackage{setspace}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage[rm, bf]{titlesec} % formatting taken out for brevity
\usepackage{longtable}
\usepackage{natbib}
\usepackage{fancyhdr} % actual header taken out
\usepackage{titling} % actual title with author info taken out

\usepackage{linguex}
\usepackage{tikz-qtree}

%% fix the issues with \f
\let\f\relax % remove the definition done by linguex
\usepackage{ling-macros} % load the package
\makeatletter
\let\lingmacros@f\f
\DeclareRobustCommand{\f}{\@ifnextchar.\b\lingmacros@f}
\makeatother

%% settings

\setmainfont{Times New Roman}
\defaultfontfeatures{Scale=MatchLowercase}

\pagestyle{fancy}
\doublespacing % not \doublespace
% you don't know what ex is, until at begin document
\AtBeginDocument{\setlength\parindent{4ex}}
% leave a little flexibility to \parskip
%\setlength\parskip{0pt}

パッケージの読み込み部分と設定部分を分離しました。 は\doublespace正しい宣言ではなく、 であることに注意してください\doublespacing

関連情報