{Отказ от ответственности: я новичок в 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 манере.
- Некоторые, но не все, пакеты LaTeX предоставляют документацию исходного кода, которая может дать объяснение выборам, сделанным при реализации пакета. ObjectZ, хотя и распространяет файл,
.dtx
который генерирует документацию, не имеет внутренней документации сделанных выборов. - Или это может быть просто ошибка автора пакета.
решение2
Я предлагаюнетиспользуя \fcmp
from oz.sty
(набор кладжей), но точку с запятой from bbold
или \fatsemi
from 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
(или любое другое, которое вам больше нравится) вместо названий, которые я использовал просто для сравнения.