
我想使用包textordmasculine
中給出的符號textcomp
。
但我不想加載 textcomp
因為它太多了,我只想要那個符號(事實上,我需要帶有下劃線的男性順序符號,除了使用之外我沒有找到這個符號textcomp
)。
從CTAN我發現
\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
其他影響。
概括
由於最新的方法比較麻煩並且有嚴重的局限性,所以我會推薦第三種方法(或前三種方法之一)。