我尝试MusiXTeX
按照描述的三遍系统来编制我的乐谱(用包准备)这里(第 1.3 部分)。因此,我先运行etex
我的 .tex 文件,然后运行musixflx
上一步中创建的 .mx1 文件,然后etex
再次运行。问题是,它没有产生任何结果(我的意思是 pdf 输出保持不变)。我认为这可能与执行第二遍(运行musixflx
)生成的 .mx2 文件似乎为空有关。我使用 TeXStudio 编辑器和 TeXLive 发行版。
这是我的 MWE:
\documentclass[a4paper,12pt]{article}
\usepackage{musixtex,etex}
\begin{document}
\begin{music}
\nobarnumbers
\setstaffs1{2}
\setclef1\bass
\generalsignature{-1}
\startextract
\notesp
{\zql{`f}}\qu{`h} {\zql{f}}\qu{h} {\zql{f}}\qu{h} {\zw f}\isluru0i\hu{i*} \tslur0{'c}\hu{c*} \qu{`f*} \caesura
\wh{f**} {\lql f}\qu{g} {\zql f}\qu{h} {\zhl f}\hu{i*} {\zwh f}\wh{i**}
|
\qu{fff} {\lw f}\ibsluru0g\hu{g*} \tslur0h\hu{h*} \qu{f*} \caesura
\wh{f**} {\lql f}\qu{g} {\zql f}\qu{h} {\zhl f}\hu{i*} {\zwh f}\wh{i**}
\en\bar
\notesp
{\zwqq{c}}\wqq{`f****} {\zhu{i}}\hl{c*} {\zw{h}}\wh{f**}
|
{\zwqq{f}}\wqq{h****} {\zhl{e}}\hu{g*} {\zw{d}}\wh{f**}
\en
\Endpiece
\zendextract
\end{music}
\end{document}
答案1
我尝试使用您的样本 latex
musixflx
并latex
进行处理,对我来说,似乎样本本身没有产生任何.mx2
文件。
这文档说最好的例子就是文档本身,为什么不尝试一下呢?
在这里,我给你附上了一个有用的工具makefile
,使用命令行可以非常容易。
# Author: [email protected]
# Date: 05-04-2018
# MusiXTeX musixdoc tutorial example makefile
## First, set the main filename = YOUR_TEX_FILE_NAME_WITHOUT_.TEX
# $ make, to run commands in this file
# $ make read, to read the pdf file
# $ make clean, to clean the inter file
filename=YOUR_TEX_FILE_NAME
all:
latex ${filename}
musixflx ${filename}
bibtex ${filename}||true
latex ${filename}
makeindex ${filename}
latex ${filename}
latex ${filename}
dvips -e0 ${filename}
ps2pdf ${filename}.ps
read:
evince ${filename}.pdf &
oread:
okular ${filename}.pdf
clean:
-rm -f *.aux
-rm -f *.ps
-rm -f *.dvi
-rm -f *.idx
-rm -f *.ilg
-rm -f *.ind
-rm -f *.mx1
-rm -f *.mx2
-rm -f *.log
-rm -f *.toc
-rm -f *.bbl
-rm -f *.blg
-rm -f *.out
-rm -f make/bib
答案2
我建议使用 Visual Studio Code 只需单击一下即可使用 latexmkrc 文件进行编译:
$xelatex = 'internal musixlatex %R %O %S';
push @generated_exts,"mx2";
push @generated_exts,"mx1";
sub musixlatex {
my $root = shift;
# Define root filename for the mx1 and mx2 files
# Note that $aux_dir1 includes directory separator
# and it equals $out_dir1 if only the out_dir is set.
my $mx = "$aux_dir1$root";
my @args = @_;
if ( $pass{$rule} <= 1 ) {
print "======= FIRST PASS: Deleting '$mx.mx2' =======\n";
unlink "$mx.mx2";
print "==== Generating '$mx.mx1' then '$mx.mx2' ===\n";
my $ret = system( "xelatex @args" );
if ($ret) { return $ret; }
$ret = system( "musixflx $mx" );
if ($ret) { return $ret; }
}
return system( "xelatex @args" );
}
另外,我重新配置了您的文件,如下所示:
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{polyglossia}
\setmainlanguage{spanish}
\usepackage{musixtex}
\input{musixlyr}
\input{musixlyr}
\input {musixcho}
\input {musixdat}%fecha
\input {musixfll}
\input {musixgre}%gregoriano
\input {musixper}%percusión
\input {musixppff}
\input {musixstr}
\input {musixvbm} % experimental vectorized beams
\input {musixdbr} % lineas de barras punteadas, discontinuas y arbitrariamente discontinuas
\input {musixbm} % compatibilidad garrapateas con ganchos o con barras
\input {musixbbm} % compatibilidad semi garrapateas con ganchos o con barras
\begin{document}
\begin{music}
\nobarnumbers
\setstaffs1{2}
\setclef1\bass
\generalsignature{-1}
\startextract
\notesp
{\zql{`f}}\qu{`h} {\zql{f}}\qu{h} {\zql{f}}\qu{h} {\zw f}\isluru0i\hu{i*} \tslur0{'c}\hu{c*} \qu{`f*} \caesura
\wh{f**} {\lql f}\qu{g} {\zql f}\qu{h} {\zhl f}\hu{i*} {\zwh f}\wh{i**}
|
\qu{fff} {\lw f}\ibsluru0g\hu{g*} \tslur0h\hu{h*} \qu{f*} \caesura
\wh{f**} {\lql f}\qu{g} {\zql f}\qu{h} {\zhl f}\hu{i*} {\zwh f}\wh{i**}
\en\bar
\notesp
{\zwqq{c}}\wqq{`f****} {\zhu{i}}\hl{c*} {\zw{h}}\wh{f**}
|
{\zwqq{f}}\wqq{h****} {\zhl{e}}\hu{g*} {\zw{d}}\wh{f**}
\setdoubleBAR\en\setdoubleBAR
\endextract
\end{music}
\end{document}
输出如下: