有没有办法强制将整个文档的文本(数学部分除外)全部排版为大写?
答案1
原则上,您可以使用 OpenTypecase
功能或其fontspec
界面Letters=Uppercase
我可以用大写字母和小写字母进行演示
来自
\documentclass{article}
\usepackage{fontspec}
%\setmainfont{TeX Gyre Pagella}[Letters=Uppercase]
\setmainfont{TeX Gyre Pagella}[Letters=SmallCaps]
\begin{document}
One two three $1=0$ and $\theta=x$
\end{document}
但是如果你切换注释,\setmainfont
那么你只会收到很多警告,如下所示
*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
*
* OpenType feature 'Letters=Uppercase' (+case) not available for font 'TeX
* Gyre Pagella' with script 'Latin' and language 'Default'.
*************************************************
输出与输入相同,无需任何变换。
因此,如果您的实际字体具有 case opentype 功能集,那么这就是您所需要的。
如果没有,那么您可以将其视为音译并在 xetex 中使用 teckit 或在 luatex 中使用 lua 回调,最近有答案描述了西里尔字母,但系统也可以用于大小写更改(不要使用我的 input_buffer 回调建议用于 luatex,因为您会使用小写 ascii 弄乱所有 latex 命令:-)
对于 xetex
或用于 luatex