Media Context
The media context handles all types of media elements including figures, diagrams, videos, and images. It ensures consistent media handling across different output formats.
Key Macros
Figures
\figure{contents}{caption}{label}
Creates a complete figure with caption and reference
Args:
contents: Figure content (often an \include command)
caption: Figure caption text
label: Reference label for citations
\includediagram{filename}{width}{class}{style}
Includes scalable diagrams (SVG/PNG)
Args:
filename: Path to diagram file
width: Display width (e.g., "80%")
class: Optional CSS class
style: Optional CSS styling
Video Content
\includeyoutube{id}{width}{height}{start}{end}
Embeds YouTube video
Args:
id: YouTube video ID
width: Frame width
height: Frame height
start: Start time in seconds
end: End time in seconds
\includevimeo{id}{width}{height}{start}{end}
Embeds Vimeo video
Args:
id: Vimeo video ID
width/height: Frame dimensions
start/end: Clip timing
\includempfour{filename}{width}{height}
Embeds local MP4 video
Args:
filename: Path to video file
width/height: Display dimensions
Images
\includeimg{filename}{width}{class}{align}
Includes generic images
Args:
filename: Image path
width: Display width
class: CSS class
align: Alignment option
Additional Media Types
\includebbcvideo{id}{width}{height}{start}{end}
Embeds BBC video content
Args:
id: BBC programme ID
width/height: Display dimensions
start/end: Clip timing
\includeredditvideo{id}{width}{height}{start}{end}
Embeds Reddit video content
Args:
id: Reddit video ID
width/height: Display dimensions
start/end: Clip timing
\includepdf{filename}{page}{width}{height}
Embeds PDF content
Args:
filename: PDF file path
page: Page number
width/height: Display dimensions
\includepdfclip{filename}{clip}{page}{width}{height}
Embeds clipped PDF content
Args:
filename: PDF file path
clip: Clip region
page: Page number
width/height: Display dimensions
\inlinediagram{svgcode}
Inserts SVG code directly
Args:
svgcode: Raw SVG code
Example Usage
\ifndef{mediaExample}
\define{mediaExample}
\section{Neural Networks Visualization}
% Include a diagram
\figure{\includediagram{neural-net}{80%}}
{Architecture of a simple neural network}{fig:neural-net}
% Include a video explanation
\includeyoutube{dQw4w9WgXcQ}{800}{600}{0}{60}
% Include an image series
\columns{
\includeimg{step1.png}{40%}{centered}{center}
}{
\includeimg{step2.png}{40%}{centered}{center}
}{50%}{50%}
\endif
Output Format Considerations
HTML
Responsive image sizing
Video player embedding
Interactive figure controls
PDF/LaTeX
High-resolution images
Vector graphics support
Static video thumbnails
Slides
Optimized image sizes
Embedded video support
Animation capabilities
Best Practices
Use vector formats (SVG) when possible
Provide appropriate fallbacks
Consider bandwidth and loading times
Maintain consistent aspect ratios
Include meaningful captions
Use semantic figure references