![变音符号周围的括号](https://linux22.com/image/457775/%E5%8F%98%E9%9F%B3%E7%AC%A6%E5%8F%B7%E5%91%A8%E5%9B%B4%E7%9A%84%E6%8B%AC%E5%8F%B7.png)
有没有办法将变音符号放入 或 等字符的括号中ě
?á
如果可以缩短ˇ
或周围的括号´
,那么我就可以将它们与字母堆叠在一起。
答案1
在这里,我创建了\optional
实现所需行为的方法。我还提供了(作为替代方案)指令,tokcycle
以便它在\tokencyclexpress
伪环境中自动执行操作。我已经为 3 个特定的变音符号编写了程序。您可以根据需要向指令中添加更多内容。
.5
注意变音括号的大小由宏中的值控制\scalebox
。括号的垂直位置可以通过\dimexpr.5pt+\ht0
堆栈的移位进行调整。括号的水平位置由字母宽度控制,通过移位进行调整-1mu
。
\documentclass{article}
\usepackage{stackengine,graphicx}
\newcommand\optional[2]{%
\sbox0{#2}%
\stackengine{\dimexpr.5pt+\ht0}{%
\stackengine{\dimexpr.5pt+\ht0}{#1{#2}}%
{\tiny$\mkern-1mu\vcenter{\hbox{\scalebox{.5}{(}}}$}%
{O}{l}{F}{T}{L}%
}{\tiny$\vcenter{\hbox{\scalebox{.5}{)}}}\mkern-1mu$}%
{O}{r}{F}{T}{L}%
}
\usepackage{tokcycle}
\Macrodirective{%
\ifx\v#1\addcytoks{\optional}\fi
\ifx\'#1\addcytoks{\optional}\fi
\ifx\"#1\addcytoks{\optional}\fi
% ADD MORE DIACRITIC TESTS HERE
\addcytoks{#1}%
}
\begin{document}
% DIRECT SPECIFICATION OF OPTIONAL DIACRITICS
h\optional \v{e}avier th\optional \'{a}n dirt
% AUTO REPLACEMENT OF DIACRITICS WITH OPTIONAL FORM
\tokencyclexpress
h\v{e}avi\"{E}r th\'{a}n dirt%
\endtokencyclexpress
\end{document}