So verwenden Sie NUR ein Symbol aus einem bestimmten Paket, ohne dass dies Auswirkungen auf den Rest des Dokuments hat

So verwenden Sie NUR ein Symbol aus einem bestimmten Paket, ohne dass dies Auswirkungen auf den Rest des Dokuments hat

{Haftungsausschluss: Ich bin ein Neuling in LaTeX und Codierung}

Ich möchte ein Symbol aus dem Paket „oz“ verwenden. Es ist das $\fcmp$Symbol.

Wenn ich jedoch \usepackage{oz} in meinem Dokument habe, ändert es fast jedes Symbol. Das ist ein Problem, weil es im Mathematikmodus standardmäßig kursive Buchstaben verwendet und ich kursive Buchstaben für etwas anderes verwende. Es ändert auch viele logische Symbole in meinem Dokument.

Ich möchte nicht das ganze Paket verwenden, sondern nur einige Sonderzeichen.

Falls es hilft, das sind die Pakete, die ich verwende.

\documentclass{article}
\usepackage{oz}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{array}
\usepackage[table]{xcolor}
\usepackage{amsmath}
\usepackage{newtxmath}
\usepackage{tikz}
\usepackage{mathtools}
\usepackage{xcolor}

Ich entschuldige mich für den Mangel an Code und Formular hier, dies ist mein erstes Mal, dass ich diesen Stack Exchange verwende.

Antwort1

Leider ist das, was Sie suchen, nicht genau möglich. Die TeX-Engine wurde zu einer Zeit entwickelt, als die Computerressourcen noch recht begrenzt waren und Namespaces damals noch kein Thema waren.

Stattdessen müssen Sie sich den ozQuellcode ansehen, um zu sehen, wie \fcmper definiert wurde.

Wenn Sie LaTeX ausführen, sehen Sie eine Zeile, die angibt, wo die oz.styDatei von LaTeX eingelesen wird. So wissen Sie, wo sich die Datei befindet, und können sie in Ihrem bevorzugten Texteditor öffnen (wahrscheinlich dem, den Sie zum Bearbeiten Ihrer LaTeX-Dateien verwenden). Eine Suche nach oz.sty¹ ergibt die folgende Definition:

\def \fcmp  {\mathbin{\raise 0.6ex\hbox{\oalign{\hfil$\scriptscriptstyle
     \mathrm{o}$\hfil\cr\hfil$\scriptscriptstyle\mathrm{9}$\hfil}}}}

welches zeigt, wie der \fcmpBefehl definiert ist.

Nun, es ist ein bisschen Glück, dass hier keine internen LaTeX-Befehle verwendet werden, also können Sie dies einfach in Ihre Präambel anstelle von einfügen \usepackage{oz}, aber hier gibt es einen Vorbehalt: Die Art und Weise, wie der Befehl definiert ist, macht offenbar einige Annahmen notwendig für das objectzPaket davon ozist Teil², wobei ein Leerzeichen danach \fcmpistnichtoptional dank der Verwendung des einfachen TeX- \defBefehls und der Leerzeichen danach \fcmpin der Definition. Besser zu schreiben:

\NewDocumentCommand\fcmp{}{\mathbin{\raise 0.6ex\hbox{\oalign{\hfil$\scriptscriptstyle
     \mathrm{o}$\hfil\cr\hfil$\scriptscriptstyle\mathrm{9}$\hfil}}}}

\fcmpDadurch wird eine LaTeX-nativere Definition erreicht .


  1. Einige, aber nicht alle LaTeX-Pakete bieten eine Dokumentation des Quellcodes, die möglicherweise eine Erklärung der bei der Implementierung des Pakets getroffenen Entscheidungen enthält. ObjectZ verteilt zwar eine .dtxDatei, die eine Dokumentation generiert, verfügt jedoch über keine interne Dokumentation der getroffenen Entscheidungen.
  2. Oder es handelt sich einfach um einen Fehler seitens des Paketautors.

Antwort2

Ich schlage vornichtverwenden Sie „ \fcmpvon“ oz.sty(eine Reihe von Kludges), aber das Semikolon „von“ bboldoder „ \fatsemivon“ stmaryrd.

Hier ist ein Vergleich.

\documentclass{article}
\usepackage{amsmath}

\NewDocumentCommand\fcmp{}{%
  \mathbin{%
    \raise 0.6ex\hbox{%
      \oalign{%
        \hfil$\scriptscriptstyle\mathrm{o}$\hfil\cr
        \hfil$\scriptscriptstyle\mathrm{9}$\hfil
      }%
    }%
  }%
}

\NewDocumentCommand{\altfcmp}{}{\mathbin{\text{\usefont{U}{bbold}{m}{n};}}}

\NewDocumentCommand{\altfcmpbis}{}{\mathbin{\text{\usefont{U}{stmry}{m}{n}\symbol{"23}}}}

\begin{document}

$a\fcmp b$

$a\altfcmp b$

$a\altfcmpbis b$

\end{document}

\mathbinSie entscheiden, ob das Symbol einen anderen Status haben soll oder nicht .

Bildbeschreibung hier eingeben

Wie bin ich dazu gekommen \fatsemi? Zuerst habe ich im Handbuch nachgesehen stmaryrdund gesehen, dass die Glyphe heißt \fatsemi. Dann der Paketcode, in dem es steht

\DeclareSymbolFont{stmry}{U}{stmry}{m}{n}

\stmry@if\DeclareMathSymbol\fatsemi\mathbin{stmry}{"23}\fi

Somit hatte ich alle Zutaten, um den Befehl zu definieren, ohne eine mathematische Symbolschriftart für nur ein Symbol zu verschwenden.

Treffen Sie Ihre Wahl und verwenden Sie \fcmp(oder einen beliebigen anderen Namen Ihrer Wahl) anstelle der Namen, die ich nur zum Zwecke des Vergleichs verwendet habe.

verwandte Informationen