Troff är ett enkelt men kraftfullt ordbehandlingsprogram för Linux-system. Det låter dig enkelt skapa utskriftsklara dokument genom att kompilera källfiler från kommandoraden. Latex Troff är otroligt lätt och är förinstallerat på de flesta Linux-system. Den här handledningen visar hur du använder Troff för att formatera PDF-dokument i Ubuntu.

Vad är Troff och varför ska man använda det?
I grundbemärkelsen, Troph Det är ett ordbehandlingsprogram som konverterar kodliknande text till utskrivbara dokument. Till skillnad från ordbehandlare använder sig Troff inte av en "WYSIWYG"-modell. Istället kräver det att du använder specifika typer av kod för att hantera din formatering.

En av de största fördelarna med den här metoden är dess enkelhet. En grundläggande Troff-installation innehåller allt du behöver för att skapa ett dokument. Dessutom innebär avsaknaden av ett grafiskt användargränssnitt att du till och med kan skapa ett dokument via SSH.

Tips: Lär dig hur du omdirigerar GUI-applikationer över SSH I Linux.
Installera Troff
Troff ingår ofta som standard i de flesta Linuxdistributioner. Du kan kontrollera om du har det på ditt system genom att köra dess -h-flagga. Detta visar en kort lista över alla flaggor som Troff-installationen accepterar.
troff -h

Det finns fall där distributioner inte paketerar Troff som standard. I det här fallet kan du installera det genom att söka efter paketet. "gruff".

Detta är en återimplementering av Troff- och Nroff-programmen av GNU-projektet, vilken inkluderar ett antal nya och moderna funktioner.
Du kan installera groff i Ubuntu med följande kommando:
sudo apt installera groff

Skapa ditt första Troff-dokument
I likhet med källkoden är varje Troff-dokument en textfil som innehåller instruktioner om hur man skapar ett dokument. Detta inkluderar sidbredd och marginaler, samt tecken- och sidavstånd.

Denna kontrollnivå låter dig manipulera programmet för att skapa alla typer av dokument. För att förenkla detta har Troff-utvecklare skapat "makron" som kondenserar dessa kommandon till ett enklare format.

Ett av de vanligaste makrona du använder i Troff är "millisekunder". Detta skapar ett dokument i artikelformat. Du kan skapa ett "ms"-dokument med hjälp av kommandot touch:
tryck på mitt-första-dokument.ms
Eftersom alla Troff-dokument är textdokument kan du öppna dokumentet med en textredigerare. I mitt fall använder jag vim. Alternativt kan du använda någon av dessa textredigerare för Linux.
vim mitt-första-dokument.ms

Förstå Troff-formatet
Alla Troff-dokument följer en liknande struktur. Varje formateringskommando du utför måste finnas på en separat rad i innehållet du försöker formatera. Således skulle ett typiskt Troff-dokument se ut så här:
.COMMAND1 Detta är en del av innehållet i ett Troff-dokument. COMMAND2 Detta är en annan del av innehållet i ett Troff-dokument.
Två av de mest grundläggande kommandona du kommer att använda på millisekunder är .TL och .PP. Den förra konverterar din text till en rubrik och centrerar den i ditt dokument, medan den senare formaterar din text så att den följer ett styckeliknande mönster.
Till exempel använder följande kodavsnitt både TL- och .PP-kommandon:
.TL Mitt första Troff-dokument .PP Detta är innehåll som jag vill ska se ut som ett stycke i mitt slutliga dokument. Det är inte ett särskilt långt innehåll, men det är mitt första Troff-dokument och det är något jag är stolt över. Det är ungefär tre meningar långt och det ska omsluta dokumentet ordentligt.

Härifrån skapar du ditt dokument genom att skicka din fil till Troff.
groff -ms -Tpdf ./mitt-första-dokument.ms > utdata.pdf

Tips: Om du föredrar något enklare kan du lära dig hur du Att skriva i MLA-format i Google Dokument.
Skapa fetstil, kursiv och understruken text
Precis som i ett vanligt ordbehandlingsprogram erbjuder de flesta Troff-makron ett antal stilkommandon för att anpassa dokumentet. För MS är dessa .B, .I, .UL och .BX.
- Kommando B ändrar texten till fetstil.
- Kommandot .I ändrar text till kursiv stil.
- UL och .BX är kommandon som ritar en understrykning respektive en ruta runt text.
I likhet med kommandona ovan kräver användningen av dessa kommandon i ditt dokument att varje stil separeras på en egen rad:
.TL Mitt första Troff-dokument .PP Detta är .B-innehåll .R som jag vill ska se ut som ett stycke i mitt slutgiltiga dokument. [...]
I det här exemplet skapade jag en ny rad före ordet "innehåll" Jag lade till .B-kommandot för att ändra det till fetstil, skapade sedan en ny rad och lade till .R-kommandot. Detta gör att Troff kan återgå till sin tidigare stil.

Det är viktigt att notera att du alltid behöver lägga till .R-kommandot när du ändrar stilen. Till exempel kommer följande kodavsnitt inte att sluta med .I-kommandot eftersom Troff inte såg .R-filen efter det:
.TL Mitt första Troff-dokument .PP Detta är .Jag är nöjd med att jag vill att det ska se ut som ett stycke i mitt slutgiltiga dokument. [...]

Skapa nya dokumentavsnitt
I likhet med LaTeX stöder Troff även sektionsidentifiering och hierarki, så du behöver inte sortera och matcha nivån för varje rubrik när du redigerar.
För att skapa ett nytt avsnitt i ditt dokument, använd kommandot .NH följt av rubriknamnet.
.TL Mitt första Troff-dokument .NH Min första rubrik .PP Detta är innehåll som jag vill ska se ut som ett stycke i mitt slutliga dokument.

Som standard har varje Troff-rubrik ett nivåvärde som avgör hur programmet bygger och visar sitt innehåll i det slutliga dokumentet. Du kan ändra detta värde för att justera rubriknivån.
Till exempel skapar följande en nivå 2-adress direkt under originalet:
.TL Mitt första Troff-dokument .NH Min första rubrik .NH 2 Min första underrubrik .PP Detta är innehåll som jag vill ska se ut som ett stycke i mitt slutliga dokument.

Förutom vanliga numrerade rubriker kan Troff även skapa tomma rubriker som fortfarande följer dokumentnivåhierarkin.
För att göra detta, ersätt .NH med SH-kommandot:
.TL Mitt första Troff-dokument .SH Min första rubrik .SH 2 Min första underrubrik .PP Detta är innehåll som jag vill ska se ut som ett stycke i mitt slutliga dokument.

Tips: Lär dig hur du Ändra marginaler i Google Dokument.
Skapa listor i Troff
Troffs enkelhet låter dig också anpassa dess beteende efter dina behov. Till exempel finns menyer inte som standard i Troff- eller ms-makron. Du kan dock fortfarande skapa en meny genom att kombinera några ms-kommandon.
Varje lista i Troff består av tre delar: ett indrag, en punktlista och innehållet. För att skapa ett indrag, använd kommandona .RS och .RE. Detta kommer att indentera den aktuella indragsnivån för all text inuti med fyra mellanslag.
RS Detta är min första vara. .RE

Med IP-kommandot kan du också ange en anpassad punkt och avståndet mellan den och din text. I det här fallet ställer jag in min punkt till "[1]" och ger den fyra mellanslag.
.RS .IP [1] 4 Detta är mitt första objekt. .RE

.RS .IP [1] 4 Detta är min första vara. .IP [2] 4 Detta är min andra vara. .IP [3] 4 Detta är min tredje vara. .RE

Automatisera slutligen processen genom att skapa ett anpassat makro. Till exempel länkar följande kodavsnitt mitt IP-kommando till QW.
.de QW .IP [-] 4 .. .RS .QW Detta är min första vara. .QW Detta är min andra vara. .QW Detta är min tredje vara. .RE

Skapa tabeller med preprocessorer i Troff
En av de udda sakerna med Troff är att de flesta av dess funktioner finns som "inledande behandlingar"För det mesta är dessa färdiga binärfiler som fungerar genom att skapa Förbehandlingscontainerskript och konvertera den till lågnivå-Troff-kod.

Tbl är ett bra exempel på en Troff-förbehandlare. Det är ett program som hanterar tabeller i ett dokument. En grundläggande Tbl-container ser ut så här:
.TS allbox ; cc c. artikel1 artikel2 artikel3 artikel4 artikel5 artikel6 .TE
- Kommandona .TS och .TE talar om för Tbl att detta är en miljö den kan läsa.
- Den andra raden anger hur tabellen ska formateras.
- Den tredje raden är ett mellanslagsavgränsat fält som anger kolumnstorleken och justeringen av tabellen.
- Den fjärde och femte raden är tabbavgränsade fält som innehåller innehållet i din tabell.

Att kompilera ett dokument med Tbl skiljer sig lite från att kompilera en vanlig Troff-fil. Först, ladda upp din fil:
tbl mitt-första-dokument.ms > förbearbetad.ms
Mata sedan in programmets utdata till Troff:
groff -ms -Tpdf ./preprocessed.ms > utdata.pdf
Slutligen, automatisera den här processen med UNIX-pipes:
tbl mitt-första-dokument.ms | groff -ms -Tpdf > output.pdf

Vanliga frågor:
F1: Är det möjligt att använda Troff i Windows?
svar. Som standard är Troff och Groff inte officiellt portade till Windows. Du kan dock fortfarande använda Groff med andra GNU-verktyg genom att Installera Windows-undersystemet för Linux.
F2: Har Troff en funktion för att spåra bibliografier?
svar. Ja. Referensering är en enkel förbehandlare som använder en extern bibliografifil för att automatiskt spåra referenser i ett Troff-dokument. Du kan lära dig mer om hur det fungerar genom att besöka dess manualsida genom att köra man referencing.
F3: Hur kan jag åtgärda felet "saknas DESC" när jag kompilerar Troff?
svar. Det här problemet orsakas troligen av ett saknat beroende på ditt system eller en inkompatibel versionsfil. För att åtgärda detta, installera lämpligt groff-paket från din distributions arkiv.



