texshade:如何更改sequencelogo 的字体形状

texshade:如何更改sequencelogo 的字体形状

我意识到这是一个关于某个包的非常具体的问题:texshade,但我也意识到这里的一些用户也使用这个包,也许能够帮助我

我进行了多序列比对,并且仅显示序列徽标:

\documentclass{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{texshade}

\begin{document}
\begin{texshade}{sample.aln}
\setfamily{numbering}{sf}
\setfamily{names}{sf}
\setfamily{residues}{sf}
\setfamily{features}{sf}
\setfamily{featurestyles}{sf}
\setfamily{hideblock}{sf}
\setfamily{legend}{sf}
\hideconsensus
\hidenumbering
\hideseqs
\showsequencelogo{bottom}
\end{texshade}
\end{document}

正如您在本例中看到的,我尝试将所有可能的字体功能设置为无衬线字体。但是序列徽标本身仍然显示为 rm 字体。徽标中的标签(例如单词“logo”)已正确更改为 SF 字体。

我怀疑当前加载的 mathfont 用于渲染sequencelogo?

注意:未显示实际的字体规格字体选择。

可以下载示例 ALN 文件这里

答案1

哇。14666 行几乎未记录的代码让调试变得很头疼。问题的根源是 中的两行,texshade.sty其中明确调用了 fontfamily cmss,而不是\sfdefault。这导致字体在使用 XeLaTeX 时被替换。由于这些行位于非常大的宏定义中,因此只给您几行额外的代码添加到序言中是不切实际的。相反,请复制texshade.sty并将其放在本地 texmf 文件夹中。然后进行以下更改:

12833 行

\fontfamily{\sfdefault}\fontseries{m}\fontshape{n}\selectfont% changed cmss to \sfdefault

14049 行

\fontfamily{\sfdefault}\fontseries{m}\fontshape{n} % changed cmss to \sfdefault

这应该可以解决问题。(如果由于某种原因这些行号不对应,则需要将文件中的所有实例更改cmss为。)\sfdefault

请注意,使用本地副本时,对软件包的任何更新都不会反映在您的副本中,因此如果软件包发生变化,您需要重新应用修复。(或者更好的方法是,将其报告给作者,并要求他进行更改。)

相关内容