一个简单的任务:我需要一个用户定义的命令\greeklower
,它接受数学模式识别的任何希腊字符并返回该字符的小写版本。
理想情况下,命令语法应为,例如,\greeklower{\Phi}
和\greeklower{\phi}
都扩展为\phi
,\greeklower{\Gamma}
以及\greeklower{\gamma}
都扩展为\gamma
,等等。
但是,语法\greeklower{Phi}
,\greeklower{phi}
也是可以接受的。
我尝试了以下操作:
\lowercase{\Gamma}
: 什么也没做
\MakeLowercase{\Gamma}
: 什么也没做
\newcommand {\greeklower} [1] {\expandafter\csname\lowercase{#1}\endcsname}
:“错误:缺少 \endcsname”
\newcommand {\greeklower} [1] {\expandafter\csname\MakeLowercase{#1}\endcsname}
:“错误:缺少 \endcsname”
\edef\elower#1{\lowercase{#1}}
\newcommand {\greeklower} [1] {\expandafter\csname\elower{#1}\endcsname}
“错误:缺少 \endcsname”
\edef\elower#1{\MakeLowercase{#1}}
\newcommand {\greeklower} [1] {\expandafter\csname\elower{#1}\endcsname}
“错误:超出 TeX 容量”
因此 TeX 再次打败了我。:(
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\newcommand {\greeklower} [1] { -make Greek symbol lowercase- }
\begin{document}
This is a $\gamma$ tensor: $\boldsymbol{\greeklower{\Gamma}}$.
This is also a $\gamma$ tensor: $\boldsymbol{\greeklower{\gamma}}$.
\end{document}
答案1
重新定义本地大写希腊字母变为小写字母。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\newcommand{\LowerGreek}[1]{\begingroup
\let\Gamma\gamma
\let\Delta\delta
\let\VarTheta\vartheta
\let\Lambda\lamda
\let\Theta\theta
\let\Pi\pi
\let\Sigma\sigma
\let\Upsilon\upsilon
\let\Phi\phi
\let\Psi\psi
\let\Omega\omega
#1
\endgroup}
\begin{document}
This is a $\gamma$ tensor: $\boldsymbol{\LowerGreek{\Gamma}}$ but $\Gamma$ still
works.
This is also a $\gamma$ tensor: $\boldsymbol{\LowerGreek{\gamma}}$.
\end{document}