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 (또는 내가 사용한 다른 패키지와의 충돌과 관련이 있습니까?). 해당 줄을 %'ed했을 때 파일이 다시 정상적으로 실행되었습니다(아래 마지막 줄 참조).

다음은 내 서문입니다.

\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정의됩니다 .\f\b . 또한 \b표준 LaTeX("언더바" 악센트)와는 다른 의미가 부여됩니다.

의 맥락에서 하나의 입력 linguex내부에는 및\ex.\a.\b. 항목 소개를 위한 것입니다. 패키지는 또한 \c. \d. \e. \f.더 많은 항목을 제공합니다.

두 가지 방법으로 이 문제를 해결할 수 있습니다. 하나는 매우 과감한 것입니다. 즉, \f.내부 항목에 사용할 가능성을 제거하는 것입니다 \ex..\let\f\relax before 에 추가하세요 \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 .

관련 정보