Tip

MS Word naar LaTeX omzetten

Tags:

Het is een veelgestelde vraag: kan ik mijn MS Word document converteren naar een LaTeX document? Brecht Neyrinck liet weten dat na verschillende manieren geprobeerd te hebben, volgende method het best werkt:

In LibreOffice of OpenOffice open je je .doc of .docx bestand en sla je het op als een odt bestand. Vervolgens kun je Lyx dit odt bestand laten importeren en omzetten naar LaTeX code. Met tabellen heeft het nog wat moeite maar figuren en onderverdelingen worden perfect omgezet.

Voor tabellen uit MS Excel of LibreCalc bestaan er speciale programma die een tabel omzetten naar LaTeX. Lees hiervoor volgende tips: tip 1, tip 2 en tip 3.

Als je zelf een betere manier kent om dit te doen, laat het gerust weten.

Tip: Symboolherkenning voor LaTeX

Tags:

Voor zo goed als elk mogelijk symbool bestaat er wel een LaTeX package die het mogelijk maakt dat je het symbool in je document gebruikt. De moeilijkheid is dikwijls om te vinden welk package je moet gebruiken. Er is de gekende "The Comprehensive LaTeX Symbol list" maar het kan wel even duren tegen dat je je symbool hebt gevonden in dit document. Gelukkig is er tegenwoordig een snellere manier: Detexify2. Op deze website kun je je symbool gewoon tekenen en hij vertelt je dan welk packages en welk commando je moet gebruiken om dit symbool te reproduceren.

April 2010: Cross referenties maken tussen verschillende pdf's

Tags:

In deze tip tonen we hoe je een referentie kunt maken naar een label in een ander LaTeX bestand. Je kunt dus een link maken naar een label in een andere pdf. We gebruiken hiervoor het package xr en hyper-xr. Stel je werkt in een LaTeX file en je wilt een referentie maken naar een label in het bestand ander.tex. Voeg dan het volgende toe aan de preamble:

\usepackage{xr}
\externaldocument{ander}

Je kunt nog gewoon naar alle labels uit ander.tex refereren via \ref{} en \pageref{}. Je kunt ook nog \nameref{} gebruiken om naar de naam van het bestand te verwijzen.
Als er een label dubbel zou bestaan in zowel ander.tex als in het huidige bestand, dan zal LaTeX een foutmelding geven. Je kunt dit oplossen door een prefix te gebruiken:

\externaldocumente[prefix-]{ander}

Alle labels uit ander.tex kun je nu opvragen door de prefix voor de label naam te plaatsen in \ref{}, bijvoorbeeld: \ref{prefix-label1}.

Als je nu ook nog het package hyper-xr inlaad (doe dit voor hyperref!)

\usepackage{xr-hyper} 
\usepackage{hyperref}

dan kun je gewoon links maken naar een ander pdf document.

Als je een idee hebt voor een volgende tip of een opmerking hoe de huidige tips te verbeteren, laat die dan gerust achter bij de commentaar.

Februari 2010: een woorden- of afkortingenlijst maken

Tags:

Aangezien de laatste tip al van een tijdje geleden dateert, hoog tijd voor een nieuwe tip van de maand! Deze keer tonen we hoe je makkelijk een woordenlijst of afkortingenlijst maakt in LaTeX met behulp van het package glossaries. Dit package is de opvolger van glossary. Als je de texlive distributie gebruikt zul je dit package waarschijnelijk nog zelf moeten installeren.

Het package laad je via

\usepackage{hyperref}
\usepackage[toc]{glossaries}

Let hierbij op dat je het altijd pas laad na hyperref. De optie toc zorgt ervoor dat de woordenlijst wordt opgenomen in de inhoudstafel. Een woord toevoegen aan de woordenlijst doe je met het volgende commando in de preamble:

\newglossaryentry{wg}{name=Werkgroep,description={een groep mensen die rond een bepaald thema werkt}

Het makkelijkste is om alle definities van woorden in een apart bestand, woordenlijst.tex te steken en dat dan via \input{woordenlijst} in te laden in de preamble. Om een woord nu te gebruiken in het document doe je

\gls{wg}

Nu moet je nog de woordenlijst laten maken. Je moet hiervoor in de preamble, na de definities, het commando

\makeglossaries

toevoegen. Op de plaats waar je de woordenlijst wilt laten komen type je

\printglossaries

 Als je nu het document compileert, dan krijg je 2 extra bestanden: document.glo en document.ist. Deze moet doorgeven aan het perl script makeglossaries:

makeglossaries document

Dit zal 2 bijkomende bestanden genereren met de eigenlijke woordenlijst: document.glg en document.gls. Compileer je LaTeX document nu nog 2 keer en je hebt een woordelijst gemaakt.

Indien je TexNicCenter gebruikt kun je het makeglossaries commando laten uitvoeren als volgt: je voegt een item toe aan de "postprocessor" tab bij "LaTeX=>PDF" profiel. Het item zal zeer gelijkaardig zijn aan makeindex. Het commando dat je opgeeft is makeglossaries. De argumenten die je meegeeft zijn:  -s "%bm.ist" -o "%bm.gls" -t "%bm.glg" "%bm.glo"

Het package glossaries kan echter nog veel meer. Je kunt ook afkortingen gebruiken als volgt:

\newacronym{pc}{PC}{Personal Computer}

Dit werkt net zoals daarstraks (met het commando \gls{pc}) maar zal de eerste keer dat je het gebruikt het volgende geven: Personal Computer (PC). In alle volgende keren zal er gewoon PC staan.

Je kunt bij de definitie van woorden ook nog informatie over het sorten van de woorden meegeven en meer. Wiskunde kun je ook perfect gebruiken in de definities. Een symbolen lijst maken is ook mogelijk. Het loont zeker de moeite om de documentatie van het package glossaries eens door te nemen. Je vind deze hier. Een uitgebreidere introductie tot glossaries vind je ook hier (inclusief een stap voor stap uitleg hoe je het gebruikt met TexNicCenter).

Als je zelf nog een idee hebt voor een tip, laat het dan gerust weten.

September 2007: PGF/TikZ

Tags:

Geen paniek, in de titel staat geen Chinees, al zou dat wel perfect kunnen met LaTeX natuurlijk. PGF/TikZ is een pakket (te vinden op CTAN) dat toelaat om hoge kwaliteitsfiguren aan te maken in een LaTeX-document zonder dat je deze apart moet genereren zoals bij Asymptote. Zo bijvoorbeeld GNUplot om grafieken te maken, maar ook tal van andere tools om bijvoorbeeld 3D-figuren, scatterplots, blokdiagrammen, mindmaps,... in te voegen. Deze figuren worden telkens aangemaakt als pdf-file op een vectoriële, schaalbare manier waardoor de kwaliteit altijd optimaal is. Een collectie voorbeeldjes vind je hier.
blokdiagram

November 2006: Scheikunde in LaTeX

Tags:

De laatste "tip van de maand" dateert wegens tijdsgebrek alweer van een hele tijd geleden. Tijd om hier verandering in te brengen! De tip van deze maand is er eentje speciaal voor de scheikundigen onder ons, of de anderen die wel eens met scheikundige symbolen of reacties in aanraking komen bij het werken aan een LaTeX-document. Voor hen is er de package mhchem. Deze package biedt een syntax om dergelijke formules op een uiterst eenvoudige manier in te voeren met tal van mogelijkheden. Voor een volledige uitleg over de werking verwijs ik naar de website van de package, meerbepaald naar de handleiding. Let wel op dat je de meest recente versie gebruikt, wat je doet door \usepackage[version=3]{mhchem} Ik kan het echter niet laten met enkele voorbeeldjes de kracht van dit pakket aan te geven. Je vindt hieronder enkele chemische formules met daarnaast de LaTeX-code.

formule \cf{(NH4)2S}
formule \cf{^{227}_{90}Th+}
formule \cf{Fe`{III}[Fe`{III}Fe`{II}(CN)6]3}
formule \ce{SO4^2- + Ba^2+ -> BaSO4 v}
formule \ce{Zn^2+
<=>[\ce{+ 2OH-}][\ce{+ 2H+}]
{\underset{\text{amphoteres Hydroxid}}{\ce{Zn(OH)2 v}}} %group!
<=>[\ce{+ 2OH-}][\ce{+ 2H+}]
{\underset{\text{Hydroxozikat}}{\cf{[Zn(OH)4]^2-}}}% group!
}
formule \ce{{{x\,}} Na(NH4)HPO4 ->[\Delta]
(NaPO3)_{{x}} + {{x\,}} NH3 ^ + {{x\,}} H2O}

Juli 2006: Enkele handige programmaatjes voor vergelijkingen en tabellen

Tags:

TeXaide

Het invoeren van vergelijkingen in LaTeX is uiterst straightforward: gewoon je formule intikken. Dit is meestal heel effectief, maar soms kan je bij een complexe vergelijking wel eens het overzicht verliezen en mag je een paar keer compileren en aanpassen voor je het resultaat bekomt dat je wenst. Ook voor nieuwe gebruikers, die de LaTeX-codes nog niet goed gewend zijn, kan dit een drempel vormen. Hier kan het programma TeXaide te hulp komen. Het laat je toe om vergelijkingen op te bouwen op een grafische manier, zoals de vergelijkingseditor die je vindt in Microsoft Office, en de resulterende code te kopiëren naar je LaTeX-bestand. Jammergenoeg is het programma enkel beschikbaar voor Windows.

LaTable

Tabellen in LaTeX zijn dan weer andere koek: het kan wel eens complex zijn om op te stellen en je moet er goed je hoofd bij houden. Wanneer het om grote, ingewikkelde tabellen gaat die reeds beschikbaar zijn in een spreadsheet, kan je deze eenvoudig importeren met de tools aangehaald in tip van april. Wanneer je tabel nog niet beschikbaar is in een spreadsheet, kan het echter handiger zijn om te werken met LaTable. Hiermee kan je op eenvoudige, grafische manier een tabel aanmaken. De LaTeX-code is onmiddellijk zichtbaar en kan je direct kopiëren en plakken in je LaTeX-bestand. Dit programma is eveneens enkel beschikbaar voor Windows.

April 2006 tris: Excel2Latex voor Excel 2003

Tags:

De vorige tips van april gingen over het invoeren van tabellen uit Microsoft Excel en OpenOffice.org in LaTeX. Blijkbaar is de aangeleverde macro voor Excel niet compatibel met versie 2003 en verdwijnen er tabbladen. Steven Pickavet wist echter te melden dat er een nieuwe versie van deze tool bestaat die vlot werkt onder Office 2003. Je kan deze hier vinden, onderaan als tweede programma.

April 2006 bis: OpenOffice.org Calc tabellen invoegen in LaTeX

Tags:

De eerste tip van april ging over het invoeren van tabellen uit Microsoft Excel in LaTeX. Uiteraard kan je ook tabellen vanuit OpenOffice.org Calc exporteren naar LaTeX, weliswaar met een andere macro. Ward Poelmans bezorgde me dan ook een verwijzing naar calc2latex.sourceforge.net. Je kan er een macro vinden die je kan installeren in Calc, alsook uitgebreide uitleg met screenshots hoe je dit bekomt, zowel voor OpenOffice.org 1.x als voor versie 2.0. Deze macro is ook in staat om tabellen met samengevoegde cellen (zowel horizontaal als vertikaal) te exporteren en ondersteunt ook bepaalde opmaakeigenschappen. In hoeverre kleur overgenomen wordt, is niet bekend.

April 2006: Microsoft Excel tabellen invoegen in LaTeX

Tags:

Tabellen invoeren in LaTeX, het gaat wel goed maar bij complexe tabellen wordt het al snel iets moeilijker om het overzicht te bewaren bij het intikken. Als je dan nog wat wil beginnen knoeien met kleurtjes, samengevoegde cellen, vette lijnen of andere opmaak, wordt het snel helemaal een zootje. Op dat vlak is het veel makkelijker werken met een spreadsheet zoals Microsoft Excel of OpenOffice.org. Ook wanneer je in een van deze programma's berekeningen maakt waarvan je het resultaat in LaTeX wil overnemen, is het niet zo handig deze resultaten stuk voor stuk te moeten overkopiëren.

Welnu, het is hier dat het pakket xl2latex te hulp komt. Dit pakket is een macro die in Excel een knopje toevoegt waarmee je de geselecteerde tabel exporteert naar LaTeX-code. Het is gebasseerd op excel2latex (van Joachim Marder) met als opmerkelijke feature dat hier vrijwel alle opmaak (kleuren, randen,...) overgenomen wordt.

Hoe ga je nu concreet te werk? Allereerst dien je de exportfunctie beschikbaar te maken via een knopje in Excel. Hiervoor surf je naar deze locatie en download je het bestandje xl2latex.bas en sla je het ergens op je pc op. Vervolgens start je Excel en open je een leeg bestand (of een bestand waar je andere macro's in bewaart) en schakel je het gebruik van macro's aan. Dit staat immers standaard uitgeschakeld om veiligheidsredenen. Hiervoor ga je naar Extra, Macro's, Beveiliging en zet je het niveau op gemiddeld. Vanaf dan zal Excel bij het openen van een document met macro's telkens vragen of je de macro wil toelaten of niet. Om nu deze nieuwe macro in te voeren, kies je voor Extras, Macro's, Visual Basic Editor. In deze editor kies je vervolgens voor Bestand, Importeren. Importeer op deze manier het bestandje dat je daarnet gedownloaded hebt. Sluit de Visual Basic Editor en sla het bestand op waar je maar wil. Nu zou je het knopje LaTeX export moeten zien in de nieuwe LaTeX werkbalk.

Om een aangemaakte tabel te exporteren, ga je als volgt te werk: selecteer de tabel en druk op de Export LaTeX knop van daarnet. Er zal gevraagd worden waar je het bestand wil opslaan. Je slaat het best op in de map waarin de rest van de LaTeX-bestanden staat waaraan je aan het werken bent. Vervolgens open je het LaTeX-bestand waarin je de tabel wil importeren en maak je een table-omgeving aan. Je kan ook een bijhorende caption ingeven. Echter, in plaats van manueel de cellen en hun inhoud in te geven, plaats je nu de regel \input{bestandje} waar bestandje uiteraard vervangen wordt door de naam van het bestand dat je zonet aangemaakt hebt vanuit Excel. Let wel: indien je kleurtjes gebruikt, dient \usepackage{colortbl} in de preamble te staan.

De macro die de tabellen exporteert, is ontworpen voor Excel versie 97, maar werkt normaal ook voor recentere versies en is oa getest in Excel 2000. Ik heb nergens een versie voor OpenOffice.org gevonden, doch normaal zou het mogelijk moeten zijn Excel-macro's om te zetten naar OOo compatibele exemplaren. Mensen die hier ervaring mee hebben, worden vriendelijk verzocht contact op te nemen.

Met dank aan Jan Bertrem

Maart 2006: Lange tabellen liggend afdrukken

Tags:

Het gebeurt wel eens: een bepaalde figuur of tabel is redelijk breed en je zou die dan ook graag (als enige pagina) liggend afdrukken (of in pdf plaatsen) terwijl de rest van je document staand afgedrukt dient te worden. Dit valt eenvoudig op te lossen door gebruik te maken van de package landscape. Je dient dit pakket eerst in te laden door bovenaan, in de preamble, de lijn \usepackage{lscape} te vermelden. Vervolgens kan je in je document een landscape-omgeving aanmaken door deze af te bakenen met \begin{landscape} en \end{landscape}. Alles wat je hiertussen plaatst, zal liggend afgedrukt worden.

Een ander voorkomend probleem, is dat van de lange tabellen: een tabel kan zodanig lang worden dat ze niet meer op één pagina past. Je kan echter LaTeX deze tabellen automatisch laten opsplitsen over meerdere pagina's. Hiervoor gebruik je de omgeving longtable. Deze werkt net zoals de normale tabular-omgeving, met dezelfde parameters, maar biedt wat extra functionaliteit. Om deze omgeving te gebruiken, dien je de package in te laden in de preamble dmv \usepackage{longtable} en dien je de tabel te beginnen en eindigen met \begin{longtable} en \end{longtable} ipv de overeenkomstige tabular-equivalenten. Wil je een heading (de titels van elke tabel) bovenaan de tabel op elke pagina laten verschijnen, dan ga je op een gelijkaardige manier te werk als in de tabular-omgeving, maar vervang je de \\ aan het einde van de lijn door \endhead. Wil je op de eerste pagina een verschillende header, dan wordt dit \endfirsthead. Meer informatie over het gebruik van het pakket longtable en enkele uitgebreide voorbeelden kan je hier vinden.

Uiteraard vallen beide problemen en oplossingen ook te combineren. Stel bijvoorbeeld dat je een grote tabel hebt met een groot aantal (of brede) kolommen: je kan deze dan met landscape draaien en vervolgens met longtable over verschillende pagina's spreiden.

Met bovenstaande info kan je een figuur of tabel liggend afdrukken. Wil je een figuur of tabel echter draaien over een willekeurige hoek, bijvoorbeeld 45°, of liggend maar in de tegengestelde richting, dan kan je gebruik maken van het pakket rotating. Meer informatie vind je hier.

Februari 2006: Van EndNote naar BibTeX

Tags:

EndNote is een veelgebruikt pakket aan onze universiteit voor het bijhouden van referenties, waar ook ondersteuning voor geleverd wordt door de helpdesk. In LaTeX maak je echter gebruik van BibTeX voor het bijhouden en gebruiken van referenties. Als je referenties momenteel bijgehouden worden in een EndNote bibliotheek, is het maar een kleine moeite om deze te exporteren of om te zetten naar een .bib bestand voor gebruik in LaTeX/BibTeX. Hiervoor ga je als volgt te werk.

  1. Open EndNote en selecteer de bibliotheek met de referenties die je wil exporteren.
  2. Selecteer de referenties die je wil exporteren en kies vervolgens Show Selected References in het References menu. Indien je alle referenties van de huidige bibliotheek wil exporteren, kies je voor Show All References in datzelfde menu References.
  3. Controleer of elke referentie een unieke naam bevat in het Label veld en pas aan indien nodig. Je kiest best een eenvoudig te onthouden naam in een consistent formaat, bijvoorbeeld 'Auteur:Jaar' zodat je deze makkelijk kan oproepen wanneer je citeert in LaTeX (mbv het commando \cite). Dit label wordt immers de BibTeX sleutel.
  4. Indien gewenst, kan je de referenties sorteren via Sort References in het References menu.
  5. Vermijd speciale karakters zoals &, % of $. Gebruik best ook geen karakters met accenten (zoals é of ê) in het label.
  6. Maak de BibTeX exportstijl beschikbaar. Kies hiervoor Edit, Output styles, Open Styles Manager. Zet het selectievakje bij BibTeX Export aan. Indien deze stijl nog niet geïnstalleerd is op je systeem, download je dit bestand dat je in C:\Program Files\EndNote\Styles plaatst waarna je EndNote even opnieuw opstart en herbegint vanaf stap 1.
  7. Selecteer via Edit, Output Styles de BibTeX export stijl.
  8. Kies File, Export.
  9. Selecteer het bestandstype voor de exportfile. Kies text only voor gebruik in BibTeX.
  10. Geef het bestand dezelfde naam als je LaTeX-bronbestand, doch met de extentie .bib en sla het op in dezelfde directory als je LaTeX-bestand.
  11. Je kan het bestand nu gebruiken zoals beschreven in de BibTeX- of LaTeX-documentatie.

Januari 2006: kleurenschema's voor broncode in LaTeX

Tags:

Wie al eens een programma moet schrijven in een of andere programmeertaal (C, C++, Java, Matlab, Cobol,...) gebruikt daarvoor liefst een editor die aan de code een zeker kleurenschema meegeeft. Zo wordt commentaar in een zeker kleur gezet, variabelen in een ander kleur, en kan gemakkelijk opgemerkt worden of men een haakje of iets dergelijks vergeten is. Nu dient dergelijke code soms ingevoegd te worden in een LaTeX-document, normaal dmv de verbatim-omgeving, waarbij men helaas dat kleurenschema verliest. Nu kan je echter gebruik maken van de omgeving lstlisting in het pakket listings waardoor deze kleuren ongeveer behouden blijven. Deze omgeving kan overweg met code van een groot aantal programmeertalen waaronder Fortran, C, C++, csh, HTML, Java, Matlab, Mathematica, Pascal, Perl, SQL, XML, Delphi, PHP, VBScript, SAS en nog veel meer, zelfs LaTeX zelf. Het gebruik is vrij eenvoudig en gaat als volgt:

  1. Allereerst dien je het listing-pakket in te laden, dus in de preamble voeg je volgende toe: \usepackage{listings}
  2. Selecteer de taal van de broncode die je wenst in te voegen: \lstset{language=TeX}
  3. Open de lstlisting-omgeving: \begin{lstlisting}
  4. Plaats vervolgens je broncode of importeer het bestand
  5. Sluit de lstlisting-omgeving: \end{lstlisting}

Je kan de taalparameter ook meegeven bij het openen van de omgeving, bijvoorbeeld \begin{lstlisting}[language=XML,label={labeltje},caption={De caption}].

Voor meer informatie kan je altijd terecht in de documentatie meegeleverd met het pakket, of in dit pdf-bestand. Je kan er ook altijd (de broncode van) de cursus van Gaspard eens op naslaan, waar dit pakket gebruikt werd om de informatie te illustreren met een voorbeeld.

Inhoud syndiceren