
Ich setze gerade mein Papier (Linguistik) und es lief in XeLaTeX einwandfrei, bis ich das ling-macros
Paket verwendete, das eigentlich einwandfrei hätte funktionieren sollen, da es kein neues Paket ist und ich keine ähnlichen Fragen zu dem aufgetretenen Fehler gefunden habe. Das hier ist, was ich bekommen habe:
> ! 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...
>
> ?
Ich bin sicher, dass es irgendwie damit zu tun hat ling-macros
(oder mit dem Konflikt mit anderen Paketen, die ich verwendet habe?), da ich diese ganz konkrete Nachricht erhalten habe. Als ich diese Zeile mit % markiert habe, lief die Datei wieder einwandfrei (siehe letzte Zeile unten).
Das Folgende ist meine Präambel:
\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}
Antwort1
Das linguex
Paket definiert \f
als Alias für \b
. Außerdem \b
wird ihm eine andere Bedeutung als in Standard-LaTeX zugewiesen (nämlich der „Unterstrich“-Akzent).
Im Rahmen von werden linguex
innerhalb \ex.
eines Pakets Eingaben \a.
und \b.
zum Einführen von Elementen vorgenommen. Das Paket bietet auch die Möglichkeit \c. \d. \e. \f.
für weitere Elemente.
Sie können das Problem auf zwei Arten umgehen. Eine ist ziemlich drastisch, nämlich die Möglichkeit der Verwendung von \f.
for-Elementen innerhalb zu entfernen \ex.
: Fügen Sie einfach \let\f\relax
vor hinzu \usepackage{ling-macros}
.
\f.
Wenn Sie für Elemente im Inneren verwenden möchten \ex.
, benötigen Sie einen ausgefeilteren Trick, der unten gezeigt wird.
\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}
Ich habe den Teil zum Laden des Pakets vom Einstellungsteil getrennt. Beachten Sie, dass dies \doublespace
nicht die richtige Deklaration ist. Sie sollte lauten \doublespacing
.