如何在不使用的情况下添加几个空行\vspace
?尝试使用\\
总是给我带来麻烦……
现在,我正在尝试在 LaTeX 中格式化一个简单的 lua 表以供显示。我使用了\\
(这需要我使用类似 的代码\noexpand\\noexpand\\
)和的组合\vspace
。
表格格式很好除了我必须使用实际角色
tex.print("-")
工作正常,但如果我将其更改为
tex.print("\noexpand~")
或者
tex.print(" ")
事情很快就变得糟糕起来。
我也尝试过
tex.print("\noexpand\\hspace\noexpand{1mm\noexpand}")
但只有当有一些初始文本时它才有效
我的代码
for i = 0, ofs + 1*idx - 1 do
tex.print("-")
tex.print("\noexpand\\hspace\noexpand{0.1mm\noexpand}")
end
答案1
您需要决定是否使用 TeX 进行编码,还是仍然使用其他计算机语言进行思考。我从您的评论中了解到,例如“...让我发疯”、“...事情很快就变得一团糟”,您很难适应。所以我建议宁愿用“Lua”思考,将所有编码移到 Lua 部分。
这是一个仅执行并计算的示例快乐数字这也许会让你更快乐一点:)
在这种情况下,所有的排版都已转移到一个函数上\boxit
,从而具有良好的关注点分离;以同样的方式思考你的表格,发布一个最少的内容,也许社区可以从那里开始。
\documentclass{tufte-book}
\usepackage[listings]{tcolorbox}
\lstloadlanguages{[LaTeX]TeX, [primitive]TeX,Pascal}
\usepackage{filecontents}
\usepackage{amsmath}
\usepackage{luacode} % loads luatexbase as well
\newcommand\emphasis[2][blue]{\lstset{emph={exec,if,then,else,do,end,while,for,print,sprint,directlua,#2},
emphstyle={\ttfamily\textcolor{#1}}}}%
\lstset{language={[LaTeX]TeX},
escapeinside={{(*@}{@*)}},
gobble=0,
stepnumber=1,numbersep=5pt,
numberstyle={\footnotesize\color{gray}},%firstnumber=last,
breaklines=true,
framesep=5pt,
basicstyle=\small\ttfamily,
showstringspaces=false,
keywordstyle=\ttfamily\textcolor{blue},
stringstyle=\color{orange},
commentstyle=\color{black},
rulecolor=\color{gray!10},
breakatwhitespace=true,
showspaces=false, % shows spacing symbol
backgroundcolor=\color{gray!15}}
\begin{document}
\emphasis{return,repeat,until,function,local}
\begin{tcblisting}{}
\begin{luacode}
-- example adapted from
-- http://rosettacode.org/wiki/Happy_numbers
function boxit(color, var, s)
return "\\fbox{\\strut\\color{violet} "..var.."} "
end
function digits(n)
if n > 0 then return n \% 10, digits(math.floor(n/10)) end
end
function sumsq(a, ...)
return a and a ^ 2 + sumsq(...) or 0
end
local happy = setmetatable({true, false, false, false}, {
__index = function(self, n)
self[n] = self[sumsq(digits(n))]
return self[n]
end } )
i, j = 0, 8
repeat
i, j = happy[j] and (tex.sprint(boxit(violet, j, " ")) or i+1) or i, j + 1
until i == 17 --or j > 999
\end{luacode}
\end{tcblisting}
\end{document}