朋友们,我有一个特殊的情况,我需要在文本中的一些单词中插入连音符(音乐)。连音符是连接乐谱上音符的曲线,表示它们将被连奏或唱出:
它会是这样的:
这些“文本”诽谤符号不会用在很长的单词上。
我考虑过使用\draw (point) arc (x:y:z)
,但我不知道如何获取这些单词的弧长。此外,如果出现换行符,我不知道该怎么办,尽管我不相信这种情况会发生。
我不知道是否有任何专门用于此目的的软件包。连音符在音乐中很常见,但在文本中并不常见(至少在这种情况下)。有什么想法吗?
答案1
这个bend right
选项对于这种情况非常有用:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand*\slur[1]{%
\tikz[baseline=0]{
\node[anchor=base,inner sep=0,outer sep=0] (A) {#1};
\path[-] (A.south west) + (\pgflinewidth,0) edge [bend right=20] ($(A.south east)-(\pgflinewidth,0)$);
}%
}
\begin{document}
Hello world, how \slur{are you}?
\end{document}
答案2
它不完全是弧线,但对于您的目的来说可能足够接近。使用表 175,全面的 LaTeX 符号列表:
\documentclass{article}
\usepackage{amsmath,mathabx}
\newcommand{\slur}[1]{$\undergroup{\text{#1}}$}
\begin{document}
Hello world, how \slur{are you}?
\end{document}
答案3
如果您确实想要弧线,这里有一个 TikZ 解决方案,尽管 Mike 的解决方案非常简单。pstricks
如果您喜欢,我还添加了一个版本。
\documentclass{article}
\usepackage{tikz}
\newcommand*{\slur}[1]{
\tikz[baseline=0]{
\node[inner sep={0pt}, outer sep={0pt},anchor=base] (A) {#1};
\draw[very thick] (A.base west) .. controls +(0,-.5) and +(0,-.5) .. (A.base east);}
}
% pstricks alternative
%\usepackage{pst-node}
%\newcommand*{\psslur}[1]{\rnode{A}{}#1\rnode{B}
% {}\nccurve[ncurv=.4,linewidth=1.2pt,angleA=-90,angleB=-90]{A}{B}}
\begin{document}
Some regular words. \slur{A slurred group} and some more regular words.
\end{document}
答案4
使用xelatex
或运行latex
\documentclass{article}
\usepackage{pst-node,xspace}
\newcommand*\psslur[2][]{\rnode[lb]{A}{#2\rnode[rb]{B}{}}%
\nccurve[#1,ncurv=.4,linewidth=1.2pt,
angleA=-80,angleB=-100]{A}{B}\xspace}
\begin{document}
\psslur{Some} regular words. \psslur[linecolor=red]{A slurred group}
and some more regular words.
\end{document}