Please write a handbook colorful pdf on topic " gradable and upgradable adjectives by looking at text mention below Gradable Adjectives (can have levels) · Use with: very, quite, extremely, a bit · Examples: · It's very cold today. · She was quite tired after work. · This coffee is a bit strong for me. Ungradable Adjectives (absolute — no levels) · Use with: absolutely, completely, totally, utterly · Examples: · The movie was absolutely amazing. · I'm completely exhausted. · His answer is totally wrong. · The food is utterly delicious. --- Common mistake to avoid: · ❌ very perfect (wrong) · ✅ absolutely perfect (right) · ❌ very freezing (wrong) · ✅ completely freezing (right) --- Quick rule: If you can imagine more or less of it → gradable (use very) If it's already at the maximum → ungradable (use absolutely Wrong (using very with ungradable) · very enormous → ✅ absolutely enormous · very terrified → ✅ completely terrified · very unique → ✅ totally unique (unique already means "one of a kind") · very awful → ✅ absolutely awful (awful = extremely bad) · very horrible → ✅ totally horrible · very essential → ✅ absolutely essential (essential = necessary, no levels) --- ❌ Wrong (using absolutely with gradable) · absolutely hot → ✅ very hot (or extremely hot) · absolutely tired → ✅ very tired (or extremely tired) · absolutely sad → ✅ very sad · absolutely expensive → ✅ very expensive --- ❌ Wrong intensifier for gradable (too strong) · This soup is boiling hot. → Fine (idiom) · But: This soup is boiling. → ❌ (should be very hot or boiling hot) --- ❌ Wrong with nouns (common mix-up) · very luck → ❌ (luck is a noun) → ✅ very lucky (adjective) · absolutely chaos → ❌ → ✅ total chaos (intensify noun with total/complete)
ls -la /tmp/workspace/ 2>/dev/null || mkdir -p /tmp/workspace/
cd /tmp/workspace && python3 << 'EOF' from reportlab.lib.pagesizes import letter, A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import inch from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, PageBreak, Image from reportlab.pdfgen import canvas from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from datetime import datetime import io # Create PDF pdf_file = "Gradable_Ungradable_Adjectives_Handbook.pdf" doc = SimpleDocTemplate(pdf_file, pagesize=letter, topMargin=0.5*inch, bottomMargin=0.5*inch) story = [] styles = getSampleStyleSheet() # Define custom colors color_gradable = colors.HexColor("#FF6B6B") # Red-orange color_ungradable = colors.HexColor("#4ECDC4") # Teal color_correct = colors.HexColor("#95E1D3") # Light teal color_wrong = colors.HexColor("#F38181") # Light red color_accent = colors.HexColor("#FFE66D") # Yellow # Custom styles title_style = ParagraphStyle( 'CustomTitle', parent=styles['Heading1'], fontSize=36, textColor=colors.HexColor("#2C3E50"), spaceAfter=12, alignment=TA_CENTER, fontName='Helvetica-Bold' ) subtitle_style = ParagraphStyle( 'CustomSubtitle', parent=styles['Normal'], fontSize=14, textColor=colors.HexColor("#34495E"), spaceAfter=20, alignment=TA_CENTER, fontName='Helvetica-Oblique' ) heading_style = ParagraphStyle( 'CustomHeading', parent=styles['Heading2'], fontSize=18, textColor=colors.white, spaceAfter=10, fontName='Helvetica-Bold' ) # PAGE 1: COVER PAGE story.append(Spacer(1, 1.5*inch)) story.append(Paragraph("📚 ADJECTIVE MASTERY 📚", title_style)) story.append(Spacer(1, 0.2*inch)) story.append(Paragraph("Gradable vs. Ungradable Adjectives", subtitle_style)) story.append(Spacer(1, 1.2*inch)) cover_text = ParagraphStyle( 'CoverText', parent=styles['Normal'], fontSize=12, textColor=colors.HexColor("#555555"), spaceAfter=10, alignment=TA_CENTER ) story.append(Paragraph("Master the art of describing with precision", cover_text)) story.append(Paragraph("Learn when to use 'very' vs. 'absolutely'", cover_text)) story.append(Spacer(1, 1.5*inch)) story.append(Paragraph(f"<font size=11 color='#999999'>{datetime.now().strftime('%B %Y')}</font>", cover_text)) story.append(PageBreak()) # PAGE 2: INTRODUCTION story.append(Paragraph("What Are Gradable & Ungradable Adjectives?", heading_style)) story.append(Spacer(1, 0.15*inch)) intro_para = ParagraphStyle( 'IntroText', parent=styles['Normal'], fontSize=11, alignment=TA_JUSTIFY, spaceAfter=12 ) story.append(Paragraph( "Adjectives describe qualities, but not all qualities work the same way. Some adjectives allow levels—you can be <b>a little</b> tired or <b>very</b> tired. Others describe absolute states—something is either <b>perfect</b> or not. Understanding this difference is key to using the right intensifiers and sounding natural in English.", intro_para )) story.append(Spacer(1, 0.3*inch)) # QUICK RULE BOX quick_rule_data = [ ["<b>🔑 QUICK RULE</b>", ""], ["If you can imagine MORE or LESS of it", "→ GRADABLE (use 'very')"], ["If it's already at the MAXIMUM", "→ UNGRADABLE (use 'absolutely')"] ] quick_table = Table(quick_rule_data, colWidths=[2.5*inch, 3.5*inch]) quick_table.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.HexColor("#FFE66D")), ('BACKGROUND', (0, 1), (-1, -1), colors.HexColor("#FFF9E6")), ('TEXTCOLOR', (0, 0), (-1, 0), colors.HexColor("#2C3E50")), ('TEXTCOLOR', (0, 1), (-1, -1), colors.HexColor("#2C3E50")), ('ALIGN', (0, 0), (-1, -1), 'LEFT'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 12), ('FONTSIZE', (0, 1), (-1, -1), 11), ('PADDING', (0, 0), (-1, -1), 12), ('BORDER', (0, 0), (-1, -1), 2, colors.HexColor("#FFE66D")), ('ROWBACKGROUNDS', (0, 1), (-1, -1), [colors.HexColor("#FFF9E6")]) ])) story.append(quick_table) story.append(PageBreak()) # PAGE 3: GRADABLE ADJECTIVES story.append(Paragraph("Gradable Adjectives", heading_style)) story.append(Spacer(1, 0.15*inch)) # Create colored background for gradable section header gradable_data = [["✓ Can have different levels of intensity"]] gradable_header = Table(gradable_data, colWidths=[6*inch]) gradable_header.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), color_gradable), ('TEXTCOLOR', (0, 0), (-1, -1), colors.white), ('FONTNAME', (0, 0), (-1, -1), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, -1), 12), ('PADDING', (0, 0), (-1, -1), 10), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ])) story.append(gradable_header) story.append(Spacer(1, 0.2*inch)) story.append(Paragraph("<b>Use with:</b> very, quite, extremely, a bit, rather, fairly, somewhat", intro_para)) story.append(Spacer(1, 0.15*inch)) story.append(Paragraph("<b>Examples:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) examples_gradable = [ ["☀️", "It's <b>very</b> cold today."], ["😴", "She was <b>quite</b> tired after work."], ["☕", "This coffee is <b>a bit</b> strong for me."], ["🎭", "The movie was <b>extremely</b> interesting."], ] gradable_examples = Table(examples_gradable, colWidths=[0.5*inch, 5.5*inch]) gradable_examples.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), colors.HexColor("#FFE6E6")), ('TEXTCOLOR', (0, 0), (-1, -1), colors.HexColor("#2C3E50")), ('ALIGN', (0, 0), (0, -1), 'CENTER'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 0), (-1, -1), 11), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#FFD9D9")), ])) story.append(gradable_examples) story.append(Spacer(1, 0.3*inch)) # More examples story.append(Paragraph("<b>More Gradable Adjectives:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) story.append(Paragraph( "hot, cold, warm, cool, big, small, tall, short, expensive, cheap, beautiful, ugly, interesting, boring, smart, friendly, angry, happy, sad, tired, busy", ParagraphStyle('ListText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#555555")) )) story.append(PageBreak()) # PAGE 4: UNGRADABLE ADJECTIVES story.append(Paragraph("Ungradable Adjectives", heading_style)) story.append(Spacer(1, 0.15*inch)) ungradable_data = [["✗ Absolute — already at maximum intensity"]] ungradable_header = Table(ungradable_data, colWidths=[6*inch]) ungradable_header.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), color_ungradable), ('TEXTCOLOR', (0, 0), (-1, -1), colors.white), ('FONTNAME', (0, 0), (-1, -1), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, -1), 12), ('PADDING', (0, 0), (-1, -1), 10), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ])) story.append(ungradable_header) story.append(Spacer(1, 0.2*inch)) story.append(Paragraph("<b>Use with:</b> absolutely, completely, totally, utterly, entirely, perfectly", intro_para)) story.append(Spacer(1, 0.15*inch)) story.append(Paragraph("<b>Examples:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) examples_ungradable = [ ["🎬", "The movie was <b>absolutely</b> amazing."], ["💪", "I'm <b>completely</b> exhausted."], ["✏️", "His answer is <b>totally</b> wrong."], ["😋", "The food is <b>utterly</b> delicious."], ] ungradable_examples = Table(examples_ungradable, colWidths=[0.5*inch, 5.5*inch]) ungradable_examples.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), colors.HexColor("#E6F7F5")), ('TEXTCOLOR', (0, 0), (-1, -1), colors.HexColor("#2C3E50")), ('ALIGN', (0, 0), (0, -1), 'CENTER'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 0), (-1, -1), 11), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#D9F0ED")), ])) story.append(ungradable_examples) story.append(Spacer(1, 0.3*inch)) story.append(Paragraph("<b>More Ungradable Adjectives:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) story.append(Paragraph( "perfect, terrible, awful, horrible, amazing, awful, unique, essential, dead, alive, empty, full, impossible, certain, right, wrong, broken", ParagraphStyle('ListText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#555555")) )) story.append(PageBreak()) # PAGE 5: COMMON MISTAKES story.append(Paragraph("❌ Common Mistakes to Avoid", heading_style)) story.append(Spacer(1, 0.2*inch)) # Mistake 1: Very with ungradable story.append(Paragraph("<b>Mistake 1: Using 'very' with Ungradable Adjectives</b>", ParagraphStyle('ErrorTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', textColor=colors.HexColor("#C0392B")))) story.append(Spacer(1, 0.1*inch)) mistake1_data = [ ["❌ WRONG", "✅ CORRECT"], ["very perfect", "absolutely perfect"], ["very freezing", "completely freezing"], ["very enormous", "absolutely enormous"], ["very terrified", "completely terrified"], ["very unique", "totally unique"], ["very awful", "absolutely awful"], ] mistake_table1 = Table(mistake1_data, colWidths=[3*inch, 3*inch]) mistake_table1.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (0, 0), color_wrong), ('BACKGROUND', (1, 0), (1, 0), color_correct), ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 11), ('BACKGROUND', (0, 1), (0, -1), colors.HexColor("#FADBD8")), ('BACKGROUND', (1, 1), (1, -1), colors.HexColor("#D5F4E6")), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 1), (-1, -1), 10), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#CCCCCC")), ])) story.append(mistake_table1) story.append(Spacer(1, 0.25*inch)) # Mistake 2: Absolutely with gradable story.append(Paragraph("<b>Mistake 2: Using 'absolutely' with Gradable Adjectives</b>", ParagraphStyle('ErrorTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', textColor=colors.HexColor("#C0392B")))) story.append(Spacer(1, 0.1*inch)) mistake2_data = [ ["❌ WRONG", "✅ CORRECT"], ["absolutely hot", "very hot"], ["absolutely tired", "very tired"], ["absolutely sad", "very sad"], ["absolutely expensive", "very expensive"], ] mistake_table2 = Table(mistake2_data, colWidths=[3*inch, 3*inch]) mistake_table2.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (0, 0), color_wrong), ('BACKGROUND', (1, 0), (1, 0), color_correct), ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 11), ('BACKGROUND', (0, 1), (0, -1), colors.HexColor("#FADBD8")), ('BACKGROUND', (1, 1), (1, -1), colors.HexColor("#D5F4E6")), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 1), (-1, -1), 10), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#CCCCCC")), ])) story.append(mistake_table2) story.append(PageBreak()) # PAGE 6: MORE MISTAKES story.append(Paragraph("❌ More Common Mistakes", heading_style)) story.append(Spacer(1, 0.2*inch)) # Mistake 3: Nouns vs adjectives story.append(Paragraph("<b>Mistake 3: Confusing Nouns with Adjectives</b>", ParagraphStyle('ErrorTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', textColor=colors.HexColor("#C0392B")))) story.append(Spacer(1, 0.1*inch)) noun_para = ParagraphStyle('NounText', parent=styles['Normal'], fontSize=10, spaceAfter=10) story.append(Paragraph("❌ <b>very luck</b> (luck is a noun, not an adjective)", noun_para)) story.append(Paragraph("✅ <b>very lucky</b> (lucky is an adjective)", ParagraphStyle('CorrectText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#27AE60")))) story.append(Spacer(1, 0.15*inch)) story.append(Paragraph("❌ <b>absolutely chaos</b> (chaos is a noun)", noun_para)) story.append(Paragraph("✅ <b>total chaos</b> (use 'total' or 'complete' to intensify nouns)", ParagraphStyle('CorrectText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#27AE60")))) story.append(Spacer(1, 0.25*inch)) # Mistake 4: Boiling hot idiom story.append(Paragraph("<b>Mistake 4: Idioms & Special Cases</b>", ParagraphStyle('ErrorTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', textColor=colors.HexColor("#C0392B")))) story.append(Spacer(1, 0.1*inch)) story.append(Paragraph("✅ <b>boiling hot</b> — This is an idiom (accepted expression)", noun_para)) story.append(Paragraph("❌ <b>boiling</b> (alone) — Don't use 'boiling' as an intensifier for hot", noun_para)) story.append(Paragraph("✅ Use: <b>very hot</b> or <b>boiling hot</b> (idiomatic)", ParagraphStyle('CorrectText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#27AE60")))) story.append(PageBreak()) # PAGE 7: COMPREHENSIVE CHEAT SHEET story.append(Paragraph("📋 Comprehensive Cheat Sheet", heading_style)) story.append(Spacer(1, 0.2*inch)) cheat_data = [ ["<b>GRADABLE</b>\n(use: very, quite, quite, extremely)", "<b>UNGRADABLE</b>\n(use: absolutely, completely, totally, utterly)"], ["Can describe levels:\n'somewhat cold'\n'very cold'\n'extremely cold'", "Already at maximum:\nPerfect, Terrible, Unique,\nEssential, Dead, Alive,\nEmpty, Full, Wrong, Right"], ["Examples:\ncold, hot, big, small, tired,\nhappy, sad, beautiful, ugly,\ninteresting, expensive", "Examples:\namazing, awful, perfect,\nterrible, unique, essential,\nright, wrong, broken,\nimpossible, certain"], ["TEST: Can you be a little cold?", "TEST: Can you be a little perfect?"], ["YES → Gradable (use 'very')", "NO → Ungradable (use 'absolutely')"], ] cheat_sheet = Table(cheat_data, colWidths=[3*inch, 3*inch]) cheat_sheet.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (0, 0), color_gradable), ('BACKGROUND', (1, 0), (1, 0), color_ungradable), ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 11), ('ALIGN', (0, 0), (-1, -1), 'LEFT'), ('VALIGN', (0, 0), (-1, -1), 'TOP'), ('FONTSIZE', (0, 1), (-1, -1), 9), ('PADDING', (0, 0), (-1, -1), 12), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#CCCCCC")), ('ROWBACKGROUNDS', (0, 1), (-1, -1), [colors.HexColor("#FFE6E6"), colors.HexColor("#E6F7F5")]), ])) story.append(cheat_sheet) story.append(PageBreak()) # PAGE 8: PRACTICE & SUMMARY story.append(Paragraph("🎯 Quick Practice", heading_style)) story.append(Spacer(1, 0.2*inch)) practice_style = ParagraphStyle('PracticeStyle', parent=styles['Normal'], fontSize=11, spaceAfter=10, leftIndent=20) story.append(Paragraph("<b>Choose the correct intensifier:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold'))) story.append(Spacer(1, 0.1*inch)) practice_items = [ "1. The weather is _____ freezing. (very / absolutely)", "2. That idea is _____ brilliant. (very / absolutely)", "3. I'm _____ exhausted after the trip. (quite / completely)", "4. The soup is _____ delicious. (very / absolutely)", "5. The answer is _____ wrong. (quite / totally)", ] for item in practice_items: story.append(Paragraph(item, practice_style)) story.append(Spacer(1, 0.25*inch)) story.append(Paragraph("<b>ANSWERS:</b>", ParagraphStyle('AnswerTitle', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) story.append(Spacer(1, 0.1*inch)) answers = [ "1. absolutely freezing (ungradable)", "2. absolutely brilliant (ungradable)", "3. completely exhausted (ungradable)", "4. absolutely delicious (ungradable)", "5. totally wrong (ungradable)", ] for ans in answers: story.append(Paragraph(ans, ParagraphStyle('AnswerStyle', parent=styles['Normal'], fontSize=10, leftIndent=20, textColor=colors.HexColor("#27AE60")))) story.append(PageBreak()) # PAGE 9: FINAL SUMMARY story.append(Paragraph("📝 Remember These Golden Rules", heading_style)) story.append(Spacer(1, 0.3*inch)) rules = [ ("RULE 1", "Can you imagine MORE or LESS of it?", "If YES → GRADABLE (use 'very')", colors.HexColor("#FFE6E6")), ("RULE 2", "Is it already at the MAXIMUM?", "If YES → UNGRADABLE (use 'absolutely')", colors.HexColor("#E6F7F5")), ("RULE 3", "Not sure? Ask: Could there be levels?", "Levels = Gradable | No levels = Ungradable", colors.HexColor("#FFF9E6")), ("RULE 4", "Never mix intensifiers!", "'Very' with gradable, 'absolutely' with ungradable", colors.HexColor("#E8DAEF")), ] for rule_num, rule_q, rule_a, bg_color in rules: rule_data = [[f"<b>{rule_num}</b>", f"{rule_q}\n\n{rule_a}"]] rule_table = Table(rule_data, colWidths=[1.2*inch, 4.8*inch]) rule_table.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), bg_color), ('TEXTCOLOR', (0, 0), (-1, -1), colors.HexColor("#2C3E50")), ('ALIGN', (0, 0), (0, -1), 'CENTER'), ('ALIGN', (1, 0), (1, -1), 'LEFT'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 0), (0, -1), 14), ('FONTSIZE', (1, 0), (1, -1), 10), ('PADDING', (0, 0), (-1, -1), 12), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#CCCCCC")), ])) story.append(rule_table) story.append(Spacer(1, 0.15*inch)) story.append(Spacer(1, 0.3*inch)) final_para = ParagraphStyle('FinalText', parent=styles['Normal'], fontSize=11, alignment=TA_CENTER, textColor=colors.HexColor("#555555")) story.append(Paragraph( "<i>Master these rules and you'll sound more natural when describing things in English!</i>", final_para )) # Build PDF doc.build(story) print(f"✅ PDF created successfully: {pdf_file}") EOF
ls -lh /tmp/workspace/*.pdf
Gradable Ungradable Adjectives Handbook
PDF Document · PDF
There are only 2 changes to make in this pdf first exercise must contain 10 questions instead of 5 and answer key should be given on last page of pdf and not in middle.
cd /tmp/workspace && python3 << 'EOF' from reportlab.lib.pagesizes import letter, A4 from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import inch from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, PageBreak, Image from reportlab.pdfgen import canvas from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from datetime import datetime import io # Create PDF pdf_file = "Gradable_Ungradable_Adjectives_Handbook.pdf" doc = SimpleDocTemplate(pdf_file, pagesize=letter, topMargin=0.5*inch, bottomMargin=0.5*inch) story = [] styles = getSampleStyleSheet() # Define custom colors color_gradable = colors.HexColor("#FF6B6B") # Red-orange color_ungradable = colors.HexColor("#4ECDC4") # Teal color_correct = colors.HexColor("#95E1D3") # Light teal color_wrong = colors.HexColor("#F38181") # Light red color_accent = colors.HexColor("#FFE66D") # Yellow # Custom styles title_style = ParagraphStyle( 'CustomTitle', parent=styles['Heading1'], fontSize=36, textColor=colors.HexColor("#2C3E50"), spaceAfter=12, alignment=TA_CENTER, fontName='Helvetica-Bold' ) subtitle_style = ParagraphStyle( 'CustomSubtitle', parent=styles['Normal'], fontSize=14, textColor=colors.HexColor("#34495E"), spaceAfter=20, alignment=TA_CENTER, fontName='Helvetica-Oblique' ) heading_style = ParagraphStyle( 'CustomHeading', parent=styles['Heading2'], fontSize=18, textColor=colors.white, spaceAfter=10, fontName='Helvetica-Bold' ) # PAGE 1: COVER PAGE story.append(Spacer(1, 1.5*inch)) story.append(Paragraph("📚 ADJECTIVE MASTERY 📚", title_style)) story.append(Spacer(1, 0.2*inch)) story.append(Paragraph("Gradable vs. Ungradable Adjectives", subtitle_style)) story.append(Spacer(1, 1.2*inch)) cover_text = ParagraphStyle( 'CoverText', parent=styles['Normal'], fontSize=12, textColor=colors.HexColor("#555555"), spaceAfter=10, alignment=TA_CENTER ) story.append(Paragraph("Master the art of describing with precision", cover_text)) story.append(Paragraph("Learn when to use 'very' vs. 'absolutely'", cover_text)) story.append(Spacer(1, 1.5*inch)) story.append(Paragraph(f"<font size=11 color='#999999'>{datetime.now().strftime('%B %Y')}</font>", cover_text)) story.append(PageBreak()) # PAGE 2: INTRODUCTION story.append(Paragraph("What Are Gradable & Ungradable Adjectives?", heading_style)) story.append(Spacer(1, 0.15*inch)) intro_para = ParagraphStyle( 'IntroText', parent=styles['Normal'], fontSize=11, alignment=TA_JUSTIFY, spaceAfter=12 ) story.append(Paragraph( "Adjectives describe qualities, but not all qualities work the same way. Some adjectives allow levels—you can be <b>a little</b> tired or <b>very</b> tired. Others describe absolute states—something is either <b>perfect</b> or not. Understanding this difference is key to using the right intensifiers and sounding natural in English.", intro_para )) story.append(Spacer(1, 0.3*inch)) # QUICK RULE BOX quick_rule_data = [ ["<b>🔑 QUICK RULE</b>", ""], ["If you can imagine MORE or LESS of it", "→ GRADABLE (use 'very')"], ["If it's already at the MAXIMUM", "→ UNGRADABLE (use 'absolutely')"] ] quick_table = Table(quick_rule_data, colWidths=[2.5*inch, 3.5*inch]) quick_table.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.HexColor("#FFE66D")), ('BACKGROUND', (0, 1), (-1, -1), colors.HexColor("#FFF9E6")), ('TEXTCOLOR', (0, 0), (-1, 0), colors.HexColor("#2C3E50")), ('TEXTCOLOR', (0, 1), (-1, -1), colors.HexColor("#2C3E50")), ('ALIGN', (0, 0), (-1, -1), 'LEFT'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 12), ('FONTSIZE', (0, 1), (-1, -1), 11), ('PADDING', (0, 0), (-1, -1), 12), ('BORDER', (0, 0), (-1, -1), 2, colors.HexColor("#FFE66D")), ('ROWBACKGROUNDS', (0, 1), (-1, -1), [colors.HexColor("#FFF9E6")]) ])) story.append(quick_table) story.append(PageBreak()) # PAGE 3: GRADABLE ADJECTIVES story.append(Paragraph("Gradable Adjectives", heading_style)) story.append(Spacer(1, 0.15*inch)) # Create colored background for gradable section header gradable_data = [["✓ Can have different levels of intensity"]] gradable_header = Table(gradable_data, colWidths=[6*inch]) gradable_header.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), color_gradable), ('TEXTCOLOR', (0, 0), (-1, -1), colors.white), ('FONTNAME', (0, 0), (-1, -1), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, -1), 12), ('PADDING', (0, 0), (-1, -1), 10), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ])) story.append(gradable_header) story.append(Spacer(1, 0.2*inch)) story.append(Paragraph("<b>Use with:</b> very, quite, extremely, a bit, rather, fairly, somewhat", intro_para)) story.append(Spacer(1, 0.15*inch)) story.append(Paragraph("<b>Examples:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) examples_gradable = [ ["☀️", "It's <b>very</b> cold today."], ["😴", "She was <b>quite</b> tired after work."], ["☕", "This coffee is <b>a bit</b> strong for me."], ["🎭", "The movie was <b>extremely</b> interesting."], ] gradable_examples = Table(examples_gradable, colWidths=[0.5*inch, 5.5*inch]) gradable_examples.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), colors.HexColor("#FFE6E6")), ('TEXTCOLOR', (0, 0), (-1, -1), colors.HexColor("#2C3E50")), ('ALIGN', (0, 0), (0, -1), 'CENTER'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 0), (-1, -1), 11), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#FFD9D9")), ])) story.append(gradable_examples) story.append(Spacer(1, 0.3*inch)) # More examples story.append(Paragraph("<b>More Gradable Adjectives:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) story.append(Paragraph( "hot, cold, warm, cool, big, small, tall, short, expensive, cheap, beautiful, ugly, interesting, boring, smart, friendly, angry, happy, sad, tired, busy", ParagraphStyle('ListText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#555555")) )) story.append(PageBreak()) # PAGE 4: UNGRADABLE ADJECTIVES story.append(Paragraph("Ungradable Adjectives", heading_style)) story.append(Spacer(1, 0.15*inch)) ungradable_data = [["✗ Absolute — already at maximum intensity"]] ungradable_header = Table(ungradable_data, colWidths=[6*inch]) ungradable_header.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), color_ungradable), ('TEXTCOLOR', (0, 0), (-1, -1), colors.white), ('FONTNAME', (0, 0), (-1, -1), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, -1), 12), ('PADDING', (0, 0), (-1, -1), 10), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ])) story.append(ungradable_header) story.append(Spacer(1, 0.2*inch)) story.append(Paragraph("<b>Use with:</b> absolutely, completely, totally, utterly, entirely, perfectly", intro_para)) story.append(Spacer(1, 0.15*inch)) story.append(Paragraph("<b>Examples:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) examples_ungradable = [ ["🎬", "The movie was <b>absolutely</b> amazing."], ["💪", "I'm <b>completely</b> exhausted."], ["✏️", "His answer is <b>totally</b> wrong."], ["😋", "The food is <b>utterly</b> delicious."], ] ungradable_examples = Table(examples_ungradable, colWidths=[0.5*inch, 5.5*inch]) ungradable_examples.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), colors.HexColor("#E6F7F5")), ('TEXTCOLOR', (0, 0), (-1, -1), colors.HexColor("#2C3E50")), ('ALIGN', (0, 0), (0, -1), 'CENTER'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 0), (-1, -1), 11), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#D9F0ED")), ])) story.append(ungradable_examples) story.append(Spacer(1, 0.3*inch)) story.append(Paragraph("<b>More Ungradable Adjectives:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold'))) story.append(Paragraph( "perfect, terrible, awful, horrible, amazing, awful, unique, essential, dead, alive, empty, full, impossible, certain, right, wrong, broken", ParagraphStyle('ListText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#555555")) )) story.append(PageBreak()) # PAGE 5: COMMON MISTAKES story.append(Paragraph("❌ Common Mistakes to Avoid", heading_style)) story.append(Spacer(1, 0.2*inch)) # Mistake 1: Very with ungradable story.append(Paragraph("<b>Mistake 1: Using 'very' with Ungradable Adjectives</b>", ParagraphStyle('ErrorTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', textColor=colors.HexColor("#C0392B")))) story.append(Spacer(1, 0.1*inch)) mistake1_data = [ ["❌ WRONG", "✅ CORRECT"], ["very perfect", "absolutely perfect"], ["very freezing", "completely freezing"], ["very enormous", "absolutely enormous"], ["very terrified", "completely terrified"], ["very unique", "totally unique"], ["very awful", "absolutely awful"], ] mistake_table1 = Table(mistake1_data, colWidths=[3*inch, 3*inch]) mistake_table1.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (0, 0), color_wrong), ('BACKGROUND', (1, 0), (1, 0), color_correct), ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 11), ('BACKGROUND', (0, 1), (0, -1), colors.HexColor("#FADBD8")), ('BACKGROUND', (1, 1), (1, -1), colors.HexColor("#D5F4E6")), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 1), (-1, -1), 10), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#CCCCCC")), ])) story.append(mistake_table1) story.append(Spacer(1, 0.25*inch)) # Mistake 2: Absolutely with gradable story.append(Paragraph("<b>Mistake 2: Using 'absolutely' with Gradable Adjectives</b>", ParagraphStyle('ErrorTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', textColor=colors.HexColor("#C0392B")))) story.append(Spacer(1, 0.1*inch)) mistake2_data = [ ["❌ WRONG", "✅ CORRECT"], ["absolutely hot", "very hot"], ["absolutely tired", "very tired"], ["absolutely sad", "very sad"], ["absolutely expensive", "very expensive"], ] mistake_table2 = Table(mistake2_data, colWidths=[3*inch, 3*inch]) mistake_table2.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (0, 0), color_wrong), ('BACKGROUND', (1, 0), (1, 0), color_correct), ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 11), ('BACKGROUND', (0, 1), (0, -1), colors.HexColor("#FADBD8")), ('BACKGROUND', (1, 1), (1, -1), colors.HexColor("#D5F4E6")), ('ALIGN', (0, 0), (-1, -1), 'CENTER'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 1), (-1, -1), 10), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#CCCCCC")), ])) story.append(mistake_table2) story.append(PageBreak()) # PAGE 6: MORE MISTAKES story.append(Paragraph("❌ More Common Mistakes", heading_style)) story.append(Spacer(1, 0.2*inch)) # Mistake 3: Nouns vs adjectives story.append(Paragraph("<b>Mistake 3: Confusing Nouns with Adjectives</b>", ParagraphStyle('ErrorTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', textColor=colors.HexColor("#C0392B")))) story.append(Spacer(1, 0.1*inch)) noun_para = ParagraphStyle('NounText', parent=styles['Normal'], fontSize=10, spaceAfter=10) story.append(Paragraph("❌ <b>very luck</b> (luck is a noun, not an adjective)", noun_para)) story.append(Paragraph("✅ <b>very lucky</b> (lucky is an adjective)", ParagraphStyle('CorrectText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#27AE60")))) story.append(Spacer(1, 0.15*inch)) story.append(Paragraph("❌ <b>absolutely chaos</b> (chaos is a noun)", noun_para)) story.append(Paragraph("✅ <b>total chaos</b> (use 'total' or 'complete' to intensify nouns)", ParagraphStyle('CorrectText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#27AE60")))) story.append(Spacer(1, 0.25*inch)) # Mistake 4: Boiling hot idiom story.append(Paragraph("<b>Mistake 4: Idioms & Special Cases</b>", ParagraphStyle('ErrorTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', textColor=colors.HexColor("#C0392B")))) story.append(Spacer(1, 0.1*inch)) story.append(Paragraph("✅ <b>boiling hot</b> — This is an idiom (accepted expression)", noun_para)) story.append(Paragraph("❌ <b>boiling</b> (alone) — Don't use 'boiling' as an intensifier for hot", noun_para)) story.append(Paragraph("✅ Use: <b>very hot</b> or <b>boiling hot</b> (idiomatic)", ParagraphStyle('CorrectText', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#27AE60")))) story.append(PageBreak()) # PAGE 7: COMPREHENSIVE CHEAT SHEET story.append(Paragraph("📋 Comprehensive Cheat Sheet", heading_style)) story.append(Spacer(1, 0.2*inch)) cheat_data = [ ["<b>GRADABLE</b>\n(use: very, quite, quite, extremely)", "<b>UNGRADABLE</b>\n(use: absolutely, completely, totally, utterly)"], ["Can describe levels:\n'somewhat cold'\n'very cold'\n'extremely cold'", "Already at maximum:\nPerfect, Terrible, Unique,\nEssential, Dead, Alive,\nEmpty, Full, Wrong, Right"], ["Examples:\ncold, hot, big, small, tired,\nhappy, sad, beautiful, ugly,\ninteresting, expensive", "Examples:\namazing, awful, perfect,\nterrible, unique, essential,\nright, wrong, broken,\nimpossible, certain"], ["TEST: Can you be a little cold?", "TEST: Can you be a little perfect?"], ["YES → Gradable (use 'very')", "NO → Ungradable (use 'absolutely')"], ] cheat_sheet = Table(cheat_data, colWidths=[3*inch, 3*inch]) cheat_sheet.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (0, 0), color_gradable), ('BACKGROUND', (1, 0), (1, 0), color_ungradable), ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), ('FONTSIZE', (0, 0), (-1, 0), 11), ('ALIGN', (0, 0), (-1, -1), 'LEFT'), ('VALIGN', (0, 0), (-1, -1), 'TOP'), ('FONTSIZE', (0, 1), (-1, -1), 9), ('PADDING', (0, 0), (-1, -1), 12), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#CCCCCC")), ('ROWBACKGROUNDS', (0, 1), (-1, -1), [colors.HexColor("#FFE6E6"), colors.HexColor("#E6F7F5")]), ])) story.append(cheat_sheet) story.append(PageBreak()) # PAGE 8: PRACTICE WITH 10 QUESTIONS story.append(Paragraph("🎯 Quick Practice (10 Questions)", heading_style)) story.append(Spacer(1, 0.2*inch)) practice_style = ParagraphStyle('PracticeStyle', parent=styles['Normal'], fontSize=10.5, spaceAfter=8, leftIndent=20) story.append(Paragraph("<b>Choose the correct intensifier:</b>", ParagraphStyle('BoldText', parent=styles['Normal'], fontSize=11, fontName='Helvetica-Bold', spaceAfter=12))) practice_items = [ "1. The weather is _____ freezing. (very / absolutely)", "2. That idea is _____ brilliant. (very / absolutely)", "3. I'm _____ exhausted after the trip. (quite / completely)", "4. The soup is _____ delicious. (very / absolutely)", "5. The answer is _____ wrong. (quite / totally)", "6. The room is _____ empty. (very / absolutely)", "7. Her performance was _____ incredible. (very / absolutely)", "8. This task is _____ difficult. (very / absolutely)", "9. The movie is _____ terrible. (quite / completely)", "10. Your explanation is _____ clear. (quite / absolutely)", ] for item in practice_items: story.append(Paragraph(item, practice_style)) story.append(Spacer(1, 0.2*inch)) final_note = ParagraphStyle('FinalNote', parent=styles['Normal'], fontSize=10, alignment=TA_CENTER, textColor=colors.HexColor("#555555"), fontstyle='italic') story.append(Paragraph("(Answer Key on the next page)", final_note)) story.append(PageBreak()) # PAGE 9: FINAL PAGE - ANSWER KEY + SUMMARY story.append(Paragraph("📝 Answer Key & Golden Rules", heading_style)) story.append(Spacer(1, 0.2*inch)) story.append(Paragraph("<b>ANSWERS TO PRACTICE QUESTIONS:</b>", ParagraphStyle('AnswerTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', spaceAfter=12))) answers = [ "1. <b>absolutely</b> freezing (ungradable)", "2. <b>absolutely</b> brilliant (ungradable)", "3. <b>completely</b> exhausted (ungradable)", "4. <b>absolutely</b> delicious (ungradable)", "5. <b>totally</b> wrong (ungradable)", "6. <b>absolutely</b> empty (ungradable)", "7. <b>absolutely</b> incredible (ungradable)", "8. <b>very</b> difficult (gradable)", "9. <b>completely</b> terrible (ungradable)", "10. <b>quite</b> clear (gradable)", ] answer_style = ParagraphStyle('AnswerStyle', parent=styles['Normal'], fontSize=10, leftIndent=20, textColor=colors.HexColor("#27AE60"), spaceAfter=6) for ans in answers: story.append(Paragraph(ans, answer_style)) story.append(Spacer(1, 0.3*inch)) # GOLDEN RULES story.append(Paragraph("<b>Remember These Golden Rules:</b>", ParagraphStyle('RuleTitle', parent=styles['Normal'], fontSize=12, fontName='Helvetica-Bold', spaceAfter=10))) rules = [ ("RULE 1", "Can you imagine MORE or LESS of it?", "If YES → GRADABLE (use 'very')", colors.HexColor("#FFE6E6")), ("RULE 2", "Is it already at the MAXIMUM?", "If YES → UNGRADABLE (use 'absolutely')", colors.HexColor("#E6F7F5")), ("RULE 3", "Not sure? Ask: Could there be levels?", "Levels = Gradable | No levels = Ungradable", colors.HexColor("#FFF9E6")), ] for rule_num, rule_q, rule_a, bg_color in rules: rule_data = [[f"<b>{rule_num}</b>", f"{rule_q}\n{rule_a}"]] rule_table = Table(rule_data, colWidths=[1*inch, 5*inch]) rule_table.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), bg_color), ('TEXTCOLOR', (0, 0), (-1, -1), colors.HexColor("#2C3E50")), ('ALIGN', (0, 0), (0, -1), 'CENTER'), ('ALIGN', (1, 0), (1, -1), 'LEFT'), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('FONTSIZE', (0, 0), (0, -1), 13), ('FONTSIZE', (1, 0), (1, -1), 9), ('PADDING', (0, 0), (-1, -1), 10), ('BORDER', (0, 0), (-1, -1), 1, colors.HexColor("#CCCCCC")), ])) story.append(rule_table) story.append(Spacer(1, 0.12*inch)) story.append(Spacer(1, 0.25*inch)) final_para = ParagraphStyle('FinalText', parent=styles['Normal'], fontSize=11, alignment=TA_CENTER, textColor=colors.HexColor("#555555")) story.append(Paragraph( "<i>Master these rules and you'll sound more natural when describing things in English!</i>", final_para )) # Build PDF doc.build(story) print(f"✅ PDF updated successfully: {pdf_file}") print("✅ Changes made:") print(" - Practice section now contains 10 questions") print(" - Answer key moved to the final page (Page 9)") EOF
Gradable Ungradable Adjectives Handbook
PDF Document · PDF
Please create a colorful handbook pdf from this information given in photo which is attached and write the meaning of these along and use them in 3 sentences each where they are used practically while writing or having conversations.Pleaese don't add something extra symbols or words to this pdf
cd /tmp/workspace && python3 << 'EOF' from reportlab.lib.pagesizes import letter from reportlab.lib import colors from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import inch from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer, PageBreak from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY from datetime import datetime # Create PDF pdf_file = "Urban_Vocabulary_Handbook.pdf" doc = SimpleDocTemplate(pdf_file, pagesize=letter, topMargin=0.4*inch, bottomMargin=0.4*inch) story = [] styles = getSampleStyleSheet() # Define colors color1 = colors.HexColor("#FF6B6B") color2 = colors.HexColor("#4ECDC4") color3 = colors.HexColor("#FFE66D") color4 = colors.HexColor("#95E1D3") color5 = colors.HexColor("#A8E6CF") # Custom styles title_style = ParagraphStyle( 'CustomTitle', parent=styles['Heading1'], fontSize=32, textColor=colors.HexColor("#2C3E50"), spaceAfter=10, alignment=TA_CENTER, fontName='Helvetica-Bold' ) subtitle_style = ParagraphStyle( 'Subtitle', parent=styles['Normal'], fontSize=12, textColor=colors.HexColor("#34495E"), spaceAfter=20, alignment=TA_CENTER, fontName='Helvetica-Oblique' ) heading_style = ParagraphStyle( 'TermHeading', parent=styles['Normal'], fontSize=14, textColor=colors.white, fontName='Helvetica-Bold', spaceAfter=6 ) meaning_style = ParagraphStyle( 'Meaning', parent=styles['Normal'], fontSize=10, textColor=colors.HexColor("#2C3E50"), spaceAfter=8, leftIndent=10 ) example_style = ParagraphStyle( 'Example', parent=styles['Normal'], fontSize=9, textColor=colors.HexColor("#555555"), spaceAfter=5, leftIndent=15 ) # Data from image vocabulary = [ { 'term': 'springing up', 'type': '(v)', 'meaning': 'appearing suddenly', 'examples': [ 'New shopping malls are springing up in the outskirts of the city.', 'During spring, flowers start springing up in the gardens.', 'Tech companies are springing up in the downtown area.' ] }, { 'term': 'buzz', 'type': '(n)', 'meaning': 'a positive, exciting feel', 'examples': [ 'There is a buzz around the new restaurant opening downtown.', 'The buzz in the office was high after the announcement of bonuses.', 'Social media created a buzz about the upcoming concert.' ] }, { 'term': 'grand houses', 'type': '(n)', 'meaning': 'large houses, such as those built for wealthy people', 'examples': [ 'The area is filled with grand houses overlooking the valley.', 'Wealthy families prefer to build grand houses in exclusive neighborhoods.', 'The historic district has many grand houses from the 1800s.' ] }, { 'term': 'gated apartments', 'type': '(n phr)', 'meaning': 'apartment buildings surrounded by fences or walls with a gate that can only be accessed by residents', 'examples': [ 'Many families choose to live in gated apartments for security reasons.', 'Gated apartments are becoming increasingly popular in urban areas.', 'She moved to gated apartments after her business became successful.' ] }, { 'term': 'transport infrastructure', 'type': '(n + n)', 'meaning': 'all the physical components of transport systems, e.g. railways, bridges, tunnels', 'examples': [ 'The government invested heavily in improving transport infrastructure.', 'Good transport infrastructure connects the city to surrounding towns.', 'Developing countries need better transport infrastructure for economic growth.' ] }, { 'term': 'runs very smoothly', 'type': '(v phr)', 'meaning': 'works, functions very well', 'examples': [ 'The new subway system runs very smoothly despite being recently built.', 'The company\'s operations run very smoothly since hiring the new manager.', 'This software runs very smoothly on older computers.' ] }, { 'term': 'smog', 'type': '(n)', 'meaning': 'thick fog in cities caused by smoke and pollution', 'examples': [ 'The city experienced heavy smog during rush hours.', 'Smog reduces visibility and affects people\'s respiratory health.', 'Air quality worsens when smog blankets the city during winter.' ] }, { 'term': 'choke on the fumes', 'type': '(v phr)', 'meaning': 'stop breathing because of traffic pollution', 'examples': [ 'Residents living near highways choke on the fumes from vehicles.', 'People in congested areas choke on the fumes during peak traffic times.', 'Cyclists often choke on the fumes from passing trucks.' ] }, { 'term': 'trace', 'type': '(n)', 'meaning': 'a small or barely visible amount', 'examples': [ 'There was only a trace of coffee left in the cup.', 'Scientists found a trace of the chemical in the water samples.', 'A trace of sadness appeared on her face when she heard the news.' ] }, { 'term': 'littering', 'type': '(v)', 'meaning': 'the act of dropping rubbish on the ground in public spaces', 'examples': [ 'Littering is a serious problem in many public parks.', 'The city imposed fines to discourage littering on streets.', 'Children learn that littering harms the environment.' ] }, { 'term': 'grinds to a halt', 'type': '(v phr)', 'meaning': 'stops', 'examples': [ 'Traffic grinds to a halt during morning rush hour.', 'The factory grinds to a halt when electricity is cut off.', 'The entire project grinds to a halt without proper funding.' ] }, { 'term': 'horns', 'type': '(n)', 'meaning': 'devices on a car or motorbike that are used to make a noise', 'examples': [ 'Drivers honk their horns to warn other vehicles on the road.', 'The constant sound of horns creates noise pollution in the city.', 'Horns are essential safety devices for vehicles on busy streets.' ] }, { 'term': 'gentrification', 'type': '(n)', 'meaning': 'the process of improving an area of a city or town to attract wealthier residents', 'examples': [ 'Gentrification has changed the character of the old neighborhood.', 'Local residents were displaced due to gentrification in their area.', 'Gentrification often leads to higher property prices in urban neighborhoods.' ] }, { 'term': 'settling down', 'type': '(phr v)', 'meaning': 'starting to live in a place where you intend to stay for a long time', 'examples': [ 'After years of traveling, she decided to settle down in a quiet town.', 'Many young couples are settling down in suburban areas.', 'He settled down in the city after finding a stable job.' ] }, { 'term': 'neglected', 'type': '(adj)', 'meaning': 'not receiving care or attention', 'examples': [ 'The neglected building in the city center needs renovation.', 'Neglected parks lack proper maintenance and facilities.', 'The neglected infrastructure caused serious transportation problems.' ] }, { 'term': 'derelict', 'type': '(adj)', 'meaning': 'ruined, abandoned', 'examples': [ 'The derelict warehouse has been empty for twenty years.', 'The city is trying to rehabilitate derelict buildings in the downtown area.', 'Derelict properties reduce the aesthetic appeal of neighborhoods.' ] }, { 'term': 'developments', 'type': '(n)', 'meaning': 'areas on which new buildings have been built in order to make a profit', 'examples': [ 'New residential developments are sprouting near the city limits.', 'Property developers are investing in major commercial developments.', 'These housing developments attract many young families.' ] }, { 'term': 'outskirts', 'type': '(n)', 'meaning': 'the areas outside a city or town', 'examples': [ 'Most factories are located on the outskirts of the city.', 'Housing is more affordable on the outskirts than downtown.', 'The outskirts offer a quieter lifestyle away from urban chaos.' ] }, { 'term': 'crammed', 'type': '(v)', 'meaning': 'forced into a small area', 'examples': [ 'Too many people were crammed into the small bus during rush hour.', 'Apartments in the city are often crammed with residents.', 'The conference room was crammed with participants.' ] }, { 'term': 'dingy', 'type': '(adj)', 'meaning': 'dark and dirty', 'examples': [ 'The dingy basement needed urgent cleaning and repairs.', 'They lived in a dingy apartment with poor lighting.', 'The dingy alley was cluttered with old furniture and trash.' ] } ] # PAGE 1: COVER story.append(Spacer(1, 1.2*inch)) story.append(Paragraph("URBAN VOCABULARY", title_style)) story.append(Paragraph("Essential Terms for City Living and Development", subtitle_style)) story.append(Spacer(1, 1.5*inch)) story.append(Paragraph("A comprehensive guide to understanding urban terminology", ParagraphStyle('CoverText', parent=styles['Normal'], fontSize=11, alignment=TA_CENTER))) story.append(PageBreak()) # Pages with vocabulary color_cycle = [color1, color2, color3, color4, color5] items_per_page = 3 for idx, item in enumerate(vocabulary): if idx > 0 and idx % items_per_page == 0: story.append(PageBreak()) color = color_cycle[idx % len(color_cycle)] # Term header term_data = [[Paragraph(f"{item['term']} {item['type']}", heading_style)]] term_table = Table(term_data, colWidths=[5.5*inch]) term_table.setStyle(TableStyle([ ('BACKGROUND', (0, 0), (-1, -1), color), ('PADDING', (0, 0), (-1, -1), 10), ('ALIGN', (0, 0), (-1, -1), 'LEFT'), ])) story.append(term_table) # Meaning story.append(Paragraph(f"<b>Meaning:</b> {item['meaning']}", meaning_style)) story.append(Spacer(1, 0.08*inch)) # Examples story.append(Paragraph("<b>Practical Examples:</b>", meaning_style)) for i, example in enumerate(item['examples'], 1): story.append(Paragraph(f"{i}. {example}", example_style)) story.append(Spacer(1, 0.25*inch)) # Build PDF doc.build(story) print(f"PDF created successfully: {pdf_file}") EOF
ls -lh /tmp/workspace/*.pdf
Urban Vocabulary Handbook
PDF Document · PDF