我正在尝试使用 stix 包在伪代码中排版符号。我尝试过,\boldsymbol
但这并没有使字符变粗。我设法使用 bm 包使字符变粗,但出现了奇怪的阴影(见下图)。这是 MWE:
\documentclass[preview]{standalone}
\usepackage[]{stix}
\DeclareSymbolFont{letters}{OML}{ztmcm}{m}{it}
\DeclareSymbolFont{greeksymbols}{LS1}{stix}{m}{it}
\DeclareMathSymbol{\chi}{\mathord}{greeksymbols}{"1F}
\usepackage{bm}
\newcommand{\bs}[1] {\bm{#1}}
%\newcommand{\bs}[1] {\boldsymbol{#1}}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithmic}[0]
\Function{getLocalArrays}{$w$}
\State{$\left\{ \bs k, \bs f , \Omega \right\} \gets \bs \chi$}
\EndFunction
\end{algorithmic}
\end{document}
答案1
因为我知道你想要的是w
的风格mathptmx
(或类似的),所以我猜想这newtxmath
会比旧的 更好地支持粗体字母mathptmx
。所以我搜索了newtxmath.sty
字母和粗体调用。
\documentclass[preview]{standalone}
\usepackage[]{stix}
%\DeclareSymbolFont{letters}{OML}{ztmcm}{m}{it}% mathptmx
\DeclareSymbolFont{letters}{OML}{ntxmi}{m}{it}% newtxmath
\SetSymbolFont{letters}{bold}{OML}{ntxmi}{b}{it}% newtxmath
\DeclareSymbolFont{greeksymbols}{LS1}{stix}{m}{it}% stix
\SetSymbolFont{greeksymbols} {bold}{LS1}{stix} {b}{it}
\DeclareMathSymbol{\chi}{\mathord}{greeksymbols}{"1F}
\usepackage{bm}
\newcommand{\bs}[1] {\bm{#1}}
%\newcommand{\bs}[1] {\boldsymbol{#1}}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithmic}[0]
\Function{getLocalArrays}{$w$}
\State{$\left\{ \bs k , \bs f , \Omega \right\} \gets \bs \chi + \bs w$}
\EndFunction
\end{algorithmic}
\end{document}
答案2
主要问题是
- 字体
ztmcm
没有粗体变体 - 你没有为
greekletters
符号字体声明粗体版本
只是因为不喜欢“w”而重新声明letters
符号字体似乎是一个错误的选择:相反,应该这样做。
\documentclass[varwidth,border=4]{standalone}
\usepackage{amsmath}
\usepackage[]{stix}
\usepackage[noend]{algpseudocode}
\newcommand{\bs}[1]{\bm{#1}}
\DeclareSymbolFont{otherletters}{OML}{ztmcm}{m}{it}
\DeclareMathSymbol{w}{\mathalpha}{otherletters}{`w}
\usepackage{bm}
\begin{document}
\begin{algorithmic}[0]
\Function{getLocalArrays}{$w$}
\State{$\{ \bs{k}, \bs{f}, \Omega \} \gets \bs{\chi}+\chi$}
\EndFunction
\end{algorithmic}
\end{document}
正如您从图中看到的,第一个字是粗体的。
答案3
用Xe
或Lua
Latex 进行编译。
\documentclass[preview]{standalone}
\usepackage{unicode-math}
\setmathfont{STIX Two Math}
%\DeclareSymbolFont{letters}{OML}{ztmcm}{m}{it}% mathptmx
\DeclareSymbolFont{letters}{OML}{ntxmi}{m}{it}% newtxmath
\SetSymbolFont{letters}{bold}{OML}{ntxmi}{b}{it}% newtxmath
\newcommand{\bs}[1] {\ensuremath{\symbf{#1}}}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithmic}[0]
\Function{getLocalArrays}{$w$}
\State{$\left\{ \bs k , \bs f , \Omega \right\} \gets \symbf{\chi}+\chi+\symbfup{\chi} + \bs w$}
\EndFunction
\end{algorithmic}
\end{document}