我想使用包textordmasculine
中给出的符号textcomp
。
但我不想加载 textcomp
因为它太多了,而我只想要那个符号(事实上,我需要带下划线的阳性符号,但除了使用之外我没有找到这个符号textcomp
)。
从加拿大运输安全局我发现
\DeclareTextSymbol{\textordmasculine}{TS1}{'272}
\DeclareTextSymbolDefault{\textordmasculine}{TS1}
但不知道如何使用这些行来加载该符号。
如果我同时使用两者
Encoding scheme `TS1' unknown. ...ontFamily{TS1}{cmr}{\hyphenchar\font\m@ne}
Encoding scheme `TS1' unknown. \DeclareFontFamily{TS1}{phv}{}
答案1
满的textcomp
\documentclass{article}
\usepackage{textcomp}
\begin{document}
\textordmasculine
\end{document}
该包textcomp
通过“子编码”的概念来处理不支持全范围编码 TS1 的字体系列。
完整编码 TS1,无需textcomp
\documentclass{article}
\usepackage[TS1,OT1]{fontenc}% or T1 instead of OT1
\begin{document}
\textordmasculine
\end{document}
假设使用的字体支持全部TS1 的符号。但是,\textordmasculine
通常不会丢失。但其他符号如\textbullet
被重新定义为使用 TS1 编码。
对 TS1 进行部分编码\textordmasculine
\documentclass{article}
\DeclareFontEncoding{TS1}{}{}
\DeclareFontSubstitution{TS1}{cmr}{m}{n}
\DeclareTextSymbol{\textordmasculine}{TS1}{186}
\DeclareTextSymbolDefault{\textordmasculine}{TS1}
\begin{document}
\textordmasculine
\end{document}
然后符号仍然使用 LaTeX 的 NFSS2 定义。这意味着字体大小命令、更改字体属性(\textbf
,...)有效。但未\textbullet
重新定义。
通过纯 TeX 命令加载字体
如果您只需要一种尺寸和形状的符号,那么您也可以直接加载字体。然后首先使用以下命令为符号创建 MWE textcomp
:
\documentclass{article}
\usepackage[loading]{tracefnt}
\usepackage{textcomp}
\pagestyle{empty}
\begin{document}
\textordmasculine
\end{document}
确保字体大小和字体系列正确:
- 适合文档类别的正确尺寸选项(
10pt
,11pt
,12pt
)。 - MWE 包含所有其他字体包(
lmodern
、、mathptx
...)。
然后通过 LaTeX 运行 MWE 并查找以下信息tracefnt
:
LaTeX Font Info: External font `tcrm1000 at10.0pt' loaded as
(Font) TS1/cmr/m/n/10 on input line 6.
tcrm1000 at10.0pt
可能会因字体和大小设置而有所不同。这是我们需要的数据\newfont
:
\documentclass{article}
\newfont{\fonttextcomp}{tcrm1000 at10.0pt}
% \providecommand for the case `textcomp` is loaded.
\providecommand*{\textordmasculine}{%
\begingroup\fonttextcomp\symbol{186}\endgroup
}
\begin{document}
\textordmasculine
\end{document}
限制:符号不会调整大小或受到\textbf
等影响。每个变体都需要新的字体和宏。
概括
由于最新的方法比较麻烦并且有严重的局限性,所以我建议使用第三种方法(或前三种方法之一)。