该moderncv
包无法识别\it
命令。当然,我们可以改用\textit
。问题是 BibTeX 生成的文件可能包含\it
命令...
bbl
因此,需要编辑文件以将所有\it
命令更改为\textit
命令。 对于同一类型的其他命令也是如此:\rm
,\bf
等等。
有没有办法强制使用 BibTeX\textit
而不是\it
或者强制moderncv
理解\it
?
答案1
这不是问题\moderncv
;这些命令自 LaTeX2e 以来就已过时。除其他问题外,\bf
还有\it
不要嵌套或尊重字体选择方案。
现代 LaTeX 中的替代品是\itshape
,它的语义可能正是您真正想要的。如果您坚持\it
使用 别名,那么可以使用\newcommand
(但这是一个坏主意,因为旧代码将期望不同的行为。)。如果您必须恢复原始命令,\DeclareOldFontCommand
,但您就是搬起石头砸自己的脚。
答案2
如果\it
是通过某种 bibtex 样式插入的,您当然可以采用这种方法:用另一个名称保存 bst,然后搜索 \it 并替换它,例如\itshape
或任何合理的内容。
除此之外,您还可以按照自己认为合适的任何方式定义未定义的命令。
如果\it
仅用于文本,那么\newcommand\it{\normalfont\itshape}
或\newcommand\it{\itshape}
可能是合理的替代品,如果它也用于数学,那么你可以使用
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
或者
\DeclareOldFontCommand{\it}{\itshape}{\mathit}
该变体\normalfont
模仿了 better 的旧行为\it
,没有它,它就像现代的 \itshape 一样工作,并允许与其他字体命令嵌套。