用于 arXiv 的 Lua 语法高亮乳胶
Posted
技术标签:
【中文标题】用于 arXiv 的 Lua 语法高亮乳胶【英文标题】:Lua syntax highlighting latex for arXiv 【发布时间】:2015-11-24 17:03:50 【问题描述】:我有一个需要包含 Lua 代码的 sn-ps 的乳胶文件(用于显示,而不是执行),所以我使用了 minted 包。它需要使用 latex -shell-escape
标志运行乳胶。
我正在尝试将 PDF 提交上传到 arXiv。该网站要求这些以.tex
、.sty
和.bbl
提交,它们将自动从 Latex 编译为 PDF。当我尝试向 arXiv 提交时,我了解到他们无法激活 -shell-escape
标志。
所以我想知道你们中是否有人知道在没有-shell-escape
标志的情况下在乳胶中突出显示 Lua 代码的方法。我尝试了 Listings 包,但我无法让它在我的 Ubuntu 计算机上为 Lua 工作。
【问题讨论】:
试试GNU Source-highlight,它支持Lua输入和LaTeX输出。 也试试tex.stackexchange.com。 【参考方案1】:您可以使用listings
设置您想要的内联样式。它是预定义的Lua
语言,已识别所有关键字和相关样式,因此您可以根据需要进行更改:
\documentclassarticle
\usepackagelistings,xcolor
\lstdefinestylelua
language=[5.1]Lua,
basicstyle=\ttfamily,
keywordstyle=\colormagenta,
stringstyle=\colorblue,
commentstyle=\colorblack!50
\begindocument
\beginlstlisting[style=lua]
-- defines a factorial function
function fact (n)
if n == 0 then
return 1
else
return n * fact(n-1)
end
end
print("enter a number:")
a = io.read("*number") -- read a number
print(fact(a))
\endlstlisting
\enddocument
【讨论】:
【参考方案2】:好的,lhf 通过建议 GNU source-hightlight 包找到了一个很好的解决方案。我基本上从latex文件中取出lua代码的每个sn-p,将其放入一个适当命名的[snippet].lua
文件中,然后在其上运行以下内容以生成[snippet]-lua.tex
:
source-highlight -s lua -f latex -i [snippet].lua -o [snippet]-lua.tex
然后我使用以下方法将每个此类文件包含到主乳胶文件中:
\input[snippet]-lua
结果确实不如 minted 包好,但我厌倦了试图说服 arXiv 管理员支持 minted...
【讨论】:
以上是关于用于 arXiv 的 Lua 语法高亮乳胶的主要内容,如果未能解决你的问题,请参考以下文章