如何僅使用某個包中的一個符號而不影響文件的其餘部分

如何僅使用某個包中的一個符號而不影響文件的其餘部分

{免責聲明:我是 LaTeX 和編碼方面的菜鳥}

我想使用“oz”包中的符號。它是$\fcmp$像徵。

然而,當我的文件中有 \usepackage{oz} 時,它幾乎改變了每個符號。這是一個問題,因為它在數學模式下預設為斜體字母,而我在其他方面使用斜體字母。它還更改了我的文檔中的許多邏輯符號。

我不想使用整個包,只想使用一些特殊符號。

如果有任何幫助,這些是我正在使用的軟體包。

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

對於這裡缺少程式碼和表單,我深表歉意,這是我第一次使用這個堆疊交換。

答案1

唉,您正在尋找的確切東西並不完全可能。 TeX 引擎是在計算資源相當有限的時候設計的,而且當時命名空間還沒有出現在菜單上。

相反,您需要做的是查看oz原始程式碼以了解如何\fcmp定義。

當你運行 LaTeX 時,你會看到一行指示oz.styLaTeX 正在讀取文件的位置,這樣你就知道文件在哪裡,並且可以在你最喜歡的文本編輯器(很可能是你用來編輯你的文本的編輯器)中打開它。透過 進行搜尋oz.sty將顯示以下定義:

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

它顯示了\fcmp命令是如何定義的。

現在,幸運的是,這不使用任何內部 LaTeX 命令,因此您可以將其直接粘貼到序言中代替\usepackage{oz},但這裡有一個警告:命令的定義方式顯然需要一些假設對於objectz其為part²的包,oz其後的空格\fcmp不是由於使用了普通的 TeX命令以及定義中\def後面的空格,因此是可選的。\fcmp更好寫:

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

它將\fcmp以更 LaTeX 原生的方式定義。


  1. 一些(但不是全部)LaTeX 套件將提供原始碼文檔,這可能會解釋在實現套件時所做的選擇。 ObjectZ 雖然分發了一個.dtx產生文件的文件,但沒有關於所做選擇的內部文件。
  2. 或者,這可能只是包編寫者的錯誤。

答案2

我建議不是使用\fcmpfrom oz.sty(一組拼湊而成),但使用分號 frombbold\fatsemifrom stmaryrd

這是一個比較。

\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}

您可以決定是否希望符號\mathbin具有不同的狀態。

在此輸入影像描述

我是怎麼得到的\fatsemi?首先,我查看了手冊stmaryrd,發現該字形被稱為\fatsemi.接下來是套件程式碼

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

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

因此,我擁有了定義命令的所有要素,而無需僅為一個符號浪費數學符號字體。

選擇並使用\fcmp(或任何您喜歡的名稱)而不是我只是為了進行比較而使用的名稱。

相關內容