使用第 41 页中的自定义诗句模板示例,我想尝试左对齐模板。但是,诗句编号与歌词行不在同一行。它在和弦行中。我希望诗句编号位于歌词行前面
\documentclass{article}
\usepackage{leadsheets}
\defineversetypetemplate{flushleft}
{%
\noindent\llap{\verselabel\space}%
\flushleft
\unskip
\vspace*{-\baselineskip}
\ifobeylines
{%
\setlength\parskip{0pt}
\setleadsheets{ obey-lines-parskip = .5\baselineskip }
}
{%
\setlength\parskip{.5\baselineskip}
\vspace*{-0.5\parskip}
}%
}
{\endflushleft}
\setleadsheets{print-chords=true, chorus*/format = \bfseries}
\begin{document}
\begin{song}[verse/numbered, remember-chords]{
title={Reprehenderit in Voluptate Velit}%
}
\begin{chorus*}[template=flushleft]
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}[template=flushleft]
Ent^{A}rad en su presencia con can^{E}tares, can^{B}tares de alegría a nuestro D^{E}ios ^{E7} \\
Ent^{A}rad en su presencia con can^{E}tares, can^{B}tares de alegría a nuestro Dios.
\end{verse}
\begin{verse}[template=flushleft]
^Sabed que el Señor es nuestro ^Dios que ^nos hizo y somos suyos^. ^{} \\
^Sabed que somos su pu^eblo y las ov^ejas de su rebaño.
\end{verse}
\end{song}
\end{document}
答案1
模板flushleft
确实只是打印了诗节标签,然后如果打印了和弦,则将文本向下移动。一种解决方法是添加一行垂直空间,然后打印标签,然后添加负垂直空间以保持其之前的位置。
当然,这只应在实际打印和弦时进行。为此,您可以公开与选项关联的内部布尔值print-chords
,即\l__leadsheets_chord_print_bool
。
梅威瑟:
\documentclass{article}
\usepackage{leadsheets}
\ExplSyntaxOn
\DeclareExpandableDocumentCommand \ifprintchords {}
{ \bool_if:NTF \l__leadsheets_chord_print_bool }
\ExplSyntaxOff
\defineversetypetemplate{flushleft}
{%
\ifprintchords{\vspace*{\baselineskip}}{}%
\noindent\llap{\verselabel\space}%
\ifprintchords{\vspace*{-\baselineskip}}{}%
\flushleft
\unskip
\vspace*{-\baselineskip}
\ifobeylines
{%
\setlength\parskip{0pt}
\setleadsheets{ obey-lines-parskip = .5\baselineskip }
}
{%
\setlength\parskip{.5\baselineskip}
\vspace*{-0.5\parskip}
}%
}
{\endflushleft}
\setleadsheets{print-chords=true, chorus*/format = \bfseries}
\begin{document}
\begin{song}[verse/numbered, remember-chords]{
title={Reprehenderit in Voluptate Velit}%
}
\begin{chorus*}[template=flushleft]
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}[template=flushleft]
Ent^{A}rad en su presencia con can^{E}tares, can^{B}tares de alegría a nuestro D^{E}ios ^{E7} \\
Ent^{A}rad en su presencia con can^{E}tares, can^{B}tares de alegría a nuestro Dios.
\end{verse}
\begin{verse}[template=flushleft]
^Sabed que el Señor es nuestro ^Dios que ^nos hizo y somos suyos^. ^{} \\
^Sabed que somos su pu^eblo y las ov^ejas de su rebaño.
\end{verse}
\end{song}
\end{document}
结果:
请注意,虽然在自定义模板的其他地方也可以添加和减少垂直空间,但在我看来这不是一个非常干净的解决方案。也许包作者 Clemens(他是 TeX.SE 的常客)可以提供更好的解决方案 - 一种可能性是某种\printlabel
命令会延迟打印标签,直到知道正确的位置。