\NeedsTeXFormat{LaTeX2e} \ProvidesExplPackage{PrimeTeX/packages/LadderLogic}{2025-09-24}{1.0}{ Macros for tikz-ladder Ladder Logic diagrams. } \fp_const:Nn \c_LadderLogic_inline_scale_fp {0.6} \cs_new:Nn \__LadderLogic_inline_format: { \scriptsize\sffamily } \cs_new:Nn \__LadderLogic_default_format: { \sffamily } \NewDocumentCommand{\LadderFormat}{O{} O{}}{ \str_case:nnF {#1} { {default} { \str_if_empty:nTF {#2} { \__LadderLogic_default_format: } { \cs_set:Nn \__LadderLogic_default_format: {#2} } } {inline} { \str_if_empty:nTF {#2} { \__LadderLogic_inline_format: } { \cs_set:Nn \__LadderLogic_inline_format: {#2} } } } { % case else \__LadderLogic_default_format: } } % It seems TikZ declarations have to be in the document environment? \AtBeginDocument{ \usetikzlibrary{circuits.plc.ladder} \NewDocumentCommand{\LadderInlineElement}{ O{\c_LadderLogic_inline_scale_fp} m }{ \group_begin: \LadderInlineRung[#1]{ \draw(0,0) to [#2] ++(1,0); } \group_end: } \NewDocumentCommand{\LadderInlineRung}{ O{\c_LadderLogic_inline_scale_fp} m }{ \group_begin: \__LadderLogic_inline_format: \tikzset{circuit~symbol~unit=\fp_to_dim:n {#1 * \baselineskip}} \raisebox{\c_InlineGraphic_offset_dim}{\tikz[circuit~plc~ladder,thick]{#2}} \group_end: } }