我希望我的 Latex 文档(特别是部分和章节)中的一些标题的标题为大写,就像经典论文。我还想避免更改目录。我正在使用 Pandoc 生成文档,因此除了我在开头插入的样式文件之外,我希望避免手动向文档添加代码。我正在使用 KOMA Scriptscrbook
和 LuaLatex。
这是我迄今为止尝试过的:
titlesec
该包不适用于 KOMA 脚本,因此我使用命令\setkomafont
。\setkomafont
不能与\MakeUppercase
或一起使用,\uppercase
因为这些命令需要参数。- 这是受到推崇的使用字体使文本变为大写,但是
Letters=Uppercase
在EB Garamond 中\newfontfamily
使用设置fontspec
不起作用。 - 使用
\renewcommand
for\part
和\chapter
适用于部分但不适用于章节,并且它也会更改目录。 - 使用较大字体的小型大写字母,例如本论给出了错误的光学尺寸。
- 我的最后一个选择是使用这个LuaTex脚本但它缺少一些连字符
tt
,我现在必须手动将其添加到脚本中。
我是不是漏掉了什么?一定有更简单的方法来获取大写文本?
答案1
您可以使用 pandoc Lua 过滤器来执行此操作:
-- file: uppercase-headings.lua
local text = require 'text'
function Header (h)
return pandoc.walk_block(h,
{Str = function (s) return pandoc.Str(text.upper(s.text)) end}
)
end
通过选项将其传递给 pandoc 来使用--lua-filter
。