Hoe Troff te gebruiken om PDF-documenten in Linux te formatteren

Troff is een eenvoudige maar krachtige document-tekstverwerker voor Linux-systemen. Hiermee kunt u eenvoudig drukklare documenten maken door bronbestanden vanaf de opdrachtregel te compileren. in tegenstelling tot Latex Troff is ongelooflijk licht van gewicht en wordt vooraf geïnstalleerd op de meeste Linux-systemen. Deze zelfstudie laat zien hoe u Troff gebruikt om PDF-documenten in Ubuntu op te maken.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Wat is Troff en waarom gebruik je het?

in de meest elementaire zin, trofee Het is een tekstverwerkingsprogramma dat scripts die op code lijken, omzet in afdrukbare documenten. In tegenstelling tot tekstverwerkers vertrouwt Troff niet op het "WYSIWYG"-model. In plaats daarvan moet u bepaalde soorten code gebruiken om uw opmaak te verwerken.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Eenvoud is een van de grootste voordelen van deze stijl. De basisinstallatie van Troff bevat alles wat u nodig hebt om een ​​document te maken. Bovendien betekent het ontbreken van een grafische gebruikersinterface dat u zelfs via SSH een document kunt maken.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Tip: leer hoe u kunt doorsturen GUI-applicaties via SSH onder Linux.

Troff installeren

Troff wordt vaak standaard gebundeld in de meeste Linux-distributies. U kunt controleren of u het in uw systeem hebt door de vlag -h uit te voeren. Dit toont een korte lijst van alle tags die de installatie van Troff accepteert.

trof -h

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Er zijn gevallen waarin distributies Troff niet standaard compileren. In dit geval kunt u het installeren door naar het pakket te zoeken "grof".

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Dit is een herimplementatie van de Troff- en Nroff-programma's door het GNU-project, dat een aantal nieuwe en bijgewerkte functies bevat.

U kunt groff in Ubuntu installeren met het volgende commando:

sudo apt install groff

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Maak het eerste Troff-document

Net als de broncode is elk Troff-document een tekstbestand met instructies voor het maken van een document. Dit omvat zowel paginabreedte en marge als karakter- en pagina-afstand.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Met dit controleniveau kunt u het programma manipuleren om elk type document te maken. Om het eenvoudig te maken, hebben de ontwikkelaars van Troff "macro's" gemaakt die deze commando's samenvatten in een eenvoudigere syntaxis.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories
Een van de meest voorkomende macro's die u in Troff zult gebruiken, is Milliseconds. Er wordt een document in essaystijl gemaakt. U kunt een ms-document maken met de aanraakopdracht:

raak mijn-eerste-document.ms aan

Aangezien alle Troff-documenten tekst zijn, kunt u het document openen met een teksteditor. In mijn geval gebruik ik vim. Als alternatief kunt u een van deze teksteditors voor Linux gebruiken.

vim mijn-eerste-document.ms

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Het Troff-formaat begrijpen

Alle documenten van Troff volgen een vergelijkbare structuur. Elk opmaakcommando dat u uitvoert, moet op een aparte regel staan ​​in de inhoud die het probeert op te maken. Als zodanig zou een typisch Troff-document er als volgt uitzien:

.COMMAND1 Dit is een stuk inhoud in een Troff-document. .COMMAND2 Dit is een ander stuk inhoud in een Troff-document.

Twee van de meest elementaire opdrachten die u in milliseconden zult gebruiken, zijn TL en .PP. De eerste converteert uw tekst naar een kop en centreert deze in uw document, terwijl de laatste uw tekst opmaakt om een ​​alinea-achtige stijl te volgen.

Lees ook:  Hoe OVA-bestanden in VirtualBox te importeren en exporteren

Het volgende fragment gebruikt bijvoorbeeld zowel de TL- als de .PP-opdracht:

.TL Mijn eerste Troff-document .PP Dit is inhoud waarvan ik wil dat het eruitziet als een alinea in mijn uiteindelijke document. Het is geen erg lange inhoud, maar het is mijn eerste Troff-document en het is iets waar ik trots op ben. Het is ongeveer drie zinnen lang en het zou goed om het document heen moeten wikkelen.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Maak vanaf hier uw document door uw bestand door te geven aan de software van Troff.

groff -ms -Tpdf ./mijn-eerste-document.ms > uitvoer.pdf

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Tip: als je liever iets eenvoudigers doet, leer dan hoe Schrijven in MLA-formaat in Google Docs.

Maak vetgedrukte, cursieve en onderstreepte tekst

Net als een gewone tekstverwerker bieden de meeste Troff-macro's een aantal stijlopdrachten voor het aanpassen van documenten. Voor ms zijn dit .B en . Ik en. UL en .BX.

  • De opdracht B verandert de tekst in vet.
  • De opdracht .I verandert de tekst in cursief.
  • UL en. BX zijn twee commando's die respectievelijk een onderstreping en een kader rond tekst tekenen.

Net als bij de bovenstaande opdrachten, vereist het gebruik van deze opdrachten in uw document dat elke stijl op een eigen regel wordt gescheiden:

.TL Mijn eerste Troff-document .PP Dit is .B-inhoud .R die ik eruit wil laten zien als een alinea in mijn uiteindelijke document. [...]

In dit voorbeeld heb ik een nieuwe regel voor een woord gemaakt "inhoud" En ik heb de opdracht .B toegevoegd om deze vetgedrukt te maken, daarna heb ik een nieuwe regel gemaakt en de opdracht .R toegevoegd. Hierdoor kan Troff terugkeren naar zijn vorige techniek.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Het is belangrijk op te merken dat u altijd de opdracht .R moet toevoegen wanneer u de stijl wijzigt. Het volgende fragment beëindigt bijvoorbeeld het .I-commando niet omdat Troff het .R-bestand erna niet heeft gezien:

.TL Mijn eerste Troff-document .PP Dit is de inhoud die ik wil weergeven als een alinea in mijn laatste document. [...]

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Maak nieuwe documentsecties

Net als LaTeX ondersteunt Troff ook partitiedetectie en hiërarchie, dus u hoeft het niveau van elke header niet te ordenen en overeen te laten komen bij het bewerken.

Lees ook:  Hoe u uw server kunt beschermen met Fail2Ban in Linux

Gebruik de opdracht .NH gevolgd door uw kopnaam om een ​​nieuwe sectie in uw document te maken.

.TL Mijn eerste Troff-document .NH Mijn eerste kop .PP Dit is inhoud waarvan ik wil dat het eruitziet als een alinea in mijn uiteindelijke document.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Elke Troff-header bevat standaard een niveauwaarde die bepaalt hoe het programma is opgebouwd en de inhoud ervan wordt weergegeven in het uiteindelijke document. Wetende dat u deze waarde kunt wijzigen om het kopniveau aan te passen.

Het volgende creëert bijvoorbeeld een niveau 2-adres net onder het bovenliggende item:

.TL Mijn eerste Troff-document .NH Mijn eerste kop .NH 2 Mijn eerste subkop .PP Dit is inhoud waarvan ik wil dat het eruitziet als een alinea in mijn laatste document.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Afgezien van de reguliere genummerde headers, kan Troff ook lege headers maken die nog steeds de hiërarchie op documentniveau volgen.

Vervang hiervoor .NH door het SH-commando:

.TL Mijn eerste Troff-document .SH Mijn eerste kop .SH 2 Mijn eerste subkop .PP Dit is inhoud waarvan ik wil dat het eruitziet als een alinea in mijn uiteindelijke document.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Tip: leer hoe Wijzig marges in Google Docs.

Maak lijsten in Troff

De eenvoud van Troff stelt je ook in staat haar gedrag te transformeren naar wat je maar wilt. Lijsten komen bijvoorbeeld niet standaard op Troff- of ms-macro's. Desondanks kun je toch een lijst maken door een paar ms-commando's te combineren.

Elke lijst in Troff bestaat uit drie delen: inspringen, opsommingstekens en inhoud. Gebruik de opdrachten .rs en .rs om een ​​inspringing te maken. MET BETREKKING TOT. Hierdoor springt het huidige inspringingsniveau van elke tekst daarin met vier spaties in.

.RS Dit is mijn eerste item. .MET BETREKKING TOT

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categoriesMaak vervolgens het opsommingsteken voor uw menu-item met de .IP. Dit is een opdracht Alinea-inspringing die de linkermarge van de tekst vastzet op een specifieke breedte.

Met de IP-opdracht kunt u ook een aangepast opsommingsteken instellen en de ruimte ertussen en uw tekst. In dit geval zou ik mijn opsommingsteken instellen op "[1]" en vier spaties geven.

.RS .IP [1] 4 Dit is mijn eerste item. .MET BETREKKING TOT

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categoriesKopieer en plak nu uw IP-opdracht om extra menu-items te maken.

.RS .IP [1] 4 Dit is mijn eerste item. .IP [2] 4 Dit is mijn tweede item. .IP [3] 4 Dit is mijn derde item. .MET BETREKKING TOT

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Automatiseer ten slotte dit proces door een aangepaste macro te maken. Het volgende fragment koppelt bijvoorbeeld mijn IP-opdracht aan QW.

.de QW .IP [-] 4 .. .RS .QW Dit is mijn eerste item. .QW Dit is mijn tweede item. .QW Dit is mijn derde item. .MET BETREKKING TOT

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Maak tabellen met preprocessors in Troff

Een van de vreemde dingen aan Troff is dat de meeste functies er zijn als "Primaire behandelingen". Voor het grootste deel zijn dit binaire bestanden buiten het programma die werken door te creëren "Preprocessor-containerscripts" en converteer het naar Troff-code op laag niveau.

Lees ook:  Hoe Ubuntu eruit kan zien als macOS Big Sur

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Tbl is een goed voorbeeld van een Troff-preprocessor. Het is een programma dat tabellen in een document beheert. De standaard Tbl-container ziet er als volgt uit:

.TS allbox ; cc c. item 1 artikel2 artikel3 artikel4 artikel5 item6.TE
  • De commando's .TS en .TE vertellen Tbl dat dit een omgeving is die het kan lezen.
  • De tweede regel vertelt het programma hoe deze tabel moet worden opgemaakt.
  • De derde regel is een door spaties gescheiden veld dat het aantal kolommen en de uitlijning van uw tabel definieert.
  • De vierde en vijfde regel zijn door tabs gescheiden velden die de inhoud van uw tabel bevatten.

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Een document samenstellen met Tbl is iets anders dan een gewoon Troff-bestand. Upload eerst uw bestand:

tbl mijn-eerste-document.ms > preprocessed.ms

Voer vervolgens de uitvoer van het programma naar Troff:

groff -ms -Tpdf ./preprocessed.ms > uitvoer.pdf

Automatiseer ten slotte dit proces met behulp van UNIX-pipes:

tbl mijn-eerste-document.ms | groff -ms -Tpdf > uitvoer.pdf

Hoe Troff te gebruiken om PDF-documenten op te maken in Linux - %categories

Veel Gestelde Vragen:

V1: Is het mogelijk om Troff in Windows te gebruiken?

antwoord. Troff en Groff zijn standaard niet officieel overgezet naar Windows. Desondanks kunt u Groff nog steeds gebruiken met andere GNU-tools door Installeer Windows-subsysteem voor Linux.

V2: Heeft Troff een functie voor het bijhouden van bibliografieën?

antwoord. Ja. Referral is een eenvoudige preprocessor die een extern bibliografiebestand gebruikt om automatisch referenties in een Troff-document bij te houden. U kunt meer leren over hoe het werkt door de man-pagina te bezoeken door man referrer uit te voeren.

V3: Hoe kan ik de "ontbrekende DESC"-fout oplossen bij het compileren van Troff?

antwoord. Dit probleem is waarschijnlijk te wijten aan een ontbrekende afhankelijkheid in uw systeem of een niet-overeenkomend versiebestand. Om dit op te lossen, installeert u het juiste groff-pakket uit de repository van uw distributie.

Dit vind je misschien ook leuk