Snippet LaTeX

Questo post sarà modificato spesso, serve a conservare snippet che voglio trovare subito, quando mi servono. Suggerimenti ben accetti.

(come è ben chiaro, questa pagina non viene aggiornata da tanto tempo. questo perché dopo un po’ ti rendi conto che i modelli non servono.)

Script utili

Trasformare un tsv in una tabella

#!/usr/bin/env python3
# tab.py --
# usage: ./tab.py [table.tsv]
# Accepts input on stdin or filename on argv, gives output on stdout.

import sys
try:
    f=open(sys.argv[1], 'r')
except FileNotFoundError:
    print("File not found: `{}'".format(sys.argv[1]),
          file=sys.stderr)
    exit(1) # anything != 0 means error.
except IndexError:
    f=sys.stdin

import pandas as pd
pd.read_table(f).to_latex(header=False, buf=sys.stdout)

# NB: Questa cosa è molto elastica, se leggi la documentazione.
# http://pandas.pydata.org/pandas-docs/stable/io.html
# http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_latex.html

Vecchie edizioni

Script parecchio artigianale che serve soltanto a fare un trova e sostituisci.

#! /usr/bin/env python3

import sys

# Se viene dato un argomento, apri quel file. Altrimenti,
# aspetta su stdin. In ogni caso, l'output va su sys.stdout;
# per salvare su file, redirezione dell'output:
#
# $ ./tabellatore.py tabella.tsv > tabella.txt

try:
    f = open(sys.argv[1], 'r')
except:
    f = sys.stdin


for line in f:
    print(line.replace("\t", "&\t").replace("\n", "\\\\\n"),
          file=sys.stdout, end='')


# Notare particolarmente bene una cosa:
# assicurarsi che i file siano tabificati.
# oppure migliorare la cosa per handlare anche serie di spazi.

miglioramenti che si potrebbero apportarvi:

  • si potrebbe riscrivere in linguaggi più performanti;
  • si potrebbero fargli raggruppare le tabulazioni consecutive;
  • si potrebbe far leggere da STDIN riga per riga invece che dal disco tutto insieme, così da renderlo un filtro ed ottimizzare l’uso della memoria;
  • si potrebbe scrivere sotto forma di pacchetto LaTeX in modo da evitare conversioni esterne;

Se hai come migliorarlo o hai implementato uno dei punti sopra, scrivi.

Lla vecchia implementazione in php:

#! /usr/bin/php

<?php
// tabellatore.php
// prende in input un file di colonne separate da tabulazioni
// crea una tabella LaTeX a partire dal file servito.
$valori=file_get_contents($argv[1]);
$valori=str_replace(array("\t", "\n"), array("\t& ", "\t\\\\\n"), $valori);
echo $valori;
?>

Un documento “vuoto”

\documentclass[11pt,a4paper]{article}
\usepackage[italian]{babel} \usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{microtype}
\usepackage[hidelinks]{hyperref}
\usepackage{booktabs}
\usepackage{graphicx}

\usepackage{amsmath}
\usepackage{amssymb}

\author{Pinco Pallino \and Paolino Paperino}
\title{Una relazione qualsiasi.}
\date{\today}

\begin{document}
\maketitle
\begin{abstract} % Abstract.
\end{abstract}
%\tableofcontents \listoffigures \listoftables %
% questa riga finirà commentata prima di subito, se vuoi usare
% l'abstract descrivendo il lavoro. % commentata per intero o anche a
% pezzi. eventualmente, figures e tables si spostano in coda.

\end{document}

Parti

Un’immagine.

\begin{figure}[htpb]
\centering\includegraphics[width=0.9\textwidth]{filename}
\caption{\label{fig:}}
\end{figure}

Un’immagine ruotata sul lato lungo della pagina.

\begin{sidewaysfigure}[p] % needs "rotating"
\centering\includegraphics[height=0.9\textheight]{filename}
\caption{ \label{fig:}}
\end{sidewaysfigure}