整个文档全部大写

整个文档全部大写

有没有办法强制将整个文档的文本(数学部分除外)全部排版为大写?

答案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

使用 XeTeX 自动转写西里尔字母

或用于 luatex

在 LuaLaTeX 中创建从西里尔字母到拉丁字母的音译映射

相关内容