Troff er en enkel, men kraftig dokumenttekstbehandler for Linux-systemer. Den lar deg enkelt lage utskriftsklare dokumenter ved å kompilere kildefiler fra kommandolinjen. I motsetning til LaTeX Troff er utrolig lett og kommer forhåndsinstallert på de fleste Linux-systemer. Denne opplæringen viser deg hvordan du bruker Troff til å formatere PDF-dokumenter i Ubuntu.
Hva er Troff og hvorfor bruker du det?
i den mest grunnleggende forstand, Troff Det er et tekstbehandlingsprogram som konverterer skript som ser ut som kode til utskrivbare dokumenter. I motsetning til tekstbehandlere, stoler ikke Troff på "WYSIWYG"-modellen. I stedet krever det at du bruker visse typer kode for å håndtere formateringen.
Enkelhet er en av de største fordelene med denne stilen. Troffs grunnleggende installasjon vil inneholde alt du trenger for å lage et dokument. Dessuten betyr mangelen på et grafisk brukergrensesnitt at du kan lage et dokument selv over SSH.
Tips: Lær hvordan du videresender GUI-applikasjoner over SSH i Linux.
Troff installasjon
Troff er ofte samlet som standard i de fleste Linux-distribusjoner. Du kan sjekke om du har det i systemet ditt ved å kjøre -h-flagget. Dette vil vise en kort liste over alle taggene som Troffs installasjon godtar.
troff -h
Det er tilfeller der distribusjoner ikke kompilerer Troff som standard. I dette tilfellet kan du installere den ved å søke etter pakken "groff".
Dette er en re-implementering av Troff- og Nroff-programmene av GNU-prosjektet, som inkluderer en rekke nye, moderne funksjoner.
Du kan installere groff i Ubuntu med følgende kommando:
sudo apt installer groff
Lag det første Troff-dokumentet
I likhet med kildekoden er hvert Troff-dokument en tekstfil som inneholder instruksjoner om hvordan du oppretter et dokument. Dette inkluderer sidebredde og marg samt tegn og sideavstand.
Dette nivået av kontroll lar deg manipulere programmet for å lage alle typer dokumenter. For å gjøre det enkelt har Troffs utviklere laget «makroer» som kondenserer disse kommandoene til en enklere syntaks.
En av de vanligste makroene du vil bruke i Troff er Millisekunder. Et dokument i essaystil vil bli laget. Du kan opprette ms-dokument med berøringskommando:
trykk på mitt-første-dokument.ms
Siden alle Troff-dokumenter er tekst, kan du åpne dokumentet med et tekstredigeringsprogram. I mitt tilfelle bruker jeg vim. Alternativt kan du bruke hvilken som helst av disse tekstredigererne for Linux.
vim my-first-document.ms
Forstå Troff-formatet
Alle Troffs dokumenter følger en lignende struktur. Hver formateringskommando du gjør må være på en egen linje i innholdet den prøver å formatere. Som sådan vil et typisk Troff-dokument se slik ut:
.COMMAND1 Dette er en del av innholdet i et Troff-dokument. .COMMAND2 Dette er et annet innhold i et Troff-dokument.
To av de mest grunnleggende kommandoene du vil bruke i millisekunder er TL og .PP. Førstnevnte konverterer teksten til en overskrift og sentrerer den i dokumentet, mens sistnevnte formaterer teksten din slik at den følger en avsnittslignende stil.
Følgende kodebit bruker for eksempel både TL- og .PP-kommandoene:
.TL Mitt første Troff-dokument .PP Dette er innhold som jeg vil se ut som et avsnitt i mitt endelige dokument. Det er ikke et veldig langt innhold, men det er mitt første Troff-dokument og det er noe jeg er stolt av. Den er omtrent tre setninger lang, og den skal pakkes ordentlig rundt dokumentet.
Herfra lager du dokumentet ditt ved å sende filen til Troffs programvare.
groff -ms -Tpdf ./my-first-document.ms > output.pdf
Tips: Hvis du foretrekker noe enklere, lær hvordan Skrive i MLA-format i Google Docs.
Lag fet, kursiv og understreket tekst
Akkurat som en vanlig tekstbehandler, gir de fleste Troff-makroer en rekke stilkommandoer for dokumenttilpasning. For ms er disse .B og . Jeg og. UL og .BX.
- B-kommandoen endrer teksten til fet skrift.
- .I-kommandoen endrer teksten til kursiv.
- UL og. BX er to kommandoer som tegner henholdsvis en understreking og en boks rundt tekst.
I likhet med kommandoene ovenfor krever bruk av disse kommandoene i dokumentet at hver stil er atskilt på sin egen linje:
.TL Mitt første Troff-dokument .PP Dette er .B-innhold .R som jeg vil se ut som et avsnitt i mitt endelige dokument. [...]
I dette eksemplet opprettet jeg en ny linje før et ord "innhold" Og jeg la til .B-kommandoen for å endre den til fet skrift, så opprettet jeg en ny linje og la til .R-kommandoen. Dette gjør at Troff kan gå tilbake til sin tidligere teknikk.
Det er viktig å merke seg at du alltid må legge til .R-kommandoen når du endrer stilen. Følgende kodebit vil for eksempel ikke avslutte .I-kommandoen fordi Troff ikke har sett .R-filen etter den:
.TL Mitt første Troff-dokument .PP Dette er innholdet jeg vil se ut som et avsnitt i det endelige dokumentet mitt. [...]
Opprett nye dokumentseksjoner
I likhet med LaTeX støtter Troff også partisjonsdeteksjon og -hierarki, slik at du ikke trenger å bestille og matche nivået til hver overskrift når du redigerer.
For å opprette en ny seksjon i dokumentet ditt, bruk .NH-kommandoen etterfulgt av overskriftsnavnet ditt.
.TL Mitt første Troff-dokument .NH Min første overskrift .PP Dette er innhold som jeg vil se ut som et avsnitt i sluttdokumentet mitt.
Som standard inneholder hver Troff-overskrift en nivåverdi som bestemmer hvordan programmet bygges og innholdet vises i det endelige dokumentet. Å vite at du kan endre denne verdien for å justere overskriftsnivået.
For eksempel oppretter følgende en nivå 2-adresse rett under den overordnede:
.TL Mitt første Troff-dokument .NH Min første overskrift .NH 2 Min første underoverskrift .PP Dette er innhold som jeg vil se ut som et avsnitt i mitt sluttdokument.
Bortsett fra de vanlige nummererte overskriftene, kan Troff også lage tomme overskrifter som fortsatt vil følge dokumentnivåhierarkiet.
For å gjøre dette, erstatt .NH med SH-kommandoen:
.TL Mitt første Troff-dokument .SH Min første overskrift .SH 2 Min første underoverskrift .PP Dette er innholdet som jeg vil se ut som et avsnitt i mitt endelige dokument.
Tips: Finn ut hvordan Endre marginer i Google Dokumenter.
Lag lister i Troff
Troffs enkelhet lar deg også transformere oppførselen hennes til hva du måtte ønske. For eksempel kommer ikke lister som standard på Troff- eller ms-makroer. Til tross for dette kan du fortsatt lage en liste ved å kombinere noen få ms-kommandoer.
Hver liste i Troff består av tre deler: innrykk, punkt og innhold. For å lage et innrykk, bruk .rs- og .rs-kommandoene. RE. Dette vil rykke inn det gjeldende innrykksnivået i teksten med fire mellomrom.
.RS Dette er min første vare. .RE
IP-kommandoen lar deg også angi et egendefinert kulepunkt og mellomrommet mellom det og teksten din. I dette tilfellet ville jeg satt kulen til "[1]" og ville gi den fire mellomrom.
.RS .IP [1] 4 Dette er min første vare. .RE
.RS .IP [1] 4 Dette er min første vare. .IP [2] 4 Dette er mitt andre element. .IP [3] 4 Dette er mitt tredje element. .RE
Til slutt, automatiser denne prosessen ved å lage en egendefinert makro. For eksempel knytter følgende utdrag IP-kommandoen min til QW.
.de QW .IP [-] 4 .. .RS .QW Dette er min første vare. .QW Dette er mitt andre element. .QW Dette er mitt tredje element. .RE
Lag tabeller med forprosessorer i Troff
En av de rare tingene med Troff er at de fleste funksjonene er der "Primære behandlinger". For det meste er dette binærfiler utenom programmet som fungerer ved å lage "Forbehandler-beholderskript" og konverter den til Troff-kode på lavt nivå.
Tbl er et godt eksempel på en Troff-forprosessor. Det er et program som administrerer tabeller i et dokument. Den grunnleggende Tbl-beholderen ser slik ut:
.TS allbox ; cc c. element 1 element 2 vare3 vare4 element 5 punkt6.TE
- .TS- og .TE-kommandoene forteller Tbl at dette er et miljø den kan lese.
- Den andre linjen forteller programmet hvordan denne tabellen skal formateres.
- Den tredje linjen er et mellomromseparert felt som definerer antall kolonner og justeringen av tabellen.
- Den fjerde og femte linjen er tabulatordelte felt som inneholder innholdet i tabellen.
Å kompilere et dokument med Tbl er litt annerledes enn en vanlig Troff-fil. Først last opp filen din:
tbl my-first-document.ms > forhåndsbehandlet.ms
Deretter mater du programmets utdata til Troff:
groff -ms -Tpdf ./preprocessed.ms > output.pdf
Til slutt, automatiser denne prosessen ved å bruke UNIX-rør:
tbl my-first-document.ms | groff -ms -Tpdf > output.pdf
Ofte stilte spørsmål:
Q1: Er det mulig å bruke Troff i Windows?
svar. Som standard er ikke Troff og Groff offisielt portert til Windows. Til tross for dette kan du fortsatt bruke Groff med andre GNU-verktøy ved å Installer Windows Subsystem for Linux.
Q2: Har Troff en bibliografisporingsfunksjon?
svar. Ja. Henvisning er en enkel forbehandler som bruker en ekstern bibliografifil for automatisk å spore referanser i et Troff-dokument. Du kan lære mer om hvordan det fungerer ved å gå til man-siden ved å kjøre man referrer.
Q3: Hvordan kan jeg fikse feilen "manglende DESC" når jeg kompilerer Troff?
svar. Dette problemet skyldes sannsynligvis en manglende avhengighet i systemet eller en versjonsfil som ikke samsvarer. For å fikse dette, installer den riktige groff-pakken fra distribusjonens depot.