Pàgines

diumenge, 4 de febrer de 2018

Caixes de text

A l'entrada Llibre de format actual vam veure com fer caixes per text amb una icona identificativa amb l'ajut del paquet bclogo. Ara veurem una altra manera, molt potent també però amb el paquet tcolorbox que permet definir diferents tipus de caixa en un document i, a més, referenciar-les internament.

Per defecte una caixa amb tcolorbox es crea com un entorn:

\begin{tcolorbox}
 Contingut de la caixa de text
\end{tcolorbox}

A cada caixa se la pot configurar especialment amb la configuració dels paràmetres corresponents.
Però potser és més interessant és definir un nou tipus de caixa de text en el preàmbul del document amb el comandament \newtcolorbox i, al cos del document, cridar-la simplement com si fos un entorn.

Així al preàmbul podem definir una caixa nova:

\newtcolorbox[auto counter,%comptador automàtic
      number within=section,% %numera per seccions: secció.número de caixa
      ]%
      {caixablava}[2][]%nom de la caixa de text
      {colback=blue!5!white,%color de fons
      colframe=blue!75!black,%color del marc
      fonttitle=\bfseries,%tipus de lletra del títol
      breakable,%es pot trencar entre pàgines
      pad at break*=0mm,
      title=Caixa Blava \thetcbcounter: #2,#1}%títol de la caixa: text fix, comptador i text variable

Quan al contingut del document volem que aparegui alguna d'aquestes caixes simplement escriurem aquest codi:

\begin{caixablava}[label=cb:referencia1]{Primera caixa}
    Contingut de la caixa
\end{caixablava}

Observi's que cada caixa pot tenir una etiqueta (label) que en el nostre cas hem identificat amb el prefix cb. S'ha fet així perquè amb l'ajut del paquet \prettyref després es pot referenciar la caixa per aquesta etiqueta (vegeu l'article Millores en les referències creuades amb prettyref).

Es poden definir diferents tipus de caixa per un document. Per exemple: una caixa d'Exemple, d'Atenció. d'ampliació... que només cal definir un cop, al preàmbul, i cridar-la després al contingut del document en el moment en què sigui menester. Si els posem una etiqueta a cada cqaixa després és fàcil referencial-les i adreçar al lector a la caixa i la pàgina on es troba.

Al document font adjunt caixadetext.tex es pot estudiar el codi i veure com definir diferents tipus de caixa. I es pot veure el resultat, i les referències creuades, al document PDF caixadetext.pdf adjunt.

diumenge, 29 d’octubre de 2017

Extres per a todonotes

En aquest article recollirem algunes millores que podem fer a les nostres notes creades amb el paquet todonotes. Estan basades en preguntes fetes a tex.stackexchange i tenen a veure en com introduir notes a la llista de feines i en com modificar el format de les notes.

Tipus de notes

Podem determinar, segons els color i el principi de la nota, quin serà el contingut de la nota bé adreçat a nosaltres mateixos per quan tornem a editar un document, bé par altres autors que col·laborativament treballin sobre el mateix. Així podem crear notes que expressin:
  • dubtes: marquem un dubte que, més endavant caldrà aclarir. El codi es basa en la creació d'un nou comandament, basat en el de creació de la nota, on donem informació addicional:
\newcommandx{\dubte}[2][1=]{\todo%

[author=\quihofa,linecolor=red,backgroundcolor=red!25,bordercolor=red,#1]%

{\textbf{No n'estic segur:}\\ #2}}
  • Observi's que s'utilitza el comandament \quihofa com autor de la nota per facilitar la identificació de l'autor. Per això prèviament cal haver definit \newcommand{\quihofa}{JoanQueralt}
  • canvis: de la mateixa manera definim un comandament similar amb un altre color i encapçalament:
    \newcommandx{\canvi}[2][1=]{\todo%
    
    [linecolor=blue,backgroundcolor=blue!25,bordercolor=blue,#1]%
    
    {\textbf{Per canviar:}\\ #2}}
    
  • informació o recordatoris (comandament \info)
  • millores, etc.

Format de les notes

El comandament todo que crea les notes del paquet todonotes es pot modificar redefinint-lo amb les noves característiques. Per exemple, hem aconseguit que el tipus de lletra dins les notes sigui sans serif redefinint el comandament d'aquesta manera al preàmbul i després de cridar al paquet:
\makeatletter
\renewcommand{\todo}[2][]{\@bsphack\@todo[#1]{\sffamily{#2}}\@esphack\ignorespaces}
\makeatother

Podeu veure un exemple del resultat d'aquestes modificacions al PDF adjunt i explorar el codi al fitxer todonotes.tex

diumenge, 1 de gener de 2017

El paquet silence

Finalment he descobert com apagar els advertiments (warnings) que koma-script fa cada cop que, per formatar els títols de seccions, utilitzes el paquet titlesec.

És important fer cas dels avisos que dóna LaTeX quan es processa un document perquè et diu quins errors hi ha (greu!), t'adverteix sobre coses que (potser) pots solucionar i, finalment, t'aconsella sobre canvis en determinats punts del document.

No es poden , per tant, obviar els missatges. Tot i això n'hi ha que són una mica enutjosos, com els que dóna el paquet koma-script quan l'utilitzes simultàniament amb titlesec. Es fa difícil no utilitzar titlesec per la facilitat enorme per formatar els títols de capítols, seccions i altres parts del document. Però a koma  no li agrada i apareix un advertiment que diu:

Class scrbook Warning: Usage of package `titlesec' together
(scrbook)              with a KOMA-Script class is not recommended.
(scrbook)              I'd suggest to use the package only
(scrbook)              if you really need it, because it breaks several
(scrbook)              KOMA-Script features, i.e., option `headings' and
(scrbook)              the extended optional argument of the section
(scrbook)              commands.
(scrbook)              Nevertheless, using requested
(scrbook)              package `titlesec' on input line 282.

Afortunadament ha aparegut el paquet silence que obvia determinats advertiments enutjosos i permet centrar-se en els avisos d'error en el processament de documents.

La manera d'utilitzar-lo és molt senzilla: al preàmbul del document només cal dir quins advertiments volem silenciar. Per exemple:

\RequirePackage{silence}

\WarningFilter{titlesec}{Non standard sectioning command}

\WarningFilter{scrbook}{Activating an ugly workaround}

\WarningFilter{scrreprt}{Usage of package}

\WarningFilter{scrbook}{Usage of package `titlesec' together}

\WarningFilter{scrreprt}{Activating an ugly workaround}


Es pot veure que primer cridem al paquet silence i despŕes diem, pel paquet que volem silenciar (el propi titlesec a la primera línia, o a scrbook o scrreprt) quins avisos volem evitar. Després d'utilitzar-lo un cop, i cansat sempre del mateix repetitiu avís, ja no puc prescindir-ne.

Una gran troballa.

dilluns, 20 de juny de 2016

Texlive

Instal·lació a Ubuntu

1r pas: descarregar l'instal·lador install-tl-ubuntu de https://github.com/scottkosty/install-tl-ubuntu amb l'ordre:
wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/install-tl-ubuntu &&
 chmod +x ./install-tl-ubuntu

2n pas: obrir una línia de comadaments a la carpeta on s'ha desat l'instal·lador i executar-lo amb permisos de sudo:

sudo ./install-tl-ubuntu

El procés d'instal·lació del  paquets és una mica llarg. L'instal·lador primer busca el repositori més ràpid, però tot i això pot arribar a trigar més de mitja hora.

3r pas: gestionar els paquets instal·lats o per instal·lar amb tlmgr que va integrat amb la instal·lació de TeXlive. La documentació pel GUI es pot trobar a:

https://www.tug.org/texlive/doc/tlmgr.html#GUI-FOR-TLMGR

Abans de fer-lo córrer, però, comprovar que es té instal·lat al sistema  el mòdul Perl/Tk, si no hi fos s'instal·la amb Synaptic.

Per executar el GUI de tlmgr cal obrir una línia de comandaments i escriure:

tlmgr --gui