最近的更新破坏了“歌曲”包

最近的更新破坏了“歌曲”包

附言:我不想碰这个,但我真的需要重新考虑这个问题。此时我有什么选择?我可以暂时使用旧版本的 latex (如何?),或者其他版本的软件包吗songs


我正在使用songs 包裹排版一小本歌曲和和弦。这曾经工作得很好,但当我试图重新编译几周前我最后一次处理的源文件时,布局就被破坏了。在环境中\begin{songs},换行符被逐字处理。这在lyric模式下仍然有效。(请参阅下面的 MWE。)chorded但是,当我启用模式时,这些换行符不再被尊重。

我已经用分隔符 ¶ 标记了源代码中的换行符,以便更容易看到问题。

\documentclass{article}
\usepackage[chorded]{songs}
%\usepackage[lyric]{songs}

\newindex{myindex}{index}

\begin{document}
\begin{songs}{myindex}

\beginsong{And Can It Be}
\beginverse
\[F]And \[F/A]can \[(C)]it \[F]be that \[Gm/B&]I \[C7]should \[F]gain¶
An \[B&]in\[C]terest \[F/A]in \[C/E]the \[C/G]Sav\[G7]ior's \[C]blood?¶
Died He \[F/C]for me, \[C] who \[F/A]caused \[F]His \[C]pain?¶
\endverse

\beginchorus
Amazing \[C]love! How \[C7/E]can it \[F]be¶
That \[B&]Thou, my \[F/A]God, \[Gm/B&]shouldst \[F/C]die \[C7]for \[F]me?
\endchorus
\endsong

\end{songs}
\end{document}

songs软件包自 2018 年以来一直没有更新,所以我怀疑基础LaTeX系统中一定发生了一些变化,因为直到最近它才正常工作。我使用的是最新版本TeX Live 2022

lyric模式(顶部)工作正常,chorded模式(底部)刚刚损坏:

在此处输入图片描述

答案1

问题是 LaTeX 改变了\obeylines命令。你可以试试这个补丁。作者已经收到通知,但我也会讨论 LaTeX 是否应该做一个急救补丁。

更新

我们在 latex 中添加了急救功能。此急救功能现在可与 latex-dev 一起使用,并将在 6 月 23 日发布的下一个 LaTeX 版本中提供(除非软件包已更新)。

\documentclass{article}
\usepackage[chorded]{songs}
%\usepackage[lyric]{songs}

\newindex{myindex}{index}
\makeatletter
\renewcommand\SB@obeylines{%
  \let\obeyedline\SB@par%
  \obeylines%
  \let\@par\SB@@par%
}
\makeatother
\begin{document}
\begin{songs}{myindex}

\beginsong{And Can It Be}
\beginverse
\[F]And \[F/A]can \[(C)]it \[F]be that \[Gm/B&]I \[C7]should \[F]gain¶
An \[B&]in\[C]terest \[F/A]in \[C/E]the \[C/G]Sav\[G7]ior's \[C]blood?¶
Died He \[F/C]for me, \[C] who \[F/A]caused \[F]His \[C]pain?¶
\endverse

\beginchorus
Amazing \[C]love! How \[C7/E]can it \[F]be¶
That \[B&]Thou, my \[F/A]God, \[Gm/B&]shouldst \[F/C]die \[C7]for \[F]me?
\endchorus
\endsong

\end{songs}
\end{document}

在此处输入图片描述

答案2

我用歌曲包使用 Texlive 没有任何问题。使用 Miktex,我明白你遇到的问题。另一种方法是使用leadsheets 包。它比 songs 包更灵活,但您需要创建自己的模板才能利用所有自定义功能。
这里有一个可供您开始使用的工作示例

\documentclass{article}
\usepackage{xcolor}
\usepackage{leadsheets}
\usepackage{booktabs}
\setlength\heavyrulewidth{0.25ex}
\definesongtitletemplate{custom}{
    \ifsongmeasuring
    {\section*}
    {\section*}{%
\begin{tabular}{p{0.05\textwidth}p{0.95\textwidth}}
    \toprule
    \noindent{\color{blue!50}1}&{\songproperty{title}}\\
\end{tabular} 
\vskip -0.15\baselineskip%
\begingroup\normalfont\footnotesize
\noindent\begin{tabular}{p{0.05\textwidth}p{0.95\textwidth}}
    \ifsongproperty{interpret}%
        {&  \GetTranslation{leadsheets/interpret}\\}
        {}% 
    \ifsongproperty{composer}%
        {&  \GetTranslation{leadsheets/composer}
            \printsongpropertylist{composer}{ \& }{, }{ \& }
            \\}
        {}%
    \ifsongproperty{lyrics}%
        {&  \GetTranslation{leadsheets/lyrics}
            \printsongpropertylist{lyrics}{ \& }{, }{ \& }
            \\}
        {}% 
    \ifsongproperty{key}
        {& \setchords{
             major = -\GetTranslation{leadsheets/major} ,
             minor = -\GetTranslation{leadsheets/minor}
             }%
         \GetTranslation{leadsheets/key}: %
         \expandcode{\writechord{\songproperty{key}}} \\%
         }
     {}%
    \midrule
\end{tabular}
\endgroup    
    }
}

\setleadsheets{verse/numbered=true, align-chords = {l}}
\setleadsheets{print-chords=true, title-template=custom, chorus*/format = \bfseries}
\setchords{format={\color{blue}\sffamily\small\bfseries\itshape}}
\begin{document}
    \begin{song}[verse/numbered, remember-chords]{
            title={Reprehenderit in Voluptate Velit},
            interpret={Copycat},
            composer={inspired by others},
            music={No One Knows},
            lyrics={John Doe},
            key={Car Keys}
        }
        \begin{chorus*}
            LOR^{E}EM ipsum dolor sit A^{A}MET, consect^{B7}etur ADIPIS^*{E}CING \\
            elit, ^{A}sed do eiusmod tempor ^{B7}incididunt ut labore et dolore magna a^{E}liqua LOR^{E}EM ipsum dolor sit A^{A}MET, consect^{B7}etur ADIPIS^*{E}CING 
        \end{chorus*}
        
        \begin{verse}
            Lor^{E}em ipsum dolor sit A^{A}MET, consect^{B7}etur adipis^*{E}cing \\
elit, ^{A}sed do eiusmod tempor ^{B7}incididunt ut labore et dolore magna a^{E}liqua LOR^{E}EM ipsum dolor sit A^{A}met, consect^{B7}etur adipis^*{E}cing 
        \end{verse}
        
        \begin{verse}
            Lor^{E}em ipsum dolor sit A^{A}MET, consect^{B7}etur adipis^*{E}cing \\
elit, ^{A}sed do eiusmod tempor ^{B7}incididunt ut labore et dolore magna a^{E}liqua LOR^{E}EM ipsum dolor sit A^{A}met, consect^{B7}etur adipis^*{E}cing
        \end{verse}
    \end{song}
    
\end{document}

在此处输入图片描述

相关内容