// Example 7: Neural Network Diagram with CeTZ #import "@preview/cetz:0.4.2" #set text(font: "Libertinus Serif", size: 11pt) #set page(width: auto, height: auto, margin: 0.5cm) #cetz.canvas({ import cetz.draw: * let input-y = (8, 6.2, 4.4, 2.6) let hidden-y = (8, 6.5, 5, 3.5, 2) let output-y = (7, 4) // Input layer for i in range(4) { circle((0, input-y.at(i)), radius: 0.4, fill: blue.lighten(70%), stroke: black) content((0, input-y.at(i)), [#i], anchor: "center") } // Hidden layer for i in range(5) { circle((4, hidden-y.at(i)), radius: 0.4, fill: green.lighten(70%), stroke: black) } // Output layer for i in range(2) { circle((8, output-y.at(i)), radius: 0.4, fill: red.lighten(70%), stroke: black) } // Connections for ix in range(4) { for jx in range(5) { line( (0.4, input-y.at(ix)), (3.6, hidden-y.at(jx)), stroke: gray + 0.3pt ) } } for ix in range(5) { for jx in range(2) { line( (4.4, hidden-y.at(ix)), (7.6, output-y.at(jx)), stroke: gray + 0.3pt ) } } // Labels content((0, -0.3), [Input], anchor: "north") content((4, -0.3), [Hidden], anchor: "north") content((8, -0.3), [Output], anchor: "north") })