此链接描述如何
使用该\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}