Lots of stuff.
This commit is contained in:
63
packages/LadderLogic.sty
Normal file
63
packages/LadderLogic.sty
Normal file
@@ -0,0 +1,63 @@
|
||||
\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:
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user