如何在文档中使用 abc 符号制作多谱表音乐?

如何在文档中使用 abc 符号制作多谱表音乐?

我一直在尝试使用包 '''abc''' 来在文档中生成多谱表音乐符号。如果可能的话,我想用这个而不是 LilyPond 等来找到解决方案。在咨询文档对于 '''abc''' 包,我觉得这应该是可能的。内容如下:

该语言的最新扩展名为 ABC Plus,允许设置多个谱表和复音。将这些符号转换为乐谱的最佳程序之一是 '''abcm2ps''',它可以获取 ABC 或 ABC Plus 文件并将其转换为 PostScript 文件。该软件包的目的是允许 LATEX 用户在其文档中包含直接用 ABC (Plus) 编写的音乐小片段。

这是我尝试过的:

\documentclass{scrartcl}
\usepackage[utf8]{inputenc} 
\usepackage[generate,ps2eps]{abc} % I've tried different things within the [], but I still suspect the problem lies here... This works for single-stave stuff.
\begin{ducument}

  Here follows three identical renderings of Brother John:
  
  \begin{abc}[name=brother1]
    X:1
    T: Brother John
    L: 1/4
    K: F
    M: 4/4
    V:1
    FGAF | FGAF | ABcz | ABcz | c/d/c/B/ AF | c/d/c/B/ AF |
    V:2
    z4   | z4   | FGAF | FGAF | ABcz        | ABcz        |
  \end{abc}

  \begin{abc}[name=brother2]
    X: 1
    T: Brother John
    L: 1/4
    V: 1 clef=treble name="Soprano" sname="S"
    V: 2 clef=treble name="Contralto" sname="C"
    K: F
    %
    [V:1] FGAF | FGAF | ABcz | ABcz | c/d/c/B/ AF | c/d/c/B/ AF |
    [V:2] z4   | z4   | FGAF | FGAF | ABcz        | ABcz        |
  \end{abc}

  \begin{abc}[name=brother3]
    X: 1
    T: Brother John
    L: 1/4
    K: F 0&2
    %
    z4   & FGAF |z4    & FGAF | FGAF & ABcz | FGAF & ABcz | ABcz & c/d/c/B/ AF | ABcz & c/d/c/B/ AF |
  \end{abc}

\end{ducument}

前两种格式遵循ABC Plus 文档

第三种格式关注 ABC2MTEX,我尝试了一下,看看它是否能起作用。

我尝试使用以下方法编译

latex --shell-escape testfile
dvips -o testfile.ps testfile.dvi
ps2pdf testfile.ps

这适用于单谱表音乐。

我的三个例子中有一个可以以某种方式改进吗,或者是否存在完全不同的制作多谱表乐谱的方法?

答案1

我不知道什么时候abcm2ps开始在生成的 PostScript 文件中附加无用的数字,甚至没有任何选项可以关闭此功能。:-(

此外,如果文件中指定了标题.abc,则该-O=选项将使用它。:-(

这是一个临时的解决办法。

\documentclass{scrartcl}
\usepackage[generate,ps2eps]{abc}
\usepackage{xpatch}

\makeatletter
\renewcommand{\abc@parm}{-O\[email protected]\space -c}
\define@key{abc}{name}[]{%
  \if!#1!\stepcounter{abc@count}%
    \edef\abc@tempfile{\normalabcoutputfile-\@arabic\c@abc@count}%
  \else
    \def\abc@tempfile{#1001}%
  \fi
}
\makeatother

\begin{document}
  
\begin{abc}[name=brother1]
X: 1
T: Brother John
C: Traditional
L: 1/4
K: F
M: 4/4
V:1
FGAF | FGAF | ABcz | ABcz | c/d/c/B/ AF | c/d/c/B/ AF |
V:2
z4 | z4 | FGAF | FGAF | ABcz | ABcz |
V:1
GCFz |GCFz | z4 | z4 |
V:2
c/d/c/B/ AF | c/d/c/B/ AF | GCFz | GCFz|
\end{abc}

\end{document}

在此处输入图片描述

相关内容