\uppercase 样式的命令:换行符和括号内

\uppercase 样式的命令:换行符和括号内

此链接描述如何
使用该\uppercase命令制作可以处理换行符的所有大写命令。

此链接描述如何制作可以处理花括号的所有大写命令。

我该如何完成这两项任务?

\documentclass{scrreprt}
\newcommand{\Title}  {Uppercase Instructions}
\newcommand{\Author} {Latex Newb}
\begin{document}
\begin{center}
\MakeUppercase{%
\Title\protect\\
Written By:\protect\\
\Author

\vspace*{\fill}

At:\protect\\
University of Colleges
}
\end{center}
\end{document}

好吧,根据 H Oberdiek 的说法,

\documentclass{scrreprt}
\newcommand{\Title}  {Uppercase Instructions}
\newcommand{\Author} {Latex Newb}
\begin{document}
\begin{center}
\uppercase{%
\MakeUppercase{\Title}\\
Written By:\\
\MakeUppercase{\Author}

\vspace*{\fill}

At:\\
University of Colleges
}
\end{center}
\end{document}

我相信\uppercase在命令中使用命令并将命令围绕命令
使用 将会帮助一部分寻求增加灵活性的人。\MakeUppercase

答案1

我不知道你用括号是什么意思。原语\uppercase只转换直接标记,不扩展宏。因此,\Title和中的字母\Author被隐藏了。LaTeX 宏\MakeUppercase扩展参数以显示宏中的字母。但在这里,它在脆弱的 上中断\\,需要保护:

\documentclass{scrreprt}
\newcommand{\Title}  {Uppercase Instructions}
\newcommand{\Author} {Latex Newb}
\begin{document}
\begin{center}
\MakeUppercase{%
\Title\protect\\
Written By:\protect\\
\Author}
\end{center}
\end{document}

结果

LaTeX\MakeUppercase不支持包含空行或标记的“长”参数。可以使用\par以下方法代替空行:\endgraf

\documentclass{scrreprt}
\newcommand{\Title}  {Uppercase Instructions}
\newcommand{\Author} {Latex Newb}
\begin{document}
\begin{center}
\MakeUppercase{%
\Title\protect\\
Written By:\protect\\
\Author
\endgraf
\vspace*{\fill}
\endgraf
At:\protect\\
University of Colleges}
\end{center}
\end{document}

相关内容