我想使用STIX
包提供的求和符号。我确实尝试了一些方法,但没有任何效果。以下是我尝试的方法。
\documentclass{article}
\usepackage{amssymb,amsmath}
\DeclareSymbolFont{largesymbols}{LS2}{stixex}{m}{n}
\DeclareMathSymbol{\sumop}{\mathop}{largesymbols}{"B3}
\begin{document}
Hi, here is the $\sum$ and $$\sum$$ symbol of STIX
\end{document}
这显示了一个错误并且根本没有编译:(
答案1
您需要设置LS2
编码并避免覆盖largesymbols
:
\documentclass{article}
\usepackage{amssymb,amsmath}
\makeatletter
\DeclareFontEncoding{LS2}{}{\noaccents@}
\makeatother
\DeclareFontSubstitution{LS2}{stix}{m}{n}
\DeclareSymbolFont{xlargesymbols}{LS2}{stixex}{m}{n}
\DeclareMathSymbol{\sumop}{\mathop}{xlargesymbols}{"B3}
\begin{document}
Hi, here is the $\sumop$ and
\[ \sumop \]
symbol of STIX and here are the standard $\sum$ and
\[ \sum \]
symbols.
\end{document}
在您的示例文件中,文件中的第一个错误.log
是
LaTeX Error: Encoding scheme `LS2' unknown.
表示尚未定义编码方案。仔细研究文件stix.sty
,可以了解该文件如何设置编码。
答案2
安德鲁的回答只是部分。
如果要用\sum
STIX 符号完全替换,则必须重新定义\sum@
:
\documentclass{article}
\usepackage{amssymb,amsmath}
\makeatletter
\DeclareFontEncoding{LS2}{}{\noaccents@}
\DeclareFontSubstitution{LS2}{stix}{m}{n}
\DeclareSymbolFont{largesymbolsSTIX}{LS2}{stixex}{m}{n}
\DeclareMathSymbol{\sum@}{\mathop}{largesymbolsSTIX}{"B3}
\makeatother
\begin{document}
Hi, here is the $\sum$ and $\displaystyle\sum$ symbol of STIX
\end{document}
该
amsmath
包保存\sum
然后\sum@
重新定义\sum
为一个复杂的宏;它这样做是为了符合\dots
功能并尊重sumlimits
或nosumlimits
选项。仅仅定义
\sumop
并不能使符号符合上述特征。LaTeX 无法识别字体编码
LS2
,因此在引用字体之前应声明该编码。所需的\DeclareFontEncoding
命令可在 中找到stix.sty
。