Harmonize a largura dos extratos MusiXTex automaticamente

Harmonize a largura dos extratos MusiXTex automaticamente

Foi encontrada uma resposta que é suficiente, mas não ideal.Quaisquer melhorias são bem-vindas.

Vários MusiXTeXextratos são colocados em alguns carros alegóricos como subfiguras de um documento. A variação de largura desses extratos dentro de um ambiente de figura pode não agradar aos olhos. As larguras não variam muito. Portanto, uma largura uniforme pode ser benéfica. Existe uma maneira de conseguir isso automaticamente? Nesse caso, a largura deve ser ajustada individualmente em cada ambiente de figura. Talvez seja razoável estender a questão para harmonizar a largura de vários extratos em diferentes carros alegóricos na mesma página.

O MWE a seguir mostra o problema e minha abordagem manual pode ser encontrada nas respostas.

\documentclass{article}
\usepackage{subfig,musixtex}

\begin{document}

\begin{figure}
\subfloat[narrow example]{%
\begin{music}%
\nobarnumbers%
\startextract%
\NOTEs\wh{cdefg}\enotes%
\endextract%
\end{music}}

\subfloat[wide example]{%
\begin{music}%
\nobarnumbers%
\startextract%
\NOTes\ha{cdef}\enotes\bar%
\NOTes\ha{ghi}\enotes%
\endextract%
\end{music}}

%\subfloat[test]{%from p. 116 of the manual, most like useless for this problem
%\begin{music}%
%\let\extractline\hbox
%\hbox to \hsize{%
%\hss\startextract\NOTes\hu{cd}\enotes\endextract\hss%
%\hss\startextract\NOTEs\wh{cd}\enotes\endextract\hss}%
%\end{music}
%}
\caption{Can these two examples automatically have the same width?}
\end{figure}

\end{document}

insira a descrição da imagem aqui

Observação.Peço desculpas antecipadamente pelo trocadilho ruim no título.

Responder1

Abaixo está uma abordagem manual, portanto a pergunta foi respondidaexceto pelo aspecto automático.

O uso de \hsize=\musicwidthpode ser mais natural e mais eficiente do que um \parboxou minipagepara encapsulamento. Escusado será dizer: uma definição global inalterada da largura satisfaz o requisito de largura constante na mesma página em vários figureambientes, mas pode não ser apropriada para todos os trechos. No entanto, pode existir um tamanho comprometedor para a maioria dos números.

\documentclass{article}
\usepackage{subfig,musixtex}

\newlength{\musicwidth}%new
\setlength{\musicwidth}{0.75\textwidth}%new, can be set for each instance of a figure environment 

\begin{document}

\begin{figure}
\centering%new

\subfloat[narrow example]{
%\fbox
{\begin{music}
\hsize=\musicwidth%new
\nobarnumbers%
\startpiece%new
\NOTEs\wh{cdefg}\enotes%
\endpiece%new
\end{music}}}

\subfloat[wide example]{
%\fbox
{\begin{music}
\hsize=\musicwidth%new
\nobarnumbers%
\startpiece%new
\NOTes\ha{cdef}\enotes\bar%
\NOTes\ha{ghi}\enotes%
\endpiece%new
\end{music}}}

\caption{This manual approach by try and error works. But there might be room for improvement.}
\end{figure}

\end{document}

insira a descrição da imagem aqui

Observação.Talvez o comentário sutil \startpiece%newprecise de explicação adicional: Em contraste com o MWE deHarmonize a largura dos extratos MusiXTex automaticamente, esta proposta requer a geração do *.mx2arquivo conforme escrito no manual https://ctan.org/pkg/musixtexna seção “sistema de três passagens” (leia o manual fino, RTFM).

informação relacionada