文本中的仪表签名

文本中的仪表签名

我想在文中直接提及乐曲韵律,例如:

这首曲子是以4/4拍子写成的。

有没有办法以没有分数条的分数形式获得拍号(4/4)?我尝试了musixtex软件包,但当我这样做时:

\begin{music}\meterfrac44\end{music}

这个分数比文本的其余部分大得多。当然,我可以尝试将其缩小以适合文本,但也许有更简单的方法可以做到这一点?

答案1

我可以提出两个解决方案:

\documentclass{article}

%%% solution 1
\usepackage{amsmath}
\newcommand{\setmetera}[2]{\ensuremath{\genfrac{}{}{0pt}{}{#1}{#2}}}

%%% solution 2
\newcommand{\setmeterb}[2]{\ensuremath{%
  \vcenter{\offinterlineskip
    \halign{\hfil##\hfil\cr
            $\scriptstyle#1$\cr
            \noalign{\vskip1pt}
            $\scriptstyle#2$\cr}
  }}%
}

\begin{document}
This is common time: \setmetera{4}{4}

This is a ternary time: \setmetera{3}{4}

\bigskip

This is common time: \setmeterb{4}{4}

This is a ternary time: \setmeterb{3}{4}
\end{document}

在此处输入图片描述

对第二种解决方案的一些评论

的定义\setmeterb使用了一些低级 TeX 技巧。我使用它\ensuremath来将\vcenter结果相对于线居中(“几何中心”实际上会略高于基线)。

\vcenter我设置了一个使用原始 构建的对齐方式\halign,这避免了 LaTeX 使用tabular以确保行之间的间距相等,这正是我们在这种情况下,两行仅由数字组成;特别是行间粘连的插入被禁用\offinterlineskip。因此,最后的技巧是设置一个居中的列

\halign{\hfil#\hfil\cr ...}

然后添加两行,中间用 1pt 的空白隔开。#实际上必须是,##因为我们在定义中使用它。

答案2

我认为在文本中实现拍号的最佳方式是使用百合花图案包与字体规格包裹。

以下是一个例子:

在此处输入图片描述

编写此示例的代码是

\documentclass{article}

\usepackage{lilyglyphs}
\usepackage{fontspec}

\begin{document}

These are common times: \lilyTimeSignature{4}{4}, \lilyTimeSignature{2}{4}, 
\lilyTimeSignature{6}{8}

\end{document}

确保使用 XeLaTeX 进行编译!

答案3

另一个简单而综合的解决方案是使用musicography包:可以从引擎开始进行编译pdfLaTeX

\documentclass[a4paper,12pt]{article}
\usepackage{musicography}
\begin{document}
This piece is written in \musMeter{4}{4} or in \textbf{\musMeter{4}{4}}.
\end{document}

在此处输入图片描述

当然,您可以将字体更改为更具体的字体。

答案4

使用 MusiXTeX,我定义了一个命令来执行此操作(需要改进,但可以工作):

\NewDocumentCommand{\textmeter}{m m O{1.0} O{-3.0pt} O{0pt}}{%
    \adjustbox{scale=#3, raise=#4, margin=0pt 0pt 0pt 0pt, frame=#5}{%
    \setbox\toks@box\vbox{\hbox{\twelvebf#1}%
    \hbox{\twelvebf#2}}\vbox\@to15.5pt{\offinterlineskip
    \hbox\@to\wd\toks@box{\hfill\twelvebf#1\hfill}
    \hbox\@to\wd\toks@box{\hfill\twelvebf#2\hfill}}}%
}

您可以将其用作:

Some text \textmeter{2}{4} more text...

\notesintext您还可以在 MusiXTeX 文档中查看该命令。

相关内容