我正在使用 Texmaker,想定义一些自定义宏。这些宏将检查所选字母是大写还是小写,然后用宏中定义的序列替换该字母。我需要这个宏来替换土耳其字符
\u{g}
- G\u{G}
- G\c{c}
- C\c{C}
- C\c{s}
– ş\c{S}
–{\i}
- 我\.{I}
- 我
但我不想每次都手动选择字符的大写或小写版本。我没有在texmaker 文档和 ixquickinglatex 大写宏使用过于复杂的脚本得出结果。
我希望宏像这样工作:在文本“Şimşek”中,我选择“ş”,然后按下分配给我的宏的热键,该字母将变为。当选择“Ş”并按下热键时,\c{s}
同一个宏应该将“Ş”变成。\c{S}
我该如何定义一个宏来实现这一点?
答案1
我不完全明白你想要实现什么,但你可以检查一个字符串是否包含字母,类似于这个答案。
\documentclass{article}
\begin{document}
\makeatletter
\def\instring#1#2{TT\fi\begingroup
\edef\x{\endgroup\noexpand\in@{#1}{#2}}\x\ifin@}
%
\def\isuppercase#1{%
\instring{#1}{AÂBCÇDEFGĞHIİÎJKLMNOÖÔPRSŞTUÜÛVYZ}%
}%
\makeatother
\if\isuppercase{A}YES\else NO\fi
\if\isuppercase{a}YES\else NO\fi
\end{document}