Skip to content

sav1209/My-CP-Reference

Repository files navigation

Reference de Programacion Competitiva

Notas de Programacion Competitiva utilizadas para competencias estilo ICPC generado con Typst. Incluye una plantilla visual reutilizable y secciones por tema con codigo.

Vision General

Este repositorio esta centrado en dos archivos principales:

  • main.typ: punto de entrada del documento, configuracion global de fuentes y secciones.
  • lib.typ: plantilla reutilizable, incluyendo reference y code-entry.

Caracteristicas Actuales

  • Tarjetas de codigo con code-entry.
  • Integracion con codly para resaltado y configuración de código.
  • Enlaces a GitHub para archivos fuente (configurable global o por tarjeta).
  • Soporte de tema con color o modo monocromatico.

Dependencias de Typst

Paquete Version Uso
catppuccin 1.0.0 Tema visual base
theorion 0.3.3 Cajas y entornos de apoyo
codly 1.3.0 Render de bloques de codigo
codly-languages 0.1.10 Lenguajes para codly
zebra 0.1.0 Generacion de QR

Guia para Usar el Proyecto

Las formas mas faciles de usar este proyecto son las siguientes:

Opcion 1: typst.app

  1. Descarga este repositorio en tu maquina.
  2. Crea un proyecto en https://typst.app/.
  3. Sube los archivos del repositorio.
  4. Abre main.typ y compila.

Opcion 2: GitHub Codespaces + Tinymist

Puedes abrir un Codespace con un clic usando el boton "Open in GitHub Codespaces" al inicio de este README.

  1. Abre el repositorio en GitHub y crea un Codespace.
  2. En la terminal del Codespace instala Typst con:
curl -fsSL https://install.typst.community/install.sh | sh
  1. Verifica la instalacion:
typst --version

Repositorio del script de instalacion: https://github.com/typst-community/typst-install

  1. Instala Tinymist para facilitar la edicion en VS Code/Codespaces.

Tinymist es una herramienta de apoyo (LSP) para Typst: mejora la experiencia de edicion, pero el motor que compila el proyecto es Typst CLI.

Guia de code-entry

code-entry crea una tarjeta superior y un bloque de codigo debajo (todos los paramétros son opcionales).

#code-entry(
  source-file: "",
  title: "",
  time: "",
  space: "",
  description: "",
  lang: "cpp",
  github-base: none,
  range: (),
  ..args,
)

Comportamiento

  • Si alguno de los parámetros se omite, no se coloca en la card.
  • La accent-bar siempre se mantiene.
  • time y space son independientes.
  • Si se pasa codigo inline por ..args, tiene prioridad sobre source-file.
  • Si hay source-file y existe github-base (local o global), se agrega link en el header del bloque de codigo.
  • range renderiza únicamente el rango de líneas ingresado (indexado en 1).

Ejemplo 1: Con titulo y archivo

#code-entry(
  title: "Kadane's algorithm",
  time: $O(n)$,
  range: (6, 23),
  source-file: "data_structures/kadane.cpp",
)

Ejemplo 2: Sin titulo

#code-entry(
  source-file: "graphs/topological_sort_bfs.cpp",
  time: $O(n + m)$,
  description: "Version BFS (Kahn)",
)

En este caso, la tarjeta conserva la barra de acento superior, pero no muestra fila de titulo.

Ejemplo 3: Codigo inline en vez de source-file

#code-entry(
  title: "Snippet inline",
  time: $O(1)$,
)[
```py
print("hello")
```
]

Configuracion Global con reference

main.typ aplica la plantilla asi:

#show: reference.with(
  github-base: "https://github.com/sav1209/My-CP-Reference/blob/main/",
  // use-color: false,
)
  • github-base define el prefijo para links automaticos de code-entry.
  • use-color permite alternar entre tema a color y monocromatico.

Recursos

Libros

  • Guide to Competitive Programming - Antti Laaksonen
  • Competitive Programming 4 - Steven Halim, Felix Halim, Suhendry Effendy

Sitios

Inspiraciones

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors