Unidades, química y convenciones
Los papers necesitan cantidades y fórmulas químicas con un formato consistente, no solo tipografiadas. ComdTeX incluye cuatro atajos para eso: si(), num(), unit() y ce(). Los escribes una vez y se renderizan de dos formas: en la vista previa del editor mediante KaTeX, y en la exportación a LaTeX como comandos reales de siunitx y mhchem, que es lo que las revistas realmente exigen.
Los atajos
| Atajo | Vista previa | Exportación |
|---|---|---|
si(9.81, m/s^2) | 9.81 m s^-2 (unidades verticales) | \qty{9.81}{\meter\per\second\squared} |
si(1.5(2), mol/L) | 1.5(2) mol L^-1 (incertidumbre concisa) | \qty{1.5(2)}{\mole\per\litre} |
num(6.022e23) | 6.022 x 10^23 | \num{6.022e23} |
unit(mol/L) | mol L^-1 | \si{\mole\per\litre} |
ce(H2SO4) | renderizado por la extensión mhchem de KaTeX | \ce{H2SO4} |
si() toma un valor y una unidad; num() toma un número suelto; unit() toma solo una expresión de unidad; ce() toma una fórmula química. La notación científica (6.022e23) y la incertidumbre entre paréntesis (1.5(2)) se entienden de forma nativa.
Tanto siunitx como mhchem se cargan solo cuando un documento realmente usa si()/num()/unit() o ce(). Los documentos que nunca tocan química o cantidades no pagan el costo de compilación, algo que importa porque las versiones recientes de mhchem no son gratis en tiempo de compilación.
Vocabulario de unidades
El analizador entiende un vocabulario cerrado, no texto arbitrario, de modo que un error tipográfico degrada con elegancia en lugar de adivinar.
Base del SI: m, s, kg, g, mol, K, A, cd
Derivadas del SI: Hz, N, Pa, J, W, C, V, F, ohm, S, T, H, lm, lx, Bq, Gy, Sv, kat, rad, sr
No-SI aceptadas: L/l (litro), t (tonelada), min, h, d, au, eV, u, Da, bar, percent, degC, degF, deg, arcmin, arcsec
Astronomía: pc, kpc, Mpc, ly, Msun, Lsun, Rsun, Jy, mag. siunitx no tiene macros para estas, así que viajan como texto vertical en la exportación en lugar de romperla.
Biología y química: M (molar), bp, kb, rpm, cfu, OD
Puedes combinar unidades con *, / y ^n para productos, divisiones y exponentes: mol/L, kg*m/s^2, W/m^2.
Prefijos del SI
El conjunto completo de prefijos del SI está soportado y se aplica a cualquier unidad conocida: q (quecto), r (ronto), y (yocto), z (zepto), a (atto), f (femto), p (pico), n (nano), u/µ/μ (micro), m (mili), c (centi), d/da (deca), h (hecto), k (kilo), M (mega), G (giga), T (tera), P (peta), E (exa), Z (zetta), Y (yotta), R (ronna), Q (quetta). Así, km, µmol y GHz se resuelven todos como prefijo más unidad base.
Una unidad desconocida nunca rompe la compilación
Si escribes una unidad que no está en el vocabulario, no lanza un error. Degrada a texto vertical: \text{} dentro del argumento de siunitx para la exportación, y el texto literal en la vista previa. Un error tipográfico en el nombre de una unidad es un problema estético, nunca un PDF roto.
Chequeo de convenciones tipográficas de biología
Las revistas biomédicas devuelven manuscritos por reglas tipográficas que casi nadie revisa a mano: los binomios taxonómicos deben ir en cursiva (Escherichia coli, E. coli), las especies se nombran completas antes de abreviarlas, y los símbolos de genes deben ir en cursiva mientras sus productos proteicos se mantienen verticales (TP53 el gen frente a p53 la proteína). Para ver todo el conjunto de herramientas de biología, consulta Biología computacional.
Actívalo por documento con frontmatter:
---
comdtex.domain: biology
---
También se aceptan microbiology, biomed y biomedicine. Una vez activado, el editor ADVIERTE sobre posibles violaciones y sugiere la forma en cursiva. Nunca reescribe tu texto automáticamente: una palabra como Bacillus puede ser un género o un apellido, y solo el autor lo sabe.
El chequeo es cuidadoso con dónde mira y qué marca:
- El código, las fórmulas, los enlaces y el texto que ya está en cursiva se ignoran, así que el chequeo nunca se dispara dentro de un bloque con comillas invertidas o de una fórmula.
- Las siglas comunes de laboratorio no se confunden con símbolos de genes.
PCR,ELISA,DNAy una lista larga de abreviaturas similares (RNA,HPLC,NMR,WHO,FDA,ATP, entre otras) están excluidas a propósito, porque el patrón de un símbolo de gen (de 2 a 6 letras mayúsculas, seguidas opcionalmente de dígitos) las atraparía también. - Los símbolos dentro de encabezados se omiten, ya que un encabezado suele ser el título de una sección, no una afirmación sobre un gen.
El resultado es una sugerencia, no una reescritura: tú decides si Bacillus se convierte en Bacillus o se queda como apellido.
Genes según el organismo
Las convenciones de genes cambian entre organismos: TP53 en humano, Trp53 en ratón y rata, tp53 en pez cebra. Indica el organismo junto al dominio y el chequeo sigue sus reglas:
---
comdtex.domain: biology
comdtex.organism: mouse
---
Los valores aceptados son human, mouse, rat, zebrafish, drosophila, yeast y bacteria. Un valor desconocido se ignora y sigue vigente el chequeo original, que no distingue organismos. comdtex.organism no hace nada sin comdtex.domain.
| Organismo | Símbolo del gen (en cursiva) |
|---|---|
humano (human) | *TP53* |
ratón, rata (mouse, rat) | *Trp53* |
pez cebra (zebrafish) | *tp53* |
levadura (yeast) | *CDC28* (su proteína es Cdc28p, vertical) |
bacterias (bacteria) | *lacZ* (su proteína es LacZ, vertical) |
Con un organismo definido, el chequeo advierte sobre tres cosas:
- Un gen en cursiva con la capitalización equivocada, como
*TRP53*en un paper de ratón. - Una proteína escrita en cursiva, que se detecta en levadura (
*Cdc28p*) y en bacterias (*LacZ*). - Un gen que no está en cursiva.
El chequeo es más estrecho a propósito. Para humano, ratón, rata, pez cebra y levadura, un símbolo vertical solo se reporta cuando la oración lo llama gen (TP53 gene, Trp53 knockout, CDC28 promoter), porque una palabra vertical en mayúsculas suele ser una proteína o prosa normal. Los genes bacterianos (lacZ) tienen una forma inconfundible y se reportan sin esa pista. Las líneas que mencionan otro organismo o comparan varios (“TP53 humano y su ortólogo de ratón Trp53”) no se cuestionan, porque ambas grafías son correctas ahí mismo. En Drosophila no se revisan los símbolos de genes: provienen de fenotipos mutantes y nada en el texto permite identificarlos. Las palabras que sirven de pista (gene, allele, locus, promoter, mutant, knockout y similares) están en inglés, así que en un texto en español solo se detectan los genes bacterianos y los que acompañas con esas palabras.
Especies nombradas completas primero
Las revistas piden el binomio completo la primera vez que aparece una especie. El chequeo advierte cuando E. coli se usa antes de que aparezca Escherichia coli. Reporta solo el primer uso por especie, y solo cuando el nombre completo aparece después en el documento: si nunca aparece, quizá lo escribiste completo en otro lado. El texto en cursiva cuenta (la regla es sobre el orden, no sobre el estilo), y los encabezados pueden aportar el nombre completo pero nunca se reportan. La lista de géneros que conoce es corta y aburrida a propósito, para evitar falsas alarmas.
Correcciones rápidas
Con el cursor sobre un aviso, pulsa Ctrl+. (ver El editor) para aplicar la corrección como una sola edición que se puede deshacer:
- Poner en cursiva un binomio o un símbolo de gen. Con un organismo definido, el símbolo toma también la capitalización de ese organismo.
- Quitar la cursiva a un símbolo de proteína.
- Cambiar la capitalización de un gen en cursiva a la convención del organismo.
El aviso de abreviatura antes del nombre completo no tiene corrección rápida: tú decides qué mención reescribir. Nada se cambia automáticamente.
Números de acceso
Con comdtex.domain: biology, los números de acceso a bases de datos en la prosa se convierten en enlaces en la vista previa y en enlaces \href en la exportación a LaTeX:
| Base de datos | Ejemplos |
|---|---|
| GenBank, ENA, DDBJ | MN908947.3, AB123456 |
| RefSeq | NM_000546.6, NP_000537.3, NC_000017.11 |
| Corridas y proyectos de SRA, ENA, DDBJ | SRR1234567, ERR1234567, PRJEB12345 |
| BioProject, BioSample | PRJNA123456, SAMN12345678 |
| GEO, ArrayExpress | GSE12345, E-MTAB-1234 |
| Ensembl | ENSG00000141510, ENSMUSG00000059552 (la versión se quita del enlace) |
| PDB, UniProt | PDB 1ABC, UniProt P04637 |
Cada identificador enlaza a la página de la base de datos que lo emitió (NCBI, EBI, RCSB, UniProt, Ensembl). La detección prefiere la precisión sobre la cobertura, porque un enlace que no lleva a ningún lado hace que los lectores desconfíen de los demás:
- Un código PDB suelto (
1ABC) o un acceso UniProt suelto (P04637) nunca se enlaza. Necesita el nombre de la base de datos delante:PDB 1ABC,UniProt P04637. Solo el código se convierte en enlace. - Se exige la forma exacta en mayúsculas, con un límite limpio a ambos lados. Un nombre pegado a una palabra, una ruta o un usuario (
file_SRR1234567,@GSE12345) no coincide. - El código, las fórmulas, los enlaces existentes y los encabezados se dejan tal cual, y tu archivo nunca se modifica: el enlace existe solo en la vista previa y en la exportación.
- Los DOI, incluidos los de Zenodo, no son números de acceso y se dejan como están.
Nota de disponibilidad de datos
Muchas revistas exigen una declaración de disponibilidad de datos. En un documento de biología que no tiene esa sección, el editor muestra una nota informativa (no un aviso) cuando se cumple alguna de estas condiciones, y señala la primera que encuentra:
- El texto cita un número de acceso.
- Menciona datos de secuenciación (FASTQ, RNA-seq, ChIP-seq, “raw reads” y similares, en inglés o en español).
- Tiene un encabezado de Referencias o Bibliografía, lo que sugiere un paper.
Una nota corta sin ninguna de estas señales se queda en silencio. La nota desaparece cuando el documento tiene un encabezado o un título en negrita dentro del párrafo como ## Data availability, ## Availability of data and materials, **Data availability.** o ## Disponibilidad de datos.
Números de tu análisis
val() trae valores de archivos de resultados CSV o JSON a las unidades y a la prosa: si(val(stats, effect, 3sf), mg/L). Ver Tablas desde datos.
Units, chemistry and conventions
Papers need quantities and chemical formulas formatted consistently, not just typeset. ComdTeX ships four shorthands for that: si(), num(), unit() and ce(). Type them once and they render two ways: in the editor’s preview through KaTeX, and in the LaTeX export as real siunitx and mhchem commands, which is what journals actually check for.
The shorthands
| Shorthand | Preview | Export |
|---|---|---|
si(9.81, m/s^2) | 9.81 m s^-2 (upright units) | \qty{9.81}{\meter\per\second\squared} |
si(1.5(2), mol/L) | 1.5(2) mol L^-1 (concise uncertainty) | \qty{1.5(2)}{\mole\per\litre} |
num(6.022e23) | 6.022 x 10^23 | \num{6.022e23} |
unit(mol/L) | mol L^-1 | \si{\mole\per\litre} |
ce(H2SO4) | rendered by KaTeX’s mhchem extension | \ce{H2SO4} |
si() takes a value and a unit; num() takes a bare number; unit() takes a unit expression alone; ce() takes a chemical formula. Scientific notation (6.022e23) and parenthesized uncertainty (1.5(2)) are both understood natively.
Both siunitx and mhchem load only when a document actually uses si()/num()/unit() or ce(). Documents that never touch chemistry or quantities do not pay the compile-time cost, which matters because recent mhchem versions are not free.
Unit vocabulary
The parser understands a closed vocabulary, not arbitrary text, so a typo degrades gracefully instead of guessing.
SI base: m, s, kg, g, mol, K, A, cd
SI derived: Hz, N, Pa, J, W, C, V, F, ohm, S, T, H, lm, lx, Bq, Gy, Sv, kat, rad, sr
Accepted non-SI: L/l (litre), t (tonne), min, h, d, au, eV, u, Da, bar, percent, degC, degF, deg, arcmin, arcsec
Astronomy: pc, kpc, Mpc, ly, Msun, Lsun, Rsun, Jy, mag. siunitx has no macros for these, so they ride as upright text in the export rather than breaking it.
Biology and chemistry: M (molar), bp, kb, rpm, cfu, OD
You can combine units with *, / and ^n for products, divisions and exponents: mol/L, kg*m/s^2, W/m^2.
SI prefixes
The full SI prefix set is supported and applied to any known unit: q (quecto), r (ronto), y (yocto), z (zepto), a (atto), f (femto), p (pico), n (nano), u/µ/μ (micro), m (milli), c (centi), d/da (deca), h (hecto), k (kilo), M (mega), G (giga), T (tera), P (peta), E (exa), Z (zetta), Y (yotta), R (ronna), Q (quetta). So km, µmol and GHz all resolve to their prefix plus base unit.
Unknown units never break a compile
If you write a unit that is not in the vocabulary, it does not throw an error. It degrades to upright text: \text{} inside the siunitx argument for the export, and the literal text in the preview. A typo in a unit name is a cosmetic issue, never a broken PDF.
Biology typography check
Biomedical journals return manuscripts over typographic rules that almost nobody checks by hand: taxonomic binomials must be italic (Escherichia coli, E. coli), species are named in full before they are abbreviated, and gene symbols must be italic while their protein products stay upright (TP53 the gene versus p53 the protein). For the whole biology toolkit, see Computational biology.
Opt in per document with frontmatter:
---
comdtex.domain: biology
---
microbiology, biomed and biomedicine are accepted as well. Once enabled, the editor WARNS about likely violations and suggests the italicized form. It never rewrites your text automatically: a word like Bacillus can be a genus or a surname, and only the author knows which.
The check is careful about where it looks and what it flags:
- Code, math, links and text that is already italic are ignored, so the check never fires inside a fenced block or a formula.
- Common lab acronyms are not mistaken for gene symbols.
PCR,ELISA,DNAand a long list of similar abbreviations (RNA,HPLC,NMR,WHO,FDA,ATP, and others) are excluded on purpose, because a gene-symbol pattern (2 to 6 uppercase letters, optionally followed by digits) would otherwise catch them too. - Symbols inside headings are skipped, since a heading is usually a section title, not a claim about a gene.
The result is a suggestion, not a rewrite: you decide whether Bacillus becomes Bacillus or stays a surname.
Genes by organism
Gene conventions differ between organisms: TP53 in human, Trp53 in mouse and rat, tp53 in zebrafish. Name the organism next to the domain and the check follows its rules:
---
comdtex.domain: biology
comdtex.organism: mouse
---
Accepted values are human, mouse, rat, zebrafish, drosophila, yeast and bacteria. An unknown value is ignored, and the original organism-blind check stays in force. comdtex.organism does nothing without comdtex.domain.
| Organism | Gene symbol (italic) |
|---|---|
| human | *TP53* |
| mouse, rat | *Trp53* |
| zebrafish | *tp53* |
| yeast | *CDC28* (its protein is Cdc28p, upright) |
| bacteria | *lacZ* (its protein is LacZ, upright) |
With an organism set, the check warns about three things:
- An italic gene in the wrong capitalization, such as
*TRP53*in a mouse paper. - A protein set in italics, which is detected for yeast (
*Cdc28p*) and bacteria (*LacZ*). - A gene that is not italic.
The check is narrower on purpose. For human, mouse, rat, zebrafish and yeast, an upright symbol is reported only when the sentence calls it a gene (“the TP53 gene”, “Trp53 knockout”, “the CDC28 promoter”), because an upright capitalized word is usually a protein or ordinary prose. Bacterial genes (lacZ) have an unmistakable shape and are reported without that cue. Lines that mention another organism or compare several (“human TP53 and its mouse ortholog Trp53”) are not second-guessed, since both spellings are right there. Drosophila is not checked for gene symbols: they come from mutant phenotypes, and nothing in the text identifies them. The cue words (gene, allele, locus, promoter, mutant, knockout and similar) are English, so in a text written in another language only bacterial genes, and genes you accompany with those words, are detected.
Species named in full first
Journals ask for the full binomial the first time a species appears. The check warns when E. coli is used before Escherichia coli has appeared. It reports only the first such use per species, and only when the full name does appear later in the document: if it never does, you may have spelled it out elsewhere. Italic text counts (the rule is about order, not style), and headings can supply the full name but are never reported. The list of genera it knows is short and boring on purpose, to avoid false alarms.
Quick fixes
With the cursor on a warning, press Ctrl+. (see The editor) to apply the fix as one undoable edit:
- Italicize a binomial or a gene symbol. With an organism set, the symbol also takes that organism’s capitalization.
- Remove the italics from a protein symbol.
- Change the capitalization of an italic gene to the organism’s convention.
The abbreviation-before-full-name warning has no quick fix: you decide which mention to rewrite. Nothing is ever changed automatically.
Accession numbers
With comdtex.domain: biology, database accession numbers in prose become links in the preview and \href links in the LaTeX export:
| Database | Examples |
|---|---|
| GenBank, ENA, DDBJ | MN908947.3, AB123456 |
| RefSeq | NM_000546.6, NP_000537.3, NC_000017.11 |
| SRA, ENA, DDBJ runs and projects | SRR1234567, ERR1234567, PRJEB12345 |
| BioProject, BioSample | PRJNA123456, SAMN12345678 |
| GEO, ArrayExpress | GSE12345, E-MTAB-1234 |
| Ensembl | ENSG00000141510, ENSMUSG00000059552 (version stripped in the link) |
| PDB, UniProt | PDB 1ABC, UniProt P04637 |
Each identifier links to the page of the database that issued it (NCBI, EBI, RCSB, UniProt, Ensembl). The matching favors precision over recall, because a link that goes nowhere makes readers distrust the rest:
- A bare PDB code (
1ABC) or UniProt accession (P04637) is never linked. It needs the database name in front:PDB 1ABC,UniProt P04637. Only the code becomes the link. - The exact uppercase shape is required, with a clean boundary on both sides. A name glued to a word, a path or a handle (
file_SRR1234567,@GSE12345) is not matched. - Code, math, existing links and headings are left alone, and your file is never modified: the link exists only in the preview and the export.
- DOIs, including Zenodo’s, are not accession numbers and are left as they are.
Data availability note
Many journals require a Data availability statement. In a biology document that has no such section, the editor shows an informational note (not a warning) when one of these is true, pointing at the first one found:
- The text cites an accession number.
- It mentions sequencing data (FASTQ, RNA-seq, ChIP-seq, “raw reads” and similar, in English or Spanish).
- It has a References or Bibliography heading, which suggests a paper.
A short note with none of these stays quiet. The note goes away when the document has a heading or a bold run-in title such as ## Data availability, ## Availability of data and materials or **Data availability.**; the Spanish forms (Disponibilidad de datos) count too.
Numbers from your analysis
val() brings values from CSV or JSON results files into units and prose: si(val(stats, effect, 3sf), mg/L). See Tables from data.