ドキュメントの残りの部分に影響を与えずに、特定のパッケージのシンボルを 1 つだけ使用する方法

ドキュメントの残りの部分に影響を与えずに、特定のパッケージのシンボルを 1 つだけ使用する方法

{免責事項: 私は 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}

コードとフォームが不足していることをお詫びします。この Stack Exchange を使用するのは初めてです。

答え1

残念ながら、あなたが探している正確なものは、正確には不可能です。TeX エンジンは、コンピューティング リソースがかなり限られていた時代に設計され、名前空間は当時はメニューにありませんでした。

oz代わりに、ソース コードを見て、どのように定義されているかを確認する必要があります\fcmp

LaTeX を実行すると、LaTeX によってファイルが読み込まれている場所を示す行が表示されるoz.styので、ファイルの場所がわかり、お気に入りのテキスト エディター (LaTeX ファイルの編集に使用しているエディターである可能性が高い) で開くことができます。¹ を検索すると、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のパッケージに必要ないくつかの仮定を明らかに必要とします。 の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 (一連の kludge)を使用します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

したがって、数学記号フォントを 1 つの記号のために無駄にすることなく、コマンドを定義するためのすべての要素が揃いました。

\fcmp比較するために私が使用した名前の代わりに、好きな名前 (または好きな名前) を選んで使用してください。

関連情報