删除元音包元音图中的垂直线

删除元音包元音图中的垂直线

我正在使用 vowel 包绘制我语言的口元音和鼻元音图表。中开元音和中闭元音之间存在中和,因为只有 ɛ̰ 和 ɔ̰。但在我的图表中,鼻元音图表中仍留有一条水平线,我的主管要求将其移除(我在图片上用黄色标出了要移除的线)。你能帮我吗?谢谢

以下是最简代码:

\documentclass[10pt,a4paper]{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}

\usepackage{vowel}

\begin{document}


\parbox{0.5\textwidth}{
    \centering
    \begin{center}
\begin{vowel}
\putcvowel{i}{1}
\putcvowel{u}{8}
\putcvowel{e}{2}
\putcvowel{ɛ}{3}
\putcvowel{a}{15}
\putcvowel{ɔ}{6}
\putcvowel{o}{7}
\end{vowel}
\end{center}
}
\parbox{0.5\textwidth}{
    \centering
\begin{center}
\begin{vowel}
\putcvowel{ḭ}{1}
\putcvowel{ṵ}{8}
\putcvowel{ɛ̰}{3}
\putcvowel{a̰}{15}
\putcvowel{ɔ̰}{6}
\end{vowel}
\end{center}
}

\end{document}

元音表

答案1

vowel包中,负责绘制线条(除其他外)的宏是\@@vowel。您可以从该宏中删除绘制不需要的线条的命令。

要轻松完成此操作,您可以使用包\patchcmd中的宏etoolbox。此命令可用于通过搜索和替换来修改现有宏。有五个参数:要修改的宏、搜索字符串、替换字符串以及两个分别在修补成功或失败时执行的参数。最后两个参数可以留空,并且替换字符串在这种情况下为空,因为您想删除某些内容。

要删除的线条绘制命令是\@vwldgmhline\c@rdhposii\vowelvunit,意思是“以元音垂直单位测量卡片位置 2 上的元音图水平线”。因此补丁如下:

\makeatletter
\patchcmd{\@@vowel}{\@vwldgmhline\c@rdhposii\vowelvunit}{}{}{}
\makeatother

参数中有各种@符号,因此需要用\makeatletter和包围补丁\makeatother

当然,对于其他图表,您可能希望保留水平线。因此,您需要存储宏的原始定义,并在处理相关图表后恢复此定义。

MWE(请注意,我更改了字体,因为我没有 Times New Roman):

\documentclass[10pt,a4paper]{article}
\usepackage{fontspec}
\setmainfont{DejaVu Serif}

\usepackage{vowel}
\usepackage{etoolbox}
% store original definition of \@@vowel in \oldvowel
\makeatletter
\let\oldvowel\@@vowel
\makeatother

\begin{document}
\parbox{0.5\textwidth}{
    \centering
    \begin{center}
\begin{vowel}
\putcvowel{i}{1}
\putcvowel{u}{8}
\putcvowel{e}{2}
\putcvowel{ɛ}{3}
\putcvowel{a}{15}
\putcvowel{ɔ}{6}
\putcvowel{o}{7}
\end{vowel}
\end{center}
}
% remove line drawing command from \@@vowel
\makeatletter
\patchcmd{\@@vowel}{\@vwldgmhline\c@rdhposii\vowelvunit}{}{}{}
\makeatother
\parbox{0.5\textwidth}{
    \centering
\begin{center}
\begin{vowel}
\putcvowel{ḭ}{1}
\putcvowel{ṵ}{8}
\putcvowel{ɛ̰}{3}
\putcvowel{a̰}{15}
\putcvowel{ɔ̰}{6}
\end{vowel}
\end{center}
}
% restore original definition for further diagrams
\makeatletter
\let\@@vowel\oldvowel
\makeatother
\end{document}

结果:

在此处输入图片描述

相关内容