Как использовать ТОЛЬКО один символ из определенного пакета, не влияя на остальную часть документа

Как использовать ТОЛЬКО один символ из определенного пакета, не влияя на остальную часть документа

{Отказ от ответственности: я новичок в 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.styсчитывается LaTeX, так что вы знаете, где находится файл, и можете открыть его в вашем любимом текстовом редакторе (скорее всего, в том, который вы используете для редактирования файлов 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означаетнетнеобязательно благодаря использованию \defкоманды plain TeX и пробелов после \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(набор кладжей), но точку с запятой from bboldили \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(или любое другое, которое вам больше нравится) вместо названий, которые я использовал просто для сравнения.

Связанный контент