I need about detailed important points of morphology of flowering plants

Reading File
Finding Sources
Searching the Web

morphology of flowering plants detailed notes root stem leaf flower fruit seed

Reading Web Page

https://careerpointgroup.com/wp-content/uploads/2022/11/Bota…

Here is a detailed, well-organized set of important points on the Morphology of Flowering Plants (Angiosperms) - ideal for Class 11 / undergraduate biology:

Morphology of Flowering Plants

Introduction

  • Morphology = study of forms, features, and relative positions of plant organs (Morphe = form; logos = study).
  • Flowering plants (Angiosperms) are seed-bearing plants where seeds are enclosed in an ovary/fruit, and sporophylls are organized into flowers.
  • Classified into Monocots (one cotyledon) and Dicots (two cotyledons).
  • A typical angiosperm body is divided into:
    • Root system - underground
    • Shoot system - aerial (stem, branches, leaves, flowers, fruits)
  • Vegetative parts: root, stem, leaves | Reproductive parts: flowers, fruits, seeds

1. ROOT

Basic Features

  • Descending, non-green, underground part.
  • Lacks nodes, internodes, leaves, and buds.
  • Develops from the radicle of the seed.
  • Shows positive geotropism (grows toward gravity).

Types of Roots

TypeOriginExample
Tap rootFrom radicle; has main + lateral branchesDicots (mustard, gram)
Fibrous rootRadicle short-lived; replaced by many thin rootsMonocots (wheat, grass)
Adventitious rootArise from stem/leaf, not radicleBanyan, grass, Bryophyllum

Regions of Root (from tip upward)

  1. Root cap - protects meristematic zone
  2. Zone of cell division (meristematic zone) - actively dividing cells
  3. Zone of elongation - cells elongate
  4. Zone of maturation - cells differentiate; root hairs form for absorption

Root Modifications (with functions and examples)

For food storage:
  • Fusiform - tapering at both ends (radish - Raphanus sativus)
  • Napiform - top-shaped, abruptly tapering (turnip - Brassica rapa)
  • Conical - carrot-shaped (carrot - Daucus carota)
  • Tuberous - irregular fleshy roots (sweet potato - Ipomoea batata), Dahlia
For support:
  • Prop/Pillar roots - hanging aerial roots that touch the soil (banyan - Ficus bengalensis)
  • Stilt roots - oblique roots from lower nodes for support (maize, sugarcane)
  • Buttress roots - flattened, plank-like bases of tropical trees
For special functions:
  • Pneumatophores (Respiratory roots) - negatively geotropic, come out of waterlogged soil for gaseous exchange (Avicennia, mangroves)
  • Haustorial/Parasitic roots - penetrate host stem for nutrition (Cuscuta, Viscum)
  • Velamen roots - spongy absorptive roots of epiphytes (orchids)
  • Foliar (epiphyllous) roots - arise from leaves (Bryophyllum, Begonia)
  • Annulated roots - ring-like swellings (Ipecac)
  • Contractile roots - pull corm/bulb to proper depth (Crocus/saffron, Freesia)
  • Reproductive roots - used for vegetative propagation (sweet potato, Dahlia)

Functions of Root

  1. Anchorage/fixation in soil
  2. Absorption of water and minerals
  3. Storage of food
  4. Conduction of water upward
  5. Photosynthesis (in some), vegetative propagation

2. STEM

Basic Features

  • Lies above the soil surface; shows negative geotropism.
  • Has distinct nodes (where leaves/buds arise) and internodes (space between nodes).
  • Develops from the plumule of the seed.
  • Bears branches, leaves, flowers, and fruits.

Forms of Stem

  • Caudex - unbranched, erect, cylindrical with leaf-scar marks; crown of leaves at top (Palm)
  • Culm - jointed with solid nodes and hollow internodes (Bamboo)
  • Excurrent - cone-shaped branching, main axis dominant (Pinus, Eucalyptus)
  • Decurrent (Deliquescent) - dome-shaped, lateral branches dominate (Mango, Banyan)
  • Scape - leafless aerial flower-bearing shoot (Onion, Aroids)

Stem Modifications

Underground modifications (for food storage/perennation):
  • Rhizome - horizontal underground stem with nodes and scale leaves (Ginger, Turmeric, Lotus, Fern)
  • Corm - condensed vertical underground stem (Colocasia/Arbi, Crocus/Saffron, Gladiolus)
  • Bulb - reduced stem disc with fleshy scale leaves (Onion, Garlic, Lily)
  • Stem tuber - swollen tips of underground stolons (Potato - eyes are axillary buds)
Sub-aerial modifications (for vegetative propagation):
  • Runner - creeping stem on soil surface; roots from lower nodes (Cynodon/Doob grass, Oxalis)
  • Stolon - branches that arch out and root at tips (Strawberry, Jasmine, Peppermint)
  • Sucker - underground lateral branches that emerge above soil (Mint, Pineapple, Chrysanthemum)
  • Offset - short horizontal branches in aquatic plants (Pistia, Eichhornia/Water hyacinth)
Aerial modifications:
  • Stem tendrils - coiled, for climbing; may be axillary (Passiflora) or terminal (Vitis/Grape)
  • Stem thorns - hard, pointed, modified axillary buds (Bougainvillea, Duranta, Citrus); Note: Ulex has both stem thorns AND leaf spines
  • Phylloclade - flattened green stem performing photosynthesis (Opuntia/Cactus, Casuarina, Ruscus)
  • Cladode - one-internoded phylloclade (Asparagus)
  • Bulbils - condensed fleshy axillary buds for vegetative reproduction (Dioscorea, Agave, Oxalis, Globba)
  • Pseudobulb - swollen internode for water/food storage in orchids

Functions of Stem

  1. Supports and spreads branches, leaves, flowers, fruits
  2. Conduction of water, minerals, and photosynthates (xylem and phloem)
  3. Photosynthesis (green stems)
  4. Storage of food
  5. Vegetative propagation

3. LEAF

Basic Features

  • Lateral, generally flattened structure borne on the stem at nodes.
  • Main function: photosynthesis, transpiration, gaseous exchange.
  • A typical leaf has three parts:
    1. Leaf base (Hypopodium) - attaches leaf to stem; may form stipules (outgrowths)
    2. Petiole (Mesopodium) - stalk connecting blade to stem; a leaf without petiole is sessile
    3. Lamina (Epipodium) - flat green blade; contains midrib and veins

Venation

  • Reticulate (Net venation) - veins form a network; found in dicots (mango, peepal)
  • Parallel venation - veins run parallel; found in monocots (grass, banana)

Types of Leaves

  • Simple leaf - single undivided lamina (mango, peepal)
  • Compound leaf - lamina divided into leaflets:
    • Pinnately compound - leaflets along a central rachis (neem, rose)
      • Unipinnate, bipinnate (Mimosa), tripinnate, decompound (multipinnate)
    • Palmately compound - leaflets arise from same point (Silk cotton, Cannabis, Cleome)
      • Unifoliate, bifoliate, trifoliate, quadrifoliate, multifoliate

Phyllotaxy (Arrangement of Leaves on Stem)

  • Alternate - one leaf per node (alternate sides) (China rose, Sunflower, Mustard)
  • Opposite - two leaves per node, opposite each other
    • Decussate - successive pairs at right angles (Calotropis, Guava)
  • Whorled - more than two leaves per node (Alstonia, Nerium/Oleander)

Leaf Modifications

ModificationFunctionExample
TendrilsClimbingPea (Pisum sativum) - leaflets modified; Lathyrus - stipules modified
SpinesProtectionCactus (leaves → spines); Aloe
PhyllodePhotosynthesis (petiole modified)Acacia auriculiformis
Leaf pitcher (passive)Insect trappingNepenthes
Leaf pitcher (active)Insect trappingUtricularia
Fleshy leavesWater/food storageOnion (scale leaves), Aloe
HooksClimbingBignonia (terminal leaflet → hook)
Reproductive leavesVegetative propagationBryophyllum (notches on leaf margin)

4. INFLORESCENCE

  • Inflorescence = arrangement of flowers on the floral axis (peduncle).
  • Two main types:

Racemose (Indefinite/Indeterminate)

  • Main axis continues to grow; flowers open in acropetal order (bottom to top).
  • Sub-types:
    • Raceme - stalked (pedicellate) flowers on an unbranched axis (mustard, radish)
    • Spike - sessile flowers on an unbranched axis (wheat, Amaranthus)
    • Catkin - pendulous spike with unisexual flowers (mulberry, oak)
    • Spadix - fleshy spike enclosed in a large spathe (Colocasia, maize, palms)
    • Corymb - flat-topped; pedicels of different lengths bring flowers to same level (Candytuft, Iberis)
    • Umbel - pedicels arise from same point, umbrella-like (coriander, fennel, Oenanthe)
    • Capitulum (Head) - sessile flowers on a broad, flattened receptacle; most evolved (sunflower, marigold, Tridax)
    • Panicle - branched raceme (Neem, Rice)
    • Compound spike - wheat

Cymose (Definite/Determinate)

  • Main axis terminates in a flower; flowers open in centrifugal order (center to outside).
  • Sub-types:
    • Monochasial cyme (Uniparous): Scorpioid cyme (coiled - Heliotropium), Helicoid cyme
    • Dichasial cyme (Biparous): Two lateral branches after each terminal flower (Dianthus, Bougainvillea, Teak)
    • Polychasial (Multiparous): Multiple branches (Nerium/Oleander, Calotropis)
  • Hypanthodium - special cymose type; fleshy hollow receptacle with flowers inside (Banyan, Peepal, Ficus species)
  • Verticillaster - false whorl of flowers (Ocimum/Tulsi, Salvia)
  • Cyathium - cup-like involucre with unisexual flowers and a central female flower (Euphorbia)

5. FLOWER

Parts of a Flower

A typical bisexual flower has four whorls on the thalamus:
WhorlNameFunction
1st (outermost)Calyx (sepals)Protection of floral bud
2ndCorolla (petals)Attract pollinators
3rdAndroecium (stamens)Male reproductive organ
4th (innermost)Gynoecium (pistil/carpels)Female reproductive organ
Key terms:
  • Bracteate flower: has a bract (modified leaf) at base; Ebracteate: no bract
  • Pedicellate flower: has a stalk (pedicel); Sessile: no stalk
  • Complete flower - has all 4 whorls | Incomplete flower - missing one or more whorls
  • Bisexual (Hermaphrodite) - both androecium and gynoecium (Hibiscus, mustard)
  • Unisexual - only one sex present; Staminate (only stamens) / Pistillate (only pistil)
  • Actinomorphic (Regular) - radial symmetry (cut in multiple planes; rose, mustard)
  • Zygomorphic (Irregular) - bilateral symmetry (cut in only one plane; pea, Cassia, gulmohur)
  • Asymmetric - no plane of symmetry (Canna)

Aestivation (arrangement of petals in flower bud)

  • Valvate - petals touch at margins without overlapping (Calotropis)
  • Twisted (Contorted) - each petal overlaps the next consistently in one direction (Cotton, China rose, Lady's finger)
  • Imbricate - irregular overlapping; some inside, some outside (Cassia, gulmohar)
  • Vexillary (Papilionaceous) - largest petal (standard/vexillum) outside, two wings, two keel petals innermost (Pea, bean)
  • Quincuncial - 2 outer, 2 inner, 1 half-in-half-out (Ranunculus)

Calyx

  • Polysepalous - free sepals (mustard)
  • Gamosepalous - fused sepals (Datura, Petunia)
  • Persistent - remains till fruit (Brinjal) | Deciduous - falls before fruit (mustard)
  • Petaloid calyx - colored like petals (Bougainvillea - actually bracts; Mussaenda)

Corolla

  • Polypetalous - free petals (rose, mustard)
  • Gamopetalous - fused petals (Datura, Petunia)
  • Shapes: tubular, bell-shaped (campanulate), funnel-shaped, wheel-shaped (rotate)

Androecium (Stamens)

  • Each stamen = filament + anther (contains pollen sacs)
  • Epipetalous - stamens fused to petals (Datura, brinjal)
  • Epiphyllous - stamens fused to perianth (Lily)
  • Monadelphous - all filaments fused into one bundle (China rose, Cotton)
  • Diadelphous - filaments in two bundles (Pea - 9+1)
  • Polyadelphous - filaments in many bundles (Citrus)
  • Syngenesious - only anthers fused (Compositae/Asteraceae - sunflower)
  • Anther: Dithecous (2 lobes, 4 pollen sacs) - most plants; Monothecous (1 lobe, 2 pollen sacs) - Malvaceae

Gynoecium (Pistil/Carpels)

  • Carpel = stigma + style + ovary
  • Monocarpellary - one carpel (pea)
  • Multicarpellary - many carpels: Apocarpous (free carpels - lotus, rose) | Syncarpous (fused carpels - mustard, tomato)
  • Ovary position:
    • Superior ovary (Hypogynous) - thalamus below ovary; other whorls below ovary (mustard, brinjal, China rose)
    • Half-inferior ovary (Perigynous) - thalamus cup-shaped; ovary in center (rose, peach, plum)
    • Inferior ovary (Epigynous) - thalamus above ovary; other whorls above (guava, cucumber, sunflower ray florets)
  • Placentation (position of ovules in ovary):
    • Marginal - ovules on ventral suture of one-chambered ovary (Pea)
    • Axile - ovules on central axis; ovary multi-chambered (mustard, tomato, lemon)
    • Parietal - ovules on inner wall; ovary 1-chambered (mustard family? No - Crucifers show axile. Cucumber, papaya)
    • Free central - ovules on central column; no septa (Dianthus, Primrose)
    • Basal - single ovule at base (sunflower, marigold)
    • Superficial - ovules on inner walls of many chambers (Nymphaea/Water lily)

6. FRUIT

  • A fruit develops from the ovary after fertilization.
  • True fruit - developed only from ovary (mango, coconut)
  • False fruit (Pseudocarp) - other floral parts (thalamus etc.) also contribute (apple, strawberry, cashew)
  • Parthenocarpic fruit - develops without fertilization; seedless (banana, some grapes)

Classification of Fruits

A. Simple Fruits (from single ovary):
Fleshy fruits:
  • Berry - entire pericarp fleshy; seeds embedded in pulp (tomato, grape, banana, brinjal, date)
  • Hesperidium - berry with leathery rind (citrus fruits - lemon, orange)
  • Pepo - berry with hard outer rind (cucumber, watermelon, pumpkin)
  • Drupe - stony endocarp (mango, coconut, plum, peach, cherry)
  • Pome - false fruit; thalamus forms the edible part; true fruit is core (apple, pear)
Dry fruits:
  • Dehiscent (split at maturity):
    • Legume/Pod - splits along both sutures (pea, bean)
    • Siliqua - elongated, two-seeded partition in middle (Brassica)
    • Silicula - short, flat version of siliqua (Capsella)
    • Capsule - multi-carpellary (cotton, poppy, Datura)
  • Indehiscent (do not split):
    • Achene - one seed, pericarp free from seed coat (sunflower - actually a cypsela)
    • Cypsela - inferior ovary achene (sunflower, Asteraceae)
    • Caryopsis - pericarp fused to seed (wheat, maize)
    • Nut - hard pericarp (chestnut, litchi)
    • Samara - winged fruit for wind dispersal (elm, maple, Shorea)
  • Schizocarpic (split into one-seeded units):
    • Cremocarp - splits into two mericarps (coriander, fennel)
    • Lomentum - constricted between seeds (Mimosa, Cassia)
B. Aggregate Fruits (from apocarpous gynoecium on one flower): Strawberry, Raspberry, Lotus, Rose (hip)
C. Composite (Multiple/Collective) Fruits (from entire inflorescence):
  • Sorosis - from spike/spadix (mulberry, jackfruit, pineapple)
  • Syconus - from hypanthodium (Ficus/Fig, Banyan)

7. SEED

  • Seed = mature, fertilized ovule.
  • Contains: seed coat (testa + tegmen) + embryo (±endosperm)
  • Albuminous seed - endosperm present at maturity (castor, maize, wheat, barley, sunflower)
  • Exalbuminous seed - endosperm consumed by embryo; cotyledons store food (pea, bean, groundnut)
  • Perisperm - persistent nucellus outside endosperm (Black pepper, beet)

Dicot Seed (e.g., Pea/Bean)

  • Testa (outer seed coat) + Tegmen (inner seed coat)
  • Hilum - scar where seed attached to pod
  • Micropyle - tiny pore above hilum (for water absorption)
  • Embryo = Radicle + Plumule + 2 cotyledons (store food)

Monocot Seed (e.g., Maize)

  • Seed and fruit wall (pericarp) are fused - caryopsis
  • Single large cotyledon = scutellum (absorbs endosperm food)
  • Coleoptile - sheath protecting plumule
  • Coleorhiza - sheath protecting radicle
  • Endosperm is large and persists

Seed Dispersal

  • Anemochory (wind): winged seeds (Maple), plume (Calotropis, dandelion), light seeds
  • Hydrochory (water): fibrous husk (coconut), spongy/air-filled (Nelumbo)
  • Zoochory (animals): hooks/spines (Xanthium, Urena), fleshy edible fruits (mango), internal (berries)
  • Autochory (self-dispersal): explosive mechanisms (Squirting cucumber - Ecballium, Impatiens)

Key Comparisons

FeatureDicotMonocot
Cotyledons21
VenationReticulateParallel
Floral partsTetramerous/Pentamerous (4s or 5s)Trimerous (3s)
Root systemTap rootFibrous root
Vascular bundlesArranged in ringScattered

Important Special Facts

  • Smallest angiosperm: Wolffia (less than 0.1 mm)
  • Tallest angiosperm: Eucalyptus regnans (over 114 m)
  • Marine angiosperm: Zostera
  • Monocarpic plants (flower/fruit once, then die): annuals, biennials, Agave, Bamboo
  • Polycarpic plants (flower/fruit many times): most perennials
  • Ulex - has both stem thorns AND leaf spines
  • Plants with no true roots: Podostemon, Arceuthobium, Rafflesia, Sapria
  • Calyx of Mussaenda is petaloid; Bracts of Bougainvillea are petaloid (not true calyx)

This covers all major topics in the morphology of flowering plants as per the standard Class 11 / NCERT / competitive exam (NEET/JEE) syllabus. Let me know if you want even deeper coverage of any specific section - such as floral diagrams, floral formulas, or family-wise descriptions (Fabaceae, Solanaceae, Liliaceae, etc.)!

To write an a note book

Asking for Preferences
Reading File
Running Command

ls /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"

Writing File

~/morphology-notebook/create_notebook.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, PageBreak, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.pdfgen import canvas
from reportlab.platypus.doctemplate import PageTemplate, BaseDocTemplate
from reportlab.platypus.frames import Frame

OUTPUT = "/home/daytona/workspace/morphology-notebook/Morphology_of_Flowering_Plants.pdf"

# ─── Colors ───────────────────────────────────────────────────────────────────
GREEN_DARK   = colors.HexColor("#1B5E20")
GREEN_MED    = colors.HexColor("#2E7D32")
GREEN_LIGHT  = colors.HexColor("#A5D6A7")
GREEN_PALE   = colors.HexColor("#E8F5E9")
YELLOW_HIGH  = colors.HexColor("#FFF9C4")
BLUE_ACCENT  = colors.HexColor("#1565C0")
ORANGE_ACC   = colors.HexColor("#E65100")
WHITE        = colors.white
BLACK        = colors.black
GREY_LIGHT   = colors.HexColor("#F5F5F5")
GREY_BORDER  = colors.HexColor("#BDBDBD")

# ─── Styles ───────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()

title_style = ParagraphStyle("NoteTitle",
    fontName="Helvetica-Bold", fontSize=26, textColor=WHITE,
    alignment=TA_CENTER, leading=34, spaceAfter=6)

subject_style = ParagraphStyle("Subject",
    fontName="Helvetica", fontSize=13, textColor=GREEN_PALE,
    alignment=TA_CENTER, leading=18)

ch_title = ParagraphStyle("ChTitle",
    fontName="Helvetica-Bold", fontSize=16, textColor=WHITE,
    alignment=TA_LEFT, leading=22, leftIndent=8)

h1 = ParagraphStyle("H1",
    fontName="Helvetica-Bold", fontSize=13, textColor=GREEN_DARK,
    spaceBefore=14, spaceAfter=4, leading=18, leftIndent=0)

h2 = ParagraphStyle("H2",
    fontName="Helvetica-Bold", fontSize=11, textColor=BLUE_ACCENT,
    spaceBefore=10, spaceAfter=3, leading=16, leftIndent=10)

h3 = ParagraphStyle("H3",
    fontName="Helvetica-BoldOblique", fontSize=10, textColor=ORANGE_ACC,
    spaceBefore=7, spaceAfter=2, leading=14, leftIndent=18)

body = ParagraphStyle("Body",
    fontName="Helvetica", fontSize=9.5, textColor=BLACK,
    spaceBefore=2, spaceAfter=2, leading=15, leftIndent=14,
    alignment=TA_JUSTIFY)

bullet = ParagraphStyle("Bullet",
    fontName="Helvetica", fontSize=9.5, textColor=BLACK,
    spaceBefore=2, spaceAfter=2, leading=15, leftIndent=24,
    bulletIndent=14, alignment=TA_LEFT)

note_box = ParagraphStyle("NoteBox",
    fontName="Helvetica-Oblique", fontSize=9, textColor=colors.HexColor("#4A148C"),
    spaceBefore=4, spaceAfter=4, leading=14, leftIndent=12, rightIndent=12)

bold_body = ParagraphStyle("BoldBody",
    fontName="Helvetica-Bold", fontSize=9.5, textColor=BLACK,
    spaceBefore=2, spaceAfter=2, leading=15, leftIndent=14)

# ─── Page numbering ───────────────────────────────────────────────────────────
def add_page_number(canvas_obj, doc):
    canvas_obj.saveState()
    canvas_obj.setFont("Helvetica", 8)
    canvas_obj.setFillColor(colors.HexColor("#757575"))
    w, h = A4
    canvas_obj.drawRightString(w - 1.5*cm, 1*cm,
        f"Morphology of Flowering Plants  |  Page {doc.page}")
    canvas_obj.setStrokeColor(GREEN_LIGHT)
    canvas_obj.setLineWidth(0.5)
    canvas_obj.line(1.5*cm, 1.3*cm, w - 1.5*cm, 1.3*cm)
    canvas_obj.restoreState()

# ─── Helper: colored chapter banner ──────────────────────────────────────────
def chapter_banner(title_text, subtitle=""):
    data = [[Paragraph(title_text, ch_title)]]
    if subtitle:
        data.append([Paragraph(f'<font size="9" color="#A5D6A7">{subtitle}</font>', ch_title)])
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), GREEN_MED),
        ("TOPPADDING",    (0,0), (-1,-1), 8),
        ("BOTTOMPADDING", (0,0), (-1,-1), 8),
        ("LEFTPADDING",   (0,0), (-1,-1), 12),
        ("RIGHTPADDING",  (0,0), (-1,-1), 12),
        ("ROUNDEDCORNERS", [6]),
    ]))
    return t

def info_table(headers, rows, col_widths=None):
    if col_widths is None:
        col_widths = [17*cm / len(headers)] * len(headers)
    header_row = [Paragraph(f'<b>{h}</b>', ParagraphStyle("TH",
        fontName="Helvetica-Bold", fontSize=9, textColor=WHITE,
        alignment=TA_CENTER, leading=12)) for h in headers]
    table_data = [header_row]
    for row in rows:
        table_data.append([Paragraph(str(cell), ParagraphStyle("TD",
            fontName="Helvetica", fontSize=9, textColor=BLACK,
            alignment=TA_LEFT, leading=13, leftIndent=4)) for cell in row])
    t = Table(table_data, colWidths=col_widths)
    style = [
        ("BACKGROUND", (0,0), (-1,0), GREEN_DARK),
        ("BACKGROUND", (0,1), (-1,-1), GREY_LIGHT),
        ("ROWBACKGROUNDS", (0,1), (-1,-1), [WHITE, GREY_LIGHT]),
        ("GRID", (0,0), (-1,-1), 0.4, GREY_BORDER),
        ("TOPPADDING", (0,0), (-1,-1), 5),
        ("BOTTOMPADDING", (0,0), (-1,-1), 5),
        ("LEFTPADDING", (0,0), (-1,-1), 6),
        ("RIGHTPADDING", (0,0), (-1,-1), 6),
        ("VALIGN", (0,0), (-1,-1), "MIDDLE"),
    ]
    for i in range(1, len(table_data)):
        if i % 2 == 0:
            style.append(("BACKGROUND", (0,i), (-1,i), GREEN_PALE))
    t.setStyle(TableStyle(style))
    return t

def highlight_box(text, bg=YELLOW_HIGH, border=colors.HexColor("#F9A825")):
    data = [[Paragraph(text, note_box)]]
    t = Table(data, colWidths=[17*cm])
    t.setStyle(TableStyle([
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("BOX", (0,0), (-1,-1), 1, border),
        ("TOPPADDING",    (0,0), (-1,-1), 6),
        ("BOTTOMPADDING", (0,0), (-1,-1), 6),
        ("LEFTPADDING",   (0,0), (-1,-1), 10),
        ("RIGHTPADDING",  (0,0), (-1,-1), 10),
    ]))
    return t

def bp(text):
    return Paragraph(f"\u2022  {text}", bullet)

def sp(n=4):
    return Spacer(1, n)

# ─── Build content ────────────────────────────────────────────────────────────
story = []

# ══ COVER PAGE ══════════════════════════════════════════════════════════════
cover_data = [[
    Spacer(1, 2*cm),
    Paragraph("MORPHOLOGY OF", title_style),
    Paragraph("FLOWERING PLANTS", title_style),
    Spacer(1, 0.4*cm),
    Paragraph("Class XI Biology  |  Complete Study Notes", subject_style),
    Spacer(1, 0.6*cm),
    HRFlowable(width="80%", thickness=1.5, color=GREEN_LIGHT, spaceAfter=10),
    Paragraph("Angiosperms  \u2022  Root  \u2022  Stem  \u2022  Leaf  \u2022  Inflorescence  \u2022  Flower  \u2022  Fruit  \u2022  Seed",
              ParagraphStyle("cov_sub", fontName="Helvetica", fontSize=10,
                             textColor=GREEN_LIGHT, alignment=TA_CENTER, leading=16)),
    Spacer(1, 2*cm),
]]
cover_table = Table([[item] for item in cover_data[0]], colWidths=[17*cm])
cover_table.setStyle(TableStyle([
    ("BACKGROUND", (0,0), (-1,-1), GREEN_DARK),
    ("TOPPADDING",    (0,0), (-1,-1), 0),
    ("BOTTOMPADDING", (0,0), (-1,-1), 0),
    ("LEFTPADDING",   (0,0), (-1,-1), 0),
    ("RIGHTPADDING",  (0,0), (-1,-1), 0),
]))
story.append(cover_table)
story.append(PageBreak())

# ══ INDEX PAGE ════════════════════════════════════════════════════════════════
story.append(Paragraph("TABLE OF CONTENTS", h1))
story.append(HRFlowable(width="100%", thickness=1, color=GREEN_MED, spaceAfter=8))
toc_items = [
    ("1.", "Introduction to Morphology", "3"),
    ("2.", "Root - Structure, Types & Modifications", "3"),
    ("3.", "Stem - Structure, Forms & Modifications", "5"),
    ("4.", "Leaf - Parts, Venation & Modifications", "7"),
    ("5.", "Inflorescence - Racemose & Cymose", "9"),
    ("6.", "Flower - Whorls, Symmetry & Parts", "10"),
    ("7.", "Fruit - Types & Classification", "13"),
    ("8.", "Seed - Structure & Dispersal", "15"),
    ("9.", "Key Comparisons: Dicot vs Monocot", "16"),
    ("10.", "Important Facts & Special Notes", "17"),
]
toc_data = [[Paragraph(f'<b>{n}</b>', body), Paragraph(title, body), Paragraph(f'<b>{pg}</b>', bold_body)]
            for n, title, pg in toc_items]
toc_table = Table(toc_data, colWidths=[1*cm, 13.5*cm, 1.5*cm])
toc_table.setStyle(TableStyle([
    ("GRID", (0,0), (-1,-1), 0, WHITE),
    ("TOPPADDING",    (0,0), (-1,-1), 5),
    ("BOTTOMPADDING", (0,0), (-1,-1), 5),
    ("ROWBACKGROUNDS", (0,0), (-1,-1), [WHITE, GREEN_PALE]),
    ("LEFTPADDING",   (0,0), (-1,-1), 6),
]))
story.append(toc_table)
story.append(PageBreak())

# ══ CHAPTER 1: INTRODUCTION ═══════════════════════════════════════════════════
story.append(chapter_banner("Chapter 1: Introduction to Morphology", "The science of plant form and structure"))
story.append(sp(8))
story.append(Paragraph("What is Morphology?", h1))
story.append(Paragraph(
    "<b>Morphology</b> (Greek: <i>morphe</i> = form; <i>logos</i> = study) is the branch of biology "
    "that deals with the study of forms, features, and relative positions of different plant organs such as "
    "roots, stems, leaves, flowers, seeds, and fruits.", body))
story.append(sp())
story.append(Paragraph("Angiosperms (Flowering Plants)", h2))
for pt in [
    "Seed-bearing plants where seeds are <b>always enclosed</b> within an ovary (inside a fruit).",
    "Sporophylls are organized into <b>flowers</b> — the defining feature.",
    "Classified into <b>Monocots</b> (one cotyledon) and <b>Dicots</b> (two cotyledons).",
    "Body divided into two systems: <b>Root System</b> (underground) and <b>Shoot System</b> (aerial).",
    "Shoot system = stem + branches + leaves + flowers + fruits.",
    "<b>Vegetative parts</b>: root, stem, leaves | <b>Reproductive parts</b>: flowers, fruits, seeds.",
]:
    story.append(bp(pt)); story.append(sp(2))
story.append(sp(6))
story.append(highlight_box(
    "\U0001F4CC  <b>Key Fact:</b>  Smallest angiosperm = <i>Wolffia</i> (&lt; 0.1 mm) | "
    "Tallest angiosperm = <i>Eucalyptus regnans</i> (&gt; 114 m) | "
    "Only marine angiosperm = <i>Zostera</i>"))
story.append(PageBreak())

# ══ CHAPTER 2: ROOT ═══════════════════════════════════════════════════════════
story.append(chapter_banner("Chapter 2: Root", "Structure, Types, Regions & Modifications"))
story.append(sp(8))
story.append(Paragraph("Basic Features of Root", h1))
for pt in [
    "Descending, <b>non-green</b>, underground part — lacks nodes, internodes, leaves, and buds.",
    "Develops from the <b>radicle</b> of the embryo.",
    "Shows <b>positive geotropism</b> (grows toward gravity) and <b>positive hydrotropism</b>.",
    "Responsible for anchorage, absorption, conduction, and storage.",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(Paragraph("Types of Root Systems", h2))
story.append(info_table(
    ["Type", "Origin", "Characteristics", "Example"],
    [
        ["Tap Root", "From radicle", "One main root with lateral secondary & tertiary branches", "Dicots: Mustard, Gram, Carrot"],
        ["Fibrous Root", "Radicle short-lived", "Many thin roots of equal thickness from stem base", "Monocots: Wheat, Grass, Onion"],
        ["Adventitious Root", "From stem/leaf", "Arise from parts other than radicle", "Banyan, Grass, Bryophyllum"],
    ],
    [3*cm, 3.5*cm, 6*cm, 4.5*cm]
))

story.append(sp(8))
story.append(Paragraph("Regions of Root (from tip upward)", h2))
story.append(info_table(
    ["Zone", "Also Known As", "Key Features"],
    [
        ["Root Cap", "Calyptra", "Thimble-like cover; protects meristematic zone; secretes mucilage"],
        ["Zone of Cell Division", "Meristematic Zone", "Actively dividing cells; gives rise to all root tissues"],
        ["Zone of Elongation", "Region of elongation", "Cells elongate rapidly; root length increases here"],
        ["Zone of Maturation", "Root hair zone", "Cells differentiate; root hairs form for absorption"],
    ],
    [4*cm, 4*cm, 9*cm]
))

story.append(sp(8))
story.append(Paragraph("Modifications of Root", h1))
story.append(Paragraph("A. For Food Storage", h2))
story.append(info_table(
    ["Type", "Shape", "Example"],
    [
        ["Fusiform", "Spindle-shaped, tapers at both ends", "Radish (Raphanus sativus)"],
        ["Napiform", "Top-shaped, abruptly tapers below", "Turnip (Brassica rapa), Beet"],
        ["Conical", "Cone-shaped, wider at top", "Carrot (Daucus carota)"],
        ["Tuberous (Nodulose)", "Irregular fleshy, no definite shape", "Sweet potato (Ipomoea batata), Dahlia"],
        ["Moniliform", "Bead-like swellings at intervals", "Momordica, Portulaca"],
    ],
    [4*cm, 7*cm, 6*cm]
))

story.append(sp(6))
story.append(Paragraph("B. For Mechanical Support", h2))
for pt in [
    "<b>Prop/Pillar roots</b> — hanging aerial roots that touch soil and support large horizontal branches. e.g., Banyan (<i>Ficus bengalensis</i>).",
    "<b>Stilt roots</b> — oblique roots from lower nodes, providing extra support. e.g., Maize, Sugarcane, Screwpine (<i>Pandanus</i>).",
    "<b>Buttress roots</b> — flattened, plank-like extensions at base of large tropical trees.",
    "<b>Climbing roots</b> — arise from nodes, help plant cling to support. e.g., <i>Pothos</i>, Money plant.",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(sp(6))
story.append(Paragraph("C. For Special Functions", h2))
story.append(info_table(
    ["Modification", "Function", "Example"],
    [
        ["Pneumatophores (Respiratory roots)", "Gaseous exchange in waterlogged/marshy soil; negatively geotropic", "Avicennia, Rhizophora (mangroves)"],
        ["Haustorial/Parasitic roots", "Penetrate host stem to absorb nutrition", "Cuscuta, Viscum, Dendrophthoe"],
        ["Velamen roots", "Absorb moisture from air; spongy tissue", "Epiphytic orchids"],
        ["Foliar (Epiphyllous) roots", "Arise from leaves", "Bryophyllum, Begonia"],
        ["Assimilatory roots", "Contain chlorophyll, perform photosynthesis", "Tinospora, Trapa"],
        ["Contractile roots", "Pull corm/bulb to proper depth in soil", "Crocus (saffron), Freesia"],
        ["Annulated roots", "Ring-like swellings along root", "Ipecac (Caephalis)"],
        ["Reproductive roots", "Vegetative propagation", "Sweet potato, Dahlia"],
    ],
    [5*cm, 7*cm, 5*cm]
))

story.append(sp(6))
story.append(Paragraph("Functions of Root", h2))
for pt in ["Anchorage/fixation of plant in soil (primary function)",
           "Absorption of water and dissolved minerals from soil",
           "Storage of food material", "Conduction of water to shoot system",
           "Photosynthesis in some modified green roots", "Vegetative propagation"]:
    story.append(bp(pt)); story.append(sp(2))
story.append(PageBreak())

# ══ CHAPTER 3: STEM ═══════════════════════════════════════════════════════════
story.append(chapter_banner("Chapter 3: Stem", "Structure, Forms & Modifications"))
story.append(sp(8))
story.append(Paragraph("Basic Features of Stem", h1))
for pt in [
    "Aerial part of the plant; lies <b>above the ground</b> (negative geotropism).",
    "Has distinct <b>nodes</b> (where leaves/buds arise) and <b>internodes</b> (space between nodes).",
    "Develops from the <b>plumule</b> of the embryo.",
    "Branches, leaves, flower buds, and bracts develop from nodes.",
    "Shows <b>positive phototropism</b> (grows toward light).",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(Paragraph("Forms of Stem", h2))
story.append(info_table(
    ["Form", "Description", "Example"],
    [
        ["Caudex", "Unbranched, erect, cylindrical; marked with leaf-scar marks; crown of leaves at top", "Palm"],
        ["Culm", "Jointed with solid nodes and hollow internodes", "Bamboo (Gramineae)"],
        ["Excurrent", "Cone-shaped; main axis dominant; branches in acropetal succession", "Pinus, Eucalyptus, Casuarina"],
        ["Decurrent (Deliquescent)", "Dome-shaped; lateral branches outcompete main trunk", "Mango, Banyan, Shisham"],
        ["Scape", "Leafless aerial shoot bearing flowers; no aerial stem visible", "Onion, Aroids"],
    ],
    [3.5*cm, 8.5*cm, 5*cm]
))

story.append(sp(8))
story.append(Paragraph("Modifications of Stem", h1))
story.append(Paragraph("A. Underground Stem Modifications (Storage & Perennation)", h2))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Rhizome", "Horizontal underground stem; distinct nodes, internodes & scale leaves; terminal bud present", "Ginger, Turmeric, Lotus, Banana, Fern"],
        ["Corm", "Condensed, vertical, rounded underground stem; solid; internodes not distinct; covered with scale leaves", "Colocasia, Arbi, Crocus (Saffron), Gladiolus"],
        ["Bulb", "Reduced, disc-like stem surrounded by fleshy scale leaves; terminal bud at center", "Onion, Garlic, Lily, Tulip"],
        ["Stem Tuber", "Swollen tips of underground stolons; 'eyes' are axillary buds", "Potato (Solanum tuberosum)"],
    ],
    [3.5*cm, 8.5*cm, 5*cm]
))

story.append(sp(6))
story.append(Paragraph("B. Sub-aerial Modifications (Vegetative Propagation)", h2))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Runner", "Creeps on soil surface; roots from lower nodes, leaves from upper", "Cynodon (Doob grass), Oxalis"],
        ["Stolon", "Branches arch out from base and root at tips", "Fragaria (Strawberry), Jasmine, Peppermint"],
        ["Sucker", "Underground lateral branches emerge above soil as shoots", "Mint, Pineapple, Chrysanthemum"],
        ["Offset", "Short, thick horizontal branches in aquatic plants", "Pistia, Eichhornia (Water hyacinth)"],
    ],
    [3*cm, 8.5*cm, 5.5*cm]
))

story.append(sp(6))
story.append(Paragraph("C. Aerial Modifications", h2))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Stem Tendrils", "Coiled, sensitive; axillary (Passiflora) or terminal (Vitis)", "Passion flower, Grape vine, Cucumber"],
        ["Stem Thorns", "Hard, pointed; modified axillary buds; cannot be removed easily", "Bougainvillea, Duranta, Citrus, Carissa"],
        ["Phylloclade", "Flattened/cylindrical green stem for photosynthesis; leaves reduced to spines", "Opuntia (Cactus), Casuarina, Ruscus"],
        ["Cladode", "Phylloclade with only one internode", "Asparagus"],
        ["Bulbils", "Condensed fleshy axillary buds for vegetative reproduction", "Dioscorea, Agave, Oxalis, Globba"],
        ["Pseudobulb", "Swollen internode; stores water and food", "Orchids"],
    ],
    [3.5*cm, 8.5*cm, 5*cm]
))

story.append(sp(6))
story.append(highlight_box(
    "\U0001F4CC  <b>Remember:</b>  <i>Ulex</i> has BOTH stem thorns AND leaf spines. "
    "Thorns are difficult to remove (connected to vascular tissue); Prickles are easy to remove (e.g., Rose)."))
story.append(PageBreak())

# ══ CHAPTER 4: LEAF ═══════════════════════════════════════════════════════════
story.append(chapter_banner("Chapter 4: Leaf", "Parts, Venation, Types & Modifications"))
story.append(sp(8))
story.append(Paragraph("Parts of a Typical Leaf", h1))
story.append(info_table(
    ["Part", "Also Called", "Features"],
    [
        ["Leaf Base", "Hypopodium", "Attaches leaf to stem; may bear stipules (small leaf-like outgrowths)"],
        ["Petiole", "Mesopodium", "Stalk connecting blade to stem; leaf without petiole = sessile leaf"],
        ["Lamina (Blade)", "Epipodium", "Flat, green, expanded part; contains midrib and veins for water/food conduction"],
    ],
    [3*cm, 3.5*cm, 10.5*cm]
))

story.append(sp(8))
story.append(Paragraph("Venation", h2))
story.append(info_table(
    ["Type", "Pattern", "Found In", "Example"],
    [
        ["Reticulate (Net)", "Veins form a network; midrib + lateral veins + veinlets", "Dicots", "Mango, Peepal, Hibiscus"],
        ["Parallel", "Veins run parallel to each other and the midrib", "Monocots", "Grass, Banana, Bamboo, Maize"],
    ],
    [3.5*cm, 6*cm, 3*cm, 4.5*cm]
))

story.append(sp(8))
story.append(Paragraph("Types of Leaves", h1))
story.append(Paragraph("Simple vs. Compound Leaf", h2))
for pt in [
    "<b>Simple leaf</b> — single, undivided lamina; may be lobed but not cut down to midrib. e.g., Mango, Peepal, Guava.",
    "<b>Compound leaf</b> — lamina completely divided into separate leaflets (each on a petiolule).",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(info_table(
    ["Compound Type", "Arrangement of Leaflets", "Sub-types", "Example"],
    [
        ["Pinnately Compound", "Leaflets along a central rachis", "Unipinnate, Bipinnate, Tripinnate, Decompound (multipinnate)", "Neem (unipinnate), Rose, Mimosa (bipinnate)"],
        ["Palmately Compound", "All leaflets arise from same point (tip of petiole)", "Unifoliate (Citrus), Bifoliate, Trifoliate (Oxalis), Quadrifoliate, Multifoliate", "Silk cotton, Cannabis, Cleome"],
    ],
    [4*cm, 4.5*cm, 5*cm, 3.5*cm]
))

story.append(sp(8))
story.append(Paragraph("Phyllotaxy (Leaf Arrangement on Stem)", h2))
story.append(info_table(
    ["Type", "Arrangement", "Example"],
    [
        ["Alternate", "One leaf per node, alternating sides", "China rose (Hibiscus), Sunflower, Mustard"],
        ["Opposite - Decussate", "Two leaves per node; successive pairs at 90\u00b0 to each other", "Calotropis, Guava, Ixora"],
        ["Whorled", "Three or more leaves per node in a ring", "Alstonia, Nerium (Oleander)"],
    ],
    [4*cm, 7*cm, 6*cm]
))

story.append(sp(8))
story.append(Paragraph("Leaf Modifications", h1))
story.append(info_table(
    ["Modification", "Function", "Part Modified", "Example"],
    [
        ["Leaf Tendrils", "Climbing support", "Leaflets or whole leaf", "Pea (Pisum) — leaflets; Lathyrus — stipules; Gloriosa — leaf tip"],
        ["Leaf Spines", "Protection", "Whole leaf or stipules", "Cactus, Aloe, Argemone"],
        ["Phyllode", "Photosynthesis", "Petiole flattened, green", "Acacia auriculiformis"],
        ["Leaf Pitcher (Passive)", "Insect trapping (nutrients)", "Leaf margin forms pitcher", "Nepenthes"],
        ["Leaf Pitcher (Active)", "Insect trapping", "Leaf forms bladder trap", "Utricularia (Bladderwort)"],
        ["Leaf Sundew", "Insect trapping", "Leaf with sticky tentacles", "Drosera (Sundew)"],
        ["Fleshy Leaves", "Water/food storage", "Swollen, succulent", "Aloe, Agave, Onion scale leaves"],
        ["Hooks", "Climbing", "Terminal leaflet", "Bignonia"],
        ["Reproductive Leaves", "Vegetative propagation", "Leaf margin with notches containing buds", "Bryophyllum"],
    ],
    [4*cm, 4.5*cm, 3.5*cm, 5*cm]
))
story.append(PageBreak())

# ══ CHAPTER 5: INFLORESCENCE ══════════════════════════════════════════════════
story.append(chapter_banner("Chapter 5: Inflorescence", "Arrangement of Flowers on Floral Axis"))
story.append(sp(8))
story.append(Paragraph(
    "Inflorescence is the arrangement of flowers on the floral axis (peduncle). "
    "When a shoot tip transforms into a flower-bearing structure, it is an inflorescence.", body))
story.append(sp(6))

story.append(Paragraph("A. Racemose (Indefinite/Indeterminate) Inflorescence", h1))
story.append(bp("Main axis <b>continues to grow</b>; flowers open in <b>acropetal order</b> (base to apex)."))
story.append(sp(4))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Raceme", "Unbranched axis; pedicellate flowers", "Mustard, Radish, Delphinium"],
        ["Spike", "Unbranched axis; sessile flowers", "Wheat, Amaranthus, Adhatoda"],
        ["Catkin (Ament)", "Pendulous spike; unisexual flowers; axis soft", "Mulberry, Oak, Willow"],
        ["Spadix", "Fleshy axis; small flowers; enclosed in large spathe", "Colocasia, Maize (cob), Palms, Banana"],
        ["Corymb", "Flat-topped; pedicels of different lengths; outer flowers open first", "Candytuft (Iberis), Pyrus"],
        ["Umbel", "Pedicels arise from one point; umbrella-shaped; involucre present", "Coriander, Fennel, Carrot (Apiaceae)"],
        ["Capitulum (Head)", "Flat/convex receptacle; sessile florets; most evolved; involucre of bracts", "Sunflower, Marigold, Tridax (Asteraceae)"],
        ["Panicle", "Branched raceme", "Neem, Rice, Yucca"],
        ["Compound Spike", "Spikes of spikelets", "Wheat, Barley"],
        ["Compound Umbel", "Umbels of umbels; has involucre + involucel", "Coriander, Daucus"],
    ],
    [4*cm, 8*cm, 5*cm]
))

story.append(sp(8))
story.append(Paragraph("B. Cymose (Definite/Determinate) Inflorescence", h1))
story.append(bp("Main axis <b>terminates in a flower</b>; flowers open in <b>centrifugal order</b> (center outward)."))
story.append(sp(4))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Monochasial Cyme (Uniparous)", "Each time only ONE lateral branch develops", ""],
        ["\u00a0\u00a0 Scorpioid Cyme", "Branches alternate on opposite sides; coiled like scorpion tail", "Heliotropium, Solanum"],
        ["\u00a0\u00a0 Helicoid Cyme", "All branches develop on same side", "Drosera, Ranunculus"],
        ["Dichasial Cyme (Biparous)", "TWO lateral branches after each terminal flower", "Dianthus, Bougainvillea, Teak"],
        ["Polychasial Cyme (Multiparous)", "THREE or more lateral branches after each flower", "Nerium (Oleander), Calotropis"],
        ["Hypanthodium", "Hollow, flask-shaped fleshy receptacle; flowers inside; small opening at top", "Banyan, Peepal, Fig (Ficus)"],
        ["Verticillaster", "Condensed cyme at each node giving false whorl appearance", "Ocimum (Tulsi), Salvia, Leucas"],
        ["Cyathium", "Cup-like involucre; one central female flower; many male flowers; nectar glands", "Euphorbia, Poinsettia"],
        ["Coenanthium", "Disc-like receptacle with folded margins", "Dorstenia"],
    ],
    [5*cm, 7.5*cm, 4.5*cm]
))
story.append(PageBreak())

# ══ CHAPTER 6: FLOWER ═════════════════════════════════════════════════════════
story.append(chapter_banner("Chapter 6: Flower", "Structure, Symmetry, Whorls & Floral Parts"))
story.append(sp(8))
story.append(Paragraph("Introduction to Flower", h1))
story.append(Paragraph(
    "A flower is a modified shoot with highly compressed internodes. It is the reproductive unit of angiosperms. "
    "A complete flower has four whorls (calyx, corolla, androecium, gynoecium) on the thalamus.", body))
story.append(sp(6))
story.append(info_table(
    ["Whorl", "Organ", "Members", "Function"],
    [
        ["1st (outermost)", "Calyx", "Sepals", "Protects floral bud before opening"],
        ["2nd", "Corolla", "Petals", "Attracts pollinators (insects, birds, wind)"],
        ["3rd", "Androecium", "Stamens", "Male reproductive whorl — produces pollen"],
        ["4th (innermost)", "Gynoecium", "Carpels/Pistil", "Female reproductive whorl — produces ovules"],
    ],
    [4*cm, 3.5*cm, 3.5*cm, 6*cm]
))

story.append(sp(8))
story.append(Paragraph("Key Terminology", h2))
story.append(info_table(
    ["Term", "Meaning", "Example"],
    [
        ["Bracteate", "Has a bract (modified leaf) at base of flower", "Most flowers"],
        ["Ebracteate", "No bract present", "Mustard"],
        ["Pedicellate", "Flower has a stalk (pedicel)", "Rose"],
        ["Sessile", "Flower has no stalk", "Wheat, Amaranthus"],
        ["Complete", "Has all 4 whorls", "Hibiscus, Mustard"],
        ["Incomplete", "Missing one or more whorls", "Unisexual flowers"],
        ["Bisexual (Hermaphrodite)", "Has both androecium AND gynoecium", "Rose, Mustard"],
        ["Unisexual", "Has only one sex organ; Staminate (male) or Pistillate (female)", "Papaya, Maize, Cucumber"],
        ["Neuter flower", "Has neither androecium nor gynoecium", "Ray florets of sunflower"],
    ],
    [4.5*cm, 7*cm, 5.5*cm]
))

story.append(sp(8))
story.append(Paragraph("Symmetry of Flower", h2))
story.append(info_table(
    ["Type", "Definition", "Example"],
    [
        ["Actinomorphic (Regular)", "Radial symmetry; can be divided into equal halves in any vertical plane", "Mustard, China rose, Rose"],
        ["Zygomorphic (Irregular)", "Bilateral symmetry; divisible into equal halves in only ONE plane", "Pea, Cassia, Gulmohur, Orchid"],
        ["Asymmetric", "No plane of symmetry", "Canna"],
    ],
    [5*cm, 7*cm, 5*cm]
))

story.append(sp(8))
story.append(Paragraph("Aestivation (Arrangement of Petals in Bud)", h1))
story.append(info_table(
    ["Type", "Description", "Example"],
    [
        ["Valvate", "Petals touch at margins only; no overlapping", "Calotropis, Mustard (sepals)"],
        ["Twisted (Contorted)", "Each petal overlaps the next consistently in one direction", "Cotton, China rose, Lady's finger"],
        ["Imbricate", "Irregular overlapping; some entirely inside, some outside", "Cassia, Gulmohar"],
        ["Vexillary (Papilionaceous)", "Largest petal (standard) outermost; two wings next; two keel petals innermost", "Pea (Pisum), Bean, Sweet pea"],
        ["Quincuncial", "2 petals fully outside, 2 fully inside, 1 half-in-half-out", "Ranunculus, Rose, Cassia"],
    ],
    [4*cm, 8*cm, 5*cm]
))

story.append(sp(8))
story.append(Paragraph("Calyx (Sepals)", h2))
for pt in [
    "<b>Polysepalous</b> — free sepals (Mustard, China rose)",
    "<b>Gamosepalous</b> — fused sepals (Datura, Petunia, Hibiscus)",
    "<b>Persistent</b> — calyx remains till fruit formation (Brinjal, Tomato)",
    "<b>Deciduous</b> — calyx falls off before or at fertilization (Poppy, Mustard)",
    "<b>Petaloid calyx</b> — colored like petals (Mussaenda); Note: Bracts of Bougainvillea are petaloid, not calyx",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(sp(6))
story.append(Paragraph("Corolla (Petals)", h2))
for pt in [
    "<b>Polypetalous</b> — free petals (Rose, Mustard, China rose)",
    "<b>Gamopetalous</b> — fused petals (Datura, Petunia, Brinjal, Salvia)",
    "Shapes: Tubular (disc florets of sunflower), Bell-shaped (campanulate - Tobacco), Funnel-shaped, Wheel-shaped (rotate - Solanum)",
    "<b>Epipetalous stamens</b> — stamens attached to petals (Brinjal, Datura)",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(sp(6))
story.append(Paragraph("Androecium (Stamens)", h1))
story.append(Paragraph(
    "Each stamen = <b>filament</b> (stalk) + <b>anther</b> (produces pollen). "
    "Anther is usually <b>dithecous</b> (2 lobes, 4 pollen sacs) or <b>monothecous</b> (1 lobe, 2 pollen sacs — Malvaceae).", body))
story.append(sp(4))
story.append(info_table(
    ["Condition", "Description", "Example"],
    [
        ["Epipetalous", "Stamens fused to petals", "Brinjal, Datura"],
        ["Epiphyllous", "Stamens fused to perianth (tepals)", "Lily, Tulip"],
        ["Monadelphous", "All filaments united into ONE bundle; anthers free", "China rose, Cotton (Malvaceae)"],
        ["Diadelphous", "Filaments in TWO bundles", "Pea (9+1 arrangement)"],
        ["Polyadelphous", "Filaments in MANY bundles; anthers free", "Citrus, Hypericum"],
        ["Syngenesious", "Anthers united; filaments free", "Sunflower, Compositae/Asteraceae"],
        ["Synandrous", "Both anthers and filaments united", "Cucurbits (Cucurbitaceae)"],
        ["Didynamous", "4 stamens: 2 long + 2 short", "Salvia, Ocimum (Lamiaceae)"],
        ["Tetradynamous", "6 stamens: 4 long + 2 short", "Mustard, Cabbage (Brassicaceae)"],
    ],
    [4.5*cm, 7*cm, 5.5*cm]
))

story.append(sp(8))
story.append(Paragraph("Gynoecium (Pistil / Carpels)", h1))
story.append(Paragraph(
    "Female reproductive whorl. Each carpel = <b>stigma</b> (receives pollen) + <b>style</b> (pollen tube grows through) "
    "+ <b>ovary</b> (contains ovules, develops into fruit).", body))
story.append(sp(4))
story.append(info_table(
    ["Condition", "Description", "Example"],
    [
        ["Monocarpellary", "Single carpel", "Pea, Mango, Coconut"],
        ["Apocarpous (Multicarpellary)", "Multiple FREE carpels", "Lotus, Rose, Strawberry, Michelia"],
        ["Syncarpous (Multicarpellary)", "Multiple FUSED carpels", "Mustard, Tomato, Papaver"],
    ],
    [5*cm, 6*cm, 6*cm]
))

story.append(sp(6))
story.append(Paragraph("Ovary Position", h2))
story.append(info_table(
    ["Position", "Condition", "Flower Type", "Example"],
    [
        ["Superior ovary", "Other whorls attach BELOW ovary on thalamus", "Hypogynous", "Mustard, Brinjal, China rose"],
        ["Half-inferior ovary", "Thalamus cup-shaped; ovary in center; whorls at rim", "Perigynous", "Rose, Peach, Plum, Cherry"],
        ["Inferior ovary", "Thalamus grows over ovary; other whorls above ovary", "Epigynous", "Guava, Cucumber, Sunflower"],
    ],
    [3.5*cm, 5.5*cm, 3.5*cm, 4.5*cm]
))

story.append(sp(6))
story.append(Paragraph("Placentation (Position of Ovules in Ovary)", h2))
story.append(info_table(
    ["Type", "Description", "Example"],
    [
        ["Marginal", "Ovules on ventral suture of ONE-chambered ovary; forms a ridge", "Pea (Pisum), Bean"],
        ["Axile", "Ovules on central axis; ovary multi-chambered (septa present)", "Mustard, Tomato, Lemon, Hibiscus"],
        ["Parietal", "Ovules on inner walls; ovary 1-chambered but appears 2-chambered (false septum in Brassicaceae)", "Papaya, Cucumber, Mustard"],
        ["Free Central", "Ovules on central column rising from base; NO septa", "Dianthus, Primrose (Primula)"],
        ["Basal", "Single ovule at base of one-chambered ovary", "Sunflower, Marigold (Compositae)"],
        ["Superficial", "Ovules all over inner surface of locule walls", "Nymphaea (Water lily)"],
    ],
    [3.5*cm, 7.5*cm, 6*cm]
))
story.append(PageBreak())

# ══ CHAPTER 7: FRUIT ══════════════════════════════════════════════════════════
story.append(chapter_banner("Chapter 7: Fruit", "Types, Classification & Examples"))
story.append(sp(8))
story.append(Paragraph("Introduction to Fruit", h1))
for pt in [
    "Fruit develops from the <b>ovary</b> after fertilization (sometimes from other floral parts too).",
    "<b>True fruit</b> — develops ONLY from ovary. e.g., Mango, Coconut, Tomato.",
    "<b>False fruit (Pseudocarp)</b> — other floral parts (thalamus, calyx) also contribute. e.g., Apple (thalamus), Strawberry, Cashew (pedicel).",
    "<b>Parthenocarpic fruit</b> — develops WITHOUT fertilization; seedless. e.g., Banana, some grapes, Pineapple.",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(sp(6))
story.append(Paragraph("Pericarp (Fruit Wall) Layers", h2))
story.append(info_table(
    ["Layer", "Name", "Example"],
    [
        ["Outer", "Epicarp / Exocarp", "Skin of mango, coconut husk"],
        ["Middle", "Mesocarp", "Fleshy edible part of mango; fibrous part of coconut"],
        ["Inner", "Endocarp", "Stony pit of mango; hard shell of coconut"],
    ],
    [3*cm, 5*cm, 9*cm]
))

story.append(sp(8))
story.append(Paragraph("A. Simple Fruits (from single ovary)", h1))
story.append(Paragraph("Fleshy Fruits", h2))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Berry", "Entire pericarp fleshy; many seeds embedded in pulp; epicarp thin", "Tomato, Grape, Banana, Brinjal, Date, Guava"],
        ["Hesperidium", "Berry with leathery rind (epicarp + mesocarp) containing oil glands; edible juicy endocarp hairs", "Lemon, Orange, Citrus fruits"],
        ["Pepo", "Berry with hard outer rind formed from thalamus; inferior ovary", "Cucumber, Watermelon, Pumpkin, Gourd"],
        ["Drupe", "Epicarp thin; mesocarp fleshy edible; endocarp hard, stony", "Mango, Coconut, Plum, Peach, Cherry, Almond"],
        ["Pome", "False fruit; edible fleshy part is thalamus; true fruit is core (leathery)", "Apple, Pear, Quince (Rosaceae)"],
    ],
    [3.5*cm, 8*cm, 5.5*cm]
))

story.append(sp(6))
story.append(Paragraph("Dry Fruits", h2))
story.append(Paragraph("1. Dehiscent (split open at maturity):", h3))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Legume (Pod)", "Monocarpellary; splits along BOTH dorsal and ventral sutures", "Pea, Bean, Soybean, Groundnut"],
        ["Follicle", "Monocarpellary; splits along ONE suture only", "Calotropis, Aconitum, Larkspur"],
        ["Siliqua", "Bicarpellary; elongated with false septum (replum); 2 valves", "Mustard, Radish (Brassica family)"],
        ["Silicula", "Short, flat, broader siliqua; length = breadth", "Capsella (Shepherd's purse), Iberis"],
        ["Capsule", "Multicarpellary, syncarpous; many seeds; various dehiscence types", "Cotton, Poppy, Datura, Tobacco"],
    ],
    [3.5*cm, 7.5*cm, 6*cm]
))
story.append(Paragraph("2. Indehiscent (do not split at maturity):", h3))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Achene", "One seed; pericarp free from seed coat; small", "Clematis, Mirabilis"],
        ["Cypsela", "Like achene but from inferior ovary; pappus (modified calyx) for dispersal", "Sunflower, Marigold, Tridax (Asteraceae)"],
        ["Caryopsis", "Pericarp completely fused with seed coat (testa)", "Wheat, Maize, Rice, Barley (Gramineae)"],
        ["Nut", "Very hard, stony pericarp; usually one seed", "Chestnut, Litchi, Cashew"],
        ["Samara", "Winged pericarp for wind dispersal", "Elm, Maple, Shorea (Sal)"],
    ],
    [3.5*cm, 7.5*cm, 6*cm]
))
story.append(Paragraph("3. Schizocarpic (split into one-seeded units called mericarps):", h3))
story.append(info_table(
    ["Type", "Features", "Example"],
    [
        ["Cremocarp", "Bicarpellary; splits into 2 mericarps hanging from carpophore", "Coriander, Fennel, Daucus (Apiaceae)"],
        ["Lomentum", "Constricted between seeds; breaks transversely", "Mimosa, Desmodium, Cassia"],
        ["Regma", "Each mericarp dehisces separately; 3 cocci", "Castor, Euphorbia"],
    ],
    [3.5*cm, 7.5*cm, 6*cm]
))

story.append(sp(8))
story.append(Paragraph("B. Aggregate Fruits (from apocarpous gynoecium of single flower)", h1))
for pt in [
    "Each carpel develops into a small fruitlet; all on one receptacle.",
    "Examples: Strawberry (fleshy thalamus + achenes), Raspberry (drupelets), Lotus (achenes on large receptacle), Rose hip (many achenes inside fleshy hypanthium).",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(sp(6))
story.append(Paragraph("C. Composite / Multiple / Collective Fruits (from entire inflorescence)", h1))
story.append(info_table(
    ["Type", "Origin", "Example"],
    [
        ["Sorosis", "From spike, spadix, or catkin; flowers fused with fleshy axis/bracts", "Mulberry (spike), Jackfruit (spadix), Pineapple (spadix)"],
        ["Syconus", "From hypanthodium inflorescence; many achenes inside fleshy hollow receptacle", "Fig (Ficus carica), Banyan, Peepal"],
        ["Strobilus (Cone)", "From catkin; bracts become woody", "Hop (Humulus lupulus)"],
    ],
    [3.5*cm, 7.5*cm, 6*cm]
))
story.append(PageBreak())

# ══ CHAPTER 8: SEED ═══════════════════════════════════════════════════════════
story.append(chapter_banner("Chapter 8: Seed", "Structure, Types & Dispersal"))
story.append(sp(8))
story.append(Paragraph("Introduction to Seed", h1))
for pt in [
    "Seed = mature, fertilized <b>ovule</b>.",
    "Contains: <b>Seed coat</b> (testa + tegmen) + <b>Embryo</b> + sometimes <b>endosperm</b>.",
    "<b>Albuminous seeds</b> — endosperm present at maturity. e.g., Castor, Maize, Wheat, Barley, Sunflower.",
    "<b>Exalbuminous seeds</b> — endosperm absorbed by embryo during development; cotyledons store food. e.g., Pea, Bean, Groundnut.",
    "<b>Perisperm</b> — persistent nucellus tissue outside endosperm. e.g., Black pepper (<i>Piper nigrum</i>), Beet.",
]:
    story.append(bp(pt)); story.append(sp(2))

story.append(sp(8))
story.append(Paragraph("Dicot Seed Structure (e.g., Pea/Bean)", h2))
story.append(info_table(
    ["Part", "Description"],
    [
        ["Testa", "Outer, harder seed coat; usually colored"],
        ["Tegmen", "Inner, thin, membranous seed coat"],
        ["Hilum", "Scar where seed was attached to the pod (funicle)"],
        ["Micropyle", "Tiny pore above hilum; allows water entry and gaseous exchange"],
        ["Embryo", "= Radicle (future root) + Plumule (future shoot) + 2 Cotyledons (food storage)"],
    ],
    [4*cm, 13*cm]
))

story.append(sp(8))
story.append(Paragraph("Monocot Seed Structure (e.g., Maize/Wheat)", h2))
story.append(info_table(
    ["Part", "Description"],
    [
        ["Pericarp + Testa", "Fused together — fruit wall and seed coat are NOT separable (Caryopsis)"],
        ["Endosperm", "Large, starchy; provides nutrition to germinating embryo; remains at maturity (albuminous)"],
        ["Scutellum", "Single large cotyledon; absorbs digested nutrients from endosperm"],
        ["Coleoptile", "Sheath protecting the plumule (emerging shoot)"],
        ["Coleorhiza", "Sheath protecting the radicle (emerging root)"],
        ["Epiblast", "Small outgrowth on opposite side of scutellum; vestigial second cotyledon"],
    ],
    [4*cm, 13*cm]
))

story.append(sp(8))
story.append(Paragraph("Seed Dispersal Mechanisms", h1))
story.append(info_table(
    ["Mechanism", "Name", "Adaptation", "Example"],
    [
        ["Wind (Anemochory)", "Winged/Feathery seeds", "Light weight, wings, plume/pappus", "Maple (winged), Calotropis (silky hair), Dandelion (pappus), Cotton (fibers)"],
        ["Water (Hydrochory)", "Buoyant seeds/fruits", "Air spaces, spongy tissue, fibrous coating", "Coconut (fibrous husk), Lotus (spongy receptacle), Water lily"],
        ["Animals (Zoochory)", "Hooks, fleshy fruits", "Spines/hooks for external carriage; fleshy edible fruits for internal passage", "Xanthium, Urena (hooks), Mango, Cherry (eaten)"],
        ["Self-dispersal (Autochory)", "Explosive mechanism", "Hygroscopic tension, sudden dehiscence", "Squirting cucumber (Ecballium), Impatiens, Witch hazel, Pea"],
    ],
    [4.5*cm, 3.5*cm, 4.5*cm, 4.5*cm]
))
story.append(PageBreak())

# ══ CHAPTER 9: DICOT vs MONOCOT ═══════════════════════════════════════════════
story.append(chapter_banner("Chapter 9: Dicot vs. Monocot", "Key Comparisons"))
story.append(sp(8))
story.append(info_table(
    ["Feature", "Dicotyledons", "Monocotyledons"],
    [
        ["Cotyledons", "TWO cotyledons", "ONE cotyledon"],
        ["Root system", "Tap root (from radicle)", "Fibrous root (radicle short-lived)"],
        ["Leaf venation", "Reticulate (net-like)", "Parallel"],
        ["Floral parts", "In multiples of 4 or 5 (tetramerous/pentamerous)", "In multiples of 3 (trimerous)"],
        ["Vascular bundles (stem)", "Arranged in a RING; open (cambium present)", "SCATTERED throughout; closed (no cambium)"],
        ["Secondary growth", "Present (cambium active)", "Generally absent"],
        ["Pollen grains", "Triaperturate (3 pores/furrows)", "Monoaperturate (1 pore/furrow)"],
        ["Seed", "Exalbuminous (usually)", "Albuminous (usually)"],
        ["Stomata", "Kidney-shaped guard cells", "Dumb-bell shaped guard cells"],
        ["Examples", "Pea, Mango, Mustard, Rose, Sunflower", "Rice, Wheat, Maize, Bamboo, Banana, Onion"],
    ],
    [5.5*cm, 5.5*cm, 6*cm]
))
story.append(PageBreak())

# ══ CHAPTER 10: IMPORTANT FACTS ═══════════════════════════════════════════════
story.append(chapter_banner("Chapter 10: Important Facts & Special Notes", "Quick Revision Points"))
story.append(sp(8))
story.append(Paragraph("Record-Holders Among Angiosperms", h1))
story.append(info_table(
    ["Record", "Plant", "Detail"],
    [
        ["Smallest angiosperm", "Wolffia (Lemnaceae)", "Less than 0.1 mm; no roots, stem, or true leaves"],
        ["Tallest angiosperm", "Eucalyptus regnans", "Over 114 m (375 ft) tall"],
        ["Only marine angiosperm", "Zostera (Zosteraceae)", "Seagrass; found in marine habitats"],
        ["Largest inflorescence", "Amorphophallus titanum", "Spathe; up to 3 m tall"],
        ["Smallest flower", "Wolffia globosa", "About 0.1 mm wide"],
    ],
    [5*cm, 5*cm, 7*cm]
))

story.append(sp(8))
story.append(Paragraph("Plants with Special Characteristics", h1))
story.append(info_table(
    ["Characteristic", "Plants"],
    [
        ["Plants with NO true roots", "Podostemon, Arceuthobium, Rafflesia, Sapria"],
        ["Monocarpic perennials (fruit once, then die)", "Agave, Bamboo"],
        ["Both stem thorns AND leaf spines", "Ulex europaeus"],
        ["Epiphytic orchids with velamen roots", "Vanilla, various orchids"],
        ["Strangler fig", "Ficus (Fig) species — begins as epiphyte"],
        ["Insectivorous plants", "Nepenthes (pitcher), Drosera (sundew), Utricularia (bladderwort), Dionaea (Venus flytrap)"],
        ["Cleistogamous flowers (self-pollinating, never open)", "Viola (violet), Commelina, Oxalis"],
        ["Viviparous germination (seeds germinate on parent)", "Mangroves: Rhizophora, Avicennia"],
    ],
    [6*cm, 11*cm]
))

story.append(sp(8))
story.append(Paragraph("Floral Formula Symbols", h1))
story.append(info_table(
    ["Symbol", "Meaning"],
    [
        ["\u2295 (circle with cross)", "Actinomorphic (regular)"],
        ["\u2191 (single arrow / %)", "Zygomorphic (irregular)"],
        ["\u2642 (male symbol)", "Staminate (male) flower"],
        ["\u2640 (female symbol)", "Pistillate (female) flower"],
        ["\u2295 with line through", "Bisexual flower"],
        ["Br", "Bracteate"],
        ["Ebr", "Ebracteate"],
        ["K, C, A, G", "Calyx, Corolla, Androecium, Gynoecium"],
        ["P (Perianth)", "Used when calyx and corolla are indistinguishable (tepals)"],
        ["G (overline)", "Superior ovary"],
        ["G (underline)", "Inferior ovary"],
        ["( )", "Fused/united members"],
        ["\u221e", "Numerous (more than 10)"],
    ],
    [3.5*cm, 13.5*cm]
))

story.append(sp(8))
story.append(Paragraph("Quick-Recall: Unusual or Tricky Examples", h1))
story.append(info_table(
    ["Point", "Detail"],
    [
        ["Coconut — is it a drupe?", "YES — coconut is a drupe. The fibrous husk = mesocarp; hard shell = endocarp; white edible part = seed endosperm."],
        ["Strawberry — true or false fruit?", "FALSE fruit (pseudocarp) — edible fleshy part is the thalamus; small seeds on surface are true achene fruits."],
        ["Groundnut — where is the fruit formed?", "Underground — geocarpic fruit; pod (legume) is pushed into soil after fertilization."],
        ["Banana — parthenocarpic?", "YES — develops without fertilization; seeds absent (seedless)."],
        ["Potato — stem or root?", "STEM tuber (not root) — has nodes ('eyes') which are axillary buds with scale leaves."],
        ["Sweet potato — stem or root?", "ROOT tuber (tuberous adventitious root) — no nodes or buds."],
        ["Onion — bulb part eaten?", "Fleshy scale leaves of the bulb (modified stem with leaves) are eaten; not the root."],
        ["Ginger vs Turmeric", "Both are rhizomes (underground stems). Ginger = Zingiber officinale; Turmeric = Curcuma longa."],
        ["Pineapple — composite fruit?", "YES — Sorosis type; develops from the entire spike (spadix) inflorescence."],
    ],
    [5.5*cm, 11.5*cm]
))

story.append(sp(10))
story.append(highlight_box(
    "\U0001F393  <b>Exam Tip:</b>  Always remember — THORNS arise from axillary buds (vascular tissue present, hard to remove). "
    "PRICKLES arise from epidermis (easy to remove, e.g., Rose). SPINES are modified leaves or stipules (e.g., Cactus). "
    "This distinction is frequently asked in NEET and board exams!",
    bg=GREEN_PALE, border=GREEN_MED))

# ══ BUILD PDF ═════════════════════════════════════════════════════════════════
doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.5*cm, leftMargin=1.5*cm,
    topMargin=1.8*cm, bottomMargin=2*cm,
    title="Morphology of Flowering Plants",
    author="Biology Study Notes",
    subject="Class XI Plant Morphology"
)
doc.build(story, onFirstPage=add_page_number, onLaterPages=add_page_number)
print(f"PDF created: {OUTPUT}")
Running Command

cd /home/daytona/workspace/morphology-notebook && python create_notebook.py 2>&1

Running Command

ls -lh /home/daytona/workspace/morphology-notebook/Morphology_of_Flowering_Plant…

Your PDF notebook is ready! Download it here:

Morphology of Flowering Plants

PDF Document · PDF


What's inside the notebook (17+ pages):
ChapterContent
Cover PageStyled green cover with topic overview
Table of ContentsAll 10 chapters with page numbers
1. IntroductionWhat is morphology, angiosperms, classification
2. RootTypes, 4 zones, all modifications with examples
3. StemForms, underground/sub-aerial/aerial modifications
4. LeafParts, venation, phyllotaxy, all modifications
5. InflorescenceRacemose (10 types) & Cymose (8 types)
6. FlowerWhorls, symmetry, aestivation, androecium, gynoecium, placentation
7. FruitSimple/Aggregate/Composite; fleshy, dry, dehiscent, indehiscent
8. SeedDicot vs Monocot seed, dispersal mechanisms
9. Dicot vs MonocotFull comparison table
10. Special FactsRecord-holders, tricky examples, exam tips, floral formula symbols
The notebook uses color-coded headings, organized tables, highlight boxes, and bullet points - formatted like a proper study notebook for Class 11 / NEET preparation.

I need from napiform root

Asking for Preferences

Can you do it

Generating Image

A detailed botanical diagram of a napiform root (turnip-type fleshy tap root modification), showing the characteristic top-shaped swollen upper portion that abruptly tapers into a thin tail-like lower portion. The diagram should be labeled with: Napiform Root, Swollen upper part (hypocotyl + tap root), Abrupt tapering, Thin tail-like lower portion, Lateral roots, Root hairs zone. Include a small inset showing the whole turnip plant with leaves above ground. Clean white background, educational biology textbook style, clear black outlines with light green and purple shading.

Napiform Root Diagram
Here is the diagram of a Napiform Root. Below are the key notes to go with it:

Napiform Root - Important Points

Definition: A napiform root is a type of fleshy tap root modification for food storage, characterized by a very broad, spherical/top-shaped swollen upper part that abruptly tapers into a thin, tail-like lower portion.
FeatureDetail
ShapeTop-shaped / spherical at top, abruptly narrows below
Swollen partFormed by both hypocotyl (stem) + upper tap root
FunctionStorage of food (starch, sugars) and water
ExamplesTurnip (Brassica rapa), Sugar beet (Beta vulgaris)
TypeModification of tap root (dicot plants)
How it differs from other storage roots:
Root TypeShapeExample
FusiformSpindle-shaped, tapers gradually at BOTH endsRadish (Raphanus sativus)
NapiformTop-shaped, ABRUPTLY tapers belowTurnip, Beet
ConicalCone-shaped, broad at top, gradually tapersCarrot (Daucus carota)
TuberousIrregular, no definite shapeSweet potato, Dahlia
Exam Tip: In napiform roots, the swollen part is a combination of the hypocotyl (lower stem) AND the upper part of the tap root - so it is not purely a root modification. This is why turnips are thicker and rounder than carrots.
This is a shared conversation. Sign in to Orris to start your own chat.