我是 LaTeX 新手。这个问题与树有关。是否有任何与 TikZ 树相关的问题可以组合起来重现以下图像?
原图来自维基百科。如果写得不好,请随意关闭。
答案1
对于一次性图表,大卫的答案已经足够好了,尽管他可能应该使用图片模式而不是\bigvee
连接模式。:)但如果你要做的声音改变不止这一个,那么使用宏可能会有所帮助。
forest
这是一个使用命令输入每个更改的版本\pcorr
:
\pcorr{top vowel}[second-top vowel]{bottom vowel}
该命令的版本*
翻转树来表示分裂和合并:
\pcorr*{top vowel}[first bottom vowel]{second bottom vowel}
以及\pslash
添加音素斜线和标签的命令:
\pslash[top label][bottom label]
为了使输入稍微容易一些,我将标签和结束斜杠包装到环境中:
\begin{soundchange}{top label}{bottom label} ... \end{soundchange}
这是完整的示例(使用 LuaLaTeX 进行处理)。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage[linguistics]{forest}
\forestset{pcorr/.style={inner sep=1pt,outer sep=1pt},
pcorr up/.style={for tree={pcorr,grow=north,anchor=south}},
pcorr down/.style={for tree={pcorr,grow=south,anchor=south},for next leaf={baseline}}}
\NewDocumentCommand{\pcorr}{smom}{
\IfNoValueTF{#3}
{\begin{forest}pcorr up[#4[#2]]\end{forest}}
{\IfBooleanTF{#1}
{\begin{forest}pcorr down[#2[#3][#4]]\end{forest}}
{\begin{forest}pcorr up[#4[#3][#2]]\end{forest}}
}
}
\NewDocumentCommand{\pslash}{oo}{%
\IfNoValueF{#1}{\begin{forest}pcorr up[#2,[#1,no edge]]\end{forest}~}
\begin{forest}pcorr up[/[/,no edge]]\end{forest}
}
\NewDocumentEnvironment{soundchange}{mm}
{\pslash[#1][#2]}
{\pslash\par}
\begin{document}
\begin{soundchange}{Latin}{Proto-Romanian}
\pcorr{iː}{i}
\pcorr{i}[eː]{e}
\pcorr{e}{ɛ}
\pcorr{aː}[a]{a}
\pcorr{o}[oː]{o}
\pcorr{u}[uː]{u}
\end{soundchange}
\bigskip
\pslash[Middle English][Modern English]
\pcorr*{u}[ʌ]{ʊ}
\pslash
\end{document}
答案2
ː
是 U+02D0 MODIFIER LETTER TRIANGULAR COLON,有几种字体可用,例如,使用 lualatex:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Noto Sans}
\begin{document}
\begin{tabular}{*{13}{c}}
Latin & / & iː & i & eː & e & aː & a & o & oː & u & uː & / \\
&
& $|$ &
\multicolumn{2}{c}{$\bigvee$} &
$|$ &
\multicolumn{2}{c}{$\bigvee$} &
\multicolumn{2}{c}{$\bigvee$} &
\multicolumn{2}{c}{$\bigvee$} &
\\
Proto-Romanian &
/ &
i &
\multicolumn{2}{c}{e} &
ɛ &
\multicolumn{2}{c}{a} &
\multicolumn{2}{c}{o} &
\multicolumn{2}{c}{u} &/
\end{tabular}
\end{document}