排版和弦进行

排版和弦进行

为了实现此功能,您需要安装新的 Real Book 字体和实验realbookchords包裹由 cgnieder 编写,然后使用 XeLaTeX 或 LuaLaTeX 进行编译。

我正在开发一组简单的宏来排版和弦进程。以下是 MWE:

\documentclass{article}
\usepackage{array, collcell, realbookchords}
\setlength{\unitlength}{12pt}
\renewcommand{\|}{\rule[-.2\unitlength]{.7pt}{1.4\unitlength}} % measure bar
\newcommand{\zif}[1]{\multicolumn{4}{l}{\fbox{\sffamily #1}}\\} % ziffer
\newcommand{\hd}{\Large\textsf{\o}} % half diminished
\newenvironment{chordprog}[1]
               {\bigskip\bigskip
                \SongTitle{#1}
                \par\medskip\noindent
                \begin{tabular}{l !{\|} l !{\|} l !{\|} l}}
               {\end{tabular}}
\newcolumntype{Z}{>{\collectcell\rbc}l<{\endcollectcell}}
\newenvironment{chordprog*}[1]
               {\bigskip\bigskip
                \SongTitle{#1}
                \par\medskip\noindent
                \begin{tabular}{ZZZZ !{\|} ZZZZ !{\|} ZZZZ !{\|} ZZZZ}}
               {\end{tabular}}
\setmainfont{Century Gothic}
\RBCsetup{songtitle-format-center={\rmfamily\LARGE\bfseries}}

\begin{document}
\begin{chordprog}{After You've Gone}
\zif A
\rbc{Abmaj} & \rbc{Abmi6} \rbc{Db9} & \rbc{Ebmaj} & \rbc{Gmi7} \rbc{C9} \\
\rbc{F9}   & \rbc{Bb9} & \rbc{Eb6} & \rbc{Bbmi7} \rbc{Eb7} \\
\zif B
\rbc{Abmaj} & \rbc{Abmi6} \rbc{Db9} & \rbc{Ebmaj} & \rbc{Gmi7} \rbc{C9} \\
\rbc{Fmi} \rbc{C7alt} & \rbc{Fmi7} \rbc{Db9} & \rbc{Ebmaj} \rbc{D\hd} \rbc{G7} & \rbc{Cmi7} \rbc{A0} \\
\rbc{Eb6} \rbc{C7} & \rbc{Fmi7} \rbc{Bb7} & \rbc{Eb6} & \rbc{Bbmi7} \rbc{Eb7}
\end{chordprog}

\begin{chordprog*}{At Last}
\zif{Intro}
F && F7 && Bb && B0 && F & F7/{Eb} & D7\b9 && Db7 && C7\\
\zif{Verse 1.}
F && Dmi7 && Gmi7 && C7 && F && Dmi7 && Gmi7 && Cmi7  & C7 \\
F && Dmi7 && Gmi7 && C7 && F & F7/{Eb} & D7\b9 && Db7 && Gmi7 & C9 \\
\end{chordprog*}
\end{document}

output

评论:在无星号环境中,一个表格单元格对应一个小节;在带星号的版本中,一个单元格对应一个四分音符。当我想要对齐节拍而不仅仅是小节时,后者是必需的。它还允许我在\rbc(realbookchord) 宏中包装表格单元格,但即使一个小节中有一两个和弦也会创造更多空间。

我要求

  1. 如何简化/美化此代码?(竖线似乎有点不雅。)
  2. 如何让带星号的环境与不带星号的环境一样窄?可能不那么漂亮,但我想把它打印在小纸上,然后贴在没有乐谱架的合成器上:)

答案1

您可以调整表格列之间的间距。下面我使用

\newcolumntype{Z}{>{\collectcell\rbc}l<{\endcollectcell}@{\,}}

取消\@{\,}了通常的列间空间,而是增加了\,。在表格列规范中,我一开始就完全取消了:

\tabular{@{}ZZZZ !{\|} ZZZZ !{\|} ZZZZ !{\|} ZZZZ}

我还对环境定义做了一些小改动。 和\begin\end不需要的。它们添加了一个额外的组,如果输入有误,会导致误导性错误消息。这些更改还反映了我对命令所做的小修复\SontTitle。 的新版本realbookchords可以在在 Bitbucket 网站上

由于我更喜欢​​在这种类型的主谱中看到每个节拍,所以我添加了一个版本,每个节拍都有一条小规则,没有和弦变化。(但这不是一个完美的解决方案)。我也会在每行的开头和结尾添加小节。

% arara: lualatex
\documentclass{article}
\usepackage{array,collcell,graphicx}
\usepackage{realbookchords}[2013/09/07]
\setlength{\unitlength}{12pt}
\renewcommand{\|}{\rule[-.2\unitlength]{.7pt}{1.4\unitlength}} % measure bar
\newcommand{\zif}[1]{\multicolumn{4}{@{}l}{\fbox{\sffamily #1}}\\[3pt]} % ziffer
\newcommand{\hd}{\Large\textsf{\o}} % half diminished

\protected\def\qu{\rotatebox{-45}{\rule[.75ex]{2pt}{8pt}}}

\newenvironment{chordprog}[1]
  {%
    \par
    \SongTitle{#1}%
    \par\medskip\noindent
    \tabular{@{}l !{\|} l !{\|} l !{\|} l}%
  }
  {\endtabular\bigskip\bigskip}

\newcolumntype{Z}{>{\collectcell\rbc}l<{\endcollectcell}@{\,}}
\newenvironment{chordprog*}[1]
  {%
    \par
    \SongTitle{#1}%
    \par\medskip\noindent
    \tabular{@{}ZZZZ !{\|} ZZZZ !{\|} ZZZZ !{\|} ZZZZ}%
  }
  {\endtabular\bigskip\bigskip}
% \setmainfont{Century Gothic}
\RBCsetup{songtitle-format-center={\rmfamily\LARGE\bfseries}}

\begin{document}

\begin{chordprog}{After You've Gone}
\zif A
\rbc{Abmaj} & \rbc{Abmi6} \rbc{Db9} & \rbc{Ebmaj} & \rbc{Gmi7} \rbc{C9} \\
\rbc{F9}   & \rbc{Bb9} & \rbc{Eb6} & \rbc{Bbmi7} \rbc{Eb7} \\
\zif B
\rbc{Abmaj} & \rbc{Abmi6} \rbc{Db9} & \rbc{Ebmaj} & \rbc{Gmi7} \rbc{C9} \\
\rbc{Fmi} \rbc{C7alt} & \rbc{Fmi7} \rbc{Db9} & \rbc{Ebmaj} \rbc{D\hd} \rbc{G7} & \rbc{Cmi7} \rbc{A0} \\
\rbc{Eb6} \rbc{C7} & \rbc{Fmi7} \rbc{Bb7} & \rbc{Eb6} & \rbc{Bbmi7} \rbc{Eb7}
\end{chordprog}

\begin{chordprog*}{At Last}
\zif{Intro}
F && F7 && Bb && B0 && F & F7/{Eb} & D7\b9 && Db7 && C7\\
\zif{Verse 1.}
F && Dmi7 && Gmi7 && C7 && F && Dmi7 && Gmi7 && Cmi7  & C7 \\
F && Dmi7 && Gmi7 && C7 && F & F7/{Eb} & D7\b9 && Db7 && Gmi7 & C9 \\
\end{chordprog*}

\begin{chordprog*}{At Last}
 \zif{Intro}
  F   & \qu     & F7    & \qu &
  Bb  & \qu     & B0    & \qu &
  F   & F7/{Eb} & D7\b9 & \qu &
  Db7 & \qu     & C7    & \qu \\
 \zif{Verse 1.}
  F    & \qu & Dmi7 & \qu &
  Gmi7 & \qu & C7   & \qu &
  F    & \qu & Dmi7 & \qu &
  Gmi7 & \qu & Cmi7 & C7 \\
  F    & \qu & Dmi7 & \qu &
  Gmi7 & \qu & C7 & \qu &
  F & F7/{Eb} & D7\b9 & \qu &
  Db7 & \qu & Gmi7 & C9 \\
\end{chordprog*}


\end{document}

enter image description here

相关内容