Tikz,Lua,忘记分号问题

Tikz,Lua,忘记分号问题

在这个 M(n)WE 中,丢失了一个分号。

tex.print部分给出了它在新命令中直接使用的良好字符链,但由于我想在外部使用它\draw,tikz 要求将分号放在它应该在的位置。

\documentclass{article}
\usepackage{fontspec}

\usepackage{tikz,xparse} 
\usetikzlibrary{quotes,through,calc,intersections,backgrounds}
\usepackage{luacode}
\usepackage[margin=1cm]{geometry}

\luadirect{require "LTG_Droites"}

\NewDocumentCommand{\Dt}{%
    O{1.2,1.2}  % extention
    m           % nom de la droite
    }{%
    \directlua{Draw_Droite(\luastring{#2},#1)}
    % the following works in tikzpicture
    % but want just the coordinate part
    %\draw \directlua{Draw_Droite(\luastring{#2},#1)} ;
}

\begin{document}

\begin{tikzpicture}
% doesn't work
%\draw \Dt{d1} ;
\end{tikzpicture}

 \Dt{d1} ;

\end{document}

还有LTG_Droites.lua

-- #### Draw_Droite
-- #### 
-- #### Renvoie (A)--(B) + extention

function Draw_Droite ( d , extA , extB )
    local A = "(0,0)"
    local B = "(1,1)"
    tex.print("($"..A.."!"..extA.."!"..B.."$)--($"..B.."!"..extB.."!"..A.."$)")
end

答案1

\draw您需要以下代码扩张tikz 语法:

\RequirePackage{luatex85}
\documentclass{article}
\usepackage{fontspec}

\usepackage{tikz,xparse} 
\usetikzlibrary{quotes,through,calc,intersections,backgrounds}
\usepackage{luacode}
\usepackage[margin=1cm]{geometry}

\luadirect{require "LTG_Droites"}

\DeclareExpandableDocumentCommand{\xDt}{%
    O{1.2,1.2}  % extention
    m           % nom de la droite
    }{%
    \directlua{Draw_Droite(\luastring{#2},#1)}%
    % the following works in tikzpicture
    % but want just the coordinate part
    %\draw \directlua{Draw_Droite(\luastring{#2},#1)} ;
}

%force full expansion of \Dt in two  expansion steps.
\newcommand\Dt{\romannumeral`\^^@\xDt}

\begin{document}

\begin{tikzpicture}
% doesn't work
\draw \Dt{d1} ;
\end{tikzpicture}

\Dt{d1} ;

\end{document}

相关内容