提到的连接:
1. http://www.latexstudio.net/archives/9924.html
在输入过程中发现需要用到大写罗马数字。虽然英文符号可以表示,但还是好奇LaTex是否有单独的命令输出罗马字符。截止到目前,从百度搜索到的多数方法都是以“\uppercase\expandafter{\romannumeral数字}”的形式。其他关键词比较容易理解,除了对中间的\expandafter有些疑惑,于是进一步查了一下。
第一条讲了\expandafter这个关键词的用法,看完以后我的理解就是,这个词相当于是先保留紧挨着它前面的1个关键词,不解析这个关键词,当把其他的关键词解析完后,再用这个关键词对一次解析文本进行二次解析。(好啰嗦(´ο`))
第二条似乎是跟定义新函数有关的操作,没有太理解,不过感觉跟我想要弄清的东西关系不太大,因此先跳过。
其他的几乎是清一色的“LaTex如何输入大写罗马字母”。看来\expandafter
后面又查了TexStudio自带的常用关键词解释帮助文件,里面没有\expandafter的词条。不过意外发现了这个词出现在了“大小写转换”的条目当中。于是又认真看了一下大小写转换的解释,发现了一个似乎更好用的关键词,也就是题目当中提到的“\MakeUppercase”。也算是有所收获了哈哈。
下面是简单的翻译:
23.2 大写和小写
语法:
\uppercase{文本}
\lowercase{文本}
\MakeUppercase{文本}
\MakeLowercase{文本}
用于对大小写进行转换。TeX的原始命令 \uppercase
与 \lowercase
仅能够更改美语字符(原文American characters,估计主要就是52个英文字母了)。而LaTeX的命令 \MakeUppercase
与 \MakeLowercase
除上述功能外还可以更改通过诸如 \ae
或 \aa这样由
命令访问的字符。\MakeUppercase
与 \MakeLowercase
的鲁棒性强(原文:robust,印象中好像有书里提到过“鲁棒性”这个词) 但他们有 moving arguments(行进参数?看 \protect 提到这种参数是属于LaTex自己展开,不需要设定的参数)
这么说来似乎直接用\MakeUppercase
就行了。简单试了一下:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\begin{document}
\MakeUppercase{\romannumeral1}\\
\MakeUppercase{\romannumeral3}\\
\MakeUppercase{\romannumeral4}\\
\MakeUppercase{\romannumeral8}\\
\MakeUppercase{\romannumeral3468}
\end{document}
输出结果均为大写
I
III
IV
VIII
MMMCDLXVIII
但是回到自己的文章里,虽然编译没有提示出错,但是依然是小写。不明白是什么原因造成的。希望高手能够指点一二。