我正在尝试使用该musixtex
包在我的文本上使用力度标记。除了中音钢琴标记 (\mp) 无法识别外,它运行良好。根据手册(第 2.17.5 节),我的代码是正确的(http://icking-music-archive.org/software/musixtex/musixdoc.pdf)。有人能发现这里出了什么问题吗?
\documentclass{article}
\usepackage{musixtex}
\begin{document}
\pppp, \ppp, \pp, \p, \mf, \f, \ff, \fff, \ffff, \sF % all these work fine
\mp % but this doesn't
\end{document}
答案1
\mp
实际上是它自己定义的命令\LaTeX
,并且只能在数学模式(产生∓
)下使用,这就是出现错误的原因。要覆盖该命令,只需\let\mp\mezzopiano
在 后添加\usepackage{musixtex}
。
请注意,这样做会覆盖LaTeX
其他软件包可能会或可能不会严重依赖的命令 - 或者至少期望以某种方式工作。
\mezzopiano
如果不想覆盖,您也可以使用较长的名称\mp
。
作为\mp
一个LaTeX
宏,包会小心地避免覆盖它。而其他所有命令都按预期定义,例如中强音:\def\mf{{\ppff m\p@kern\f@kern f}}
在musixtex.tex
,中音钢琴定义为:(\def\mp@{{\ppff m\p@kern p}}
注意@
);紧接着,更长的命令\mezzopiano
定义如下:\let\mezzopiano\mp@
。
类似地,强音不会被调用\sf
,但\sF
可以避免与重要的LaTeX
宏发生冲突(\sf
切换到无衬线字体)。按照该示例,您可以使用\let\mP\mezzopiano
而不是\let\mp\mezzopiano
,这样就不会覆盖标准命令。
\documentclass{article}
\usepackage{musixtex}
\let\mp\mezzopiano
\begin{document}
\pppp, \ppp, \pp, \p, \mf, \f, \ff, \fff, \ffff, \sF
\mp
\end{document}