chem(1)
chem(1)
NAMN
chem – bädda in diagram över kemiska strukturer i groff-dokument
SYNOPSIS
chem [--] [fil ...]
chem -h chem --help
chem -v chem --version
BESKRIVNING
chem producerar diagram över kemiska strukturer. Den nuvarande versionen lämpar sig bäst för organisk kemi (bindningar, ringar). Programmet chem är en groff-förprocessor, på samma sätt som eqn, pic, tbl och andra. Det genererar pic-utdata på ett sådant sätt att alla chem-delar översätts till diagram i pic-språket.
Om inga operander anges, eller om fil är -, läser chem från standard in. -h och --help visar ett användningsmeddelande, medan -v och --version visar versionsinformation; alla avslutar därefter programmet.
Programmet chem härstammar från Perl-källfilen chem.pl. Det instruerar pic att inkludera en kopia av makrofilen chem.pic. Dessutom laddas groff-källfilen pic.tmac.
I en stil som påminner om eqn och pic skrivs chem-diagram i ett särskilt språk.
En uppsättning chem-rader ser ut så här
.cstart chem-data .cend
Rader som innehåller nyckelorden .cstart och .cend inleder respektive avslutar indata till chem. I pic-sammanhang, det vill säga efter anropet av .PS, kan chem-indata alternativt startas med raden begin chem och avslutas med raden som endast innehåller ordet end.
Allt utanför dessa initialiseringsrader kopieras vidare utan ändring; all data mellan initialiseringsraderna omvandlas till pic-kommandon som ritar diagrammet.
Som exempel,
.cstart CH3 bond CH3 .cend
skriver ut två CH3-grupper med en bindning mellan dem.
Om du bara vill skapa groff-utdata måste du köra chem följt av groff med flaggan -p för att aktivera pic:
chem [fil ...] | groff -p ...
SPRÅK
chem-språket för indata är ganska litet. Det tillhandahåller ringar i flera stilar och ett sätt att foga samman dem efter behov, bindningar i flera stilar, grupper (till exempel C, NH3 och så vidare) samt strängar.
Sätta variabler
Det finns några variabler som kan sättas med kommandon. Sådana kommandon har två möjliga former, antingen
variabel värde
eller
variabel = värde
Detta sätter den angivna variabeln till argumentet värde. Om fler argument anges används endast det sista argumentet; alla övriga ignoreras.
Det finns bara några få variabler som kan sättas med dessa kommandon:
- textht arg
- Sätt textens höjd till arg; standardvärde är 0.16.
- cwid arg
- Sätt teckenbredden till arg; standardvärde är 0.12.
- db arg
- Sätt bindningslängden till arg; standardvärde är 0.2.
- size arg
- Skala diagrammet så att det ser rimligt ut vid punktstorleken arg; standard är 10 punkter.
Bindningar
Detta
bond [riktning] [length n] [from Namn|pic-grejer]
ritar en enkelbindning i riktningen från närmaste hörn av Namn. bond kan också vara double bond, front bond, back bond och så vidare. (Vi återkommer snart till Namn.)
riktning är vinkeln i grader (0 uppåt, positiv medurs) eller ett riktningsord som up, down, sw (= sydväst) och liknande. Om ingen riktning anges går bindningen i den aktuella riktningen (vanligtvis samma som den senaste bindningen).
Normalt börjar bindningen vid det senast placerade objektet; detta kan ändras genom att ange en from-plats. För att till exempel göra en enkel alkylkedja:
CH3 bond (den här går åt höger från CH3) C (vid högeränden av bindningen) double bond up (från C) O (vid änden av dubbelbindningen) bond right from C CH3
En längd i tum kan anges för att åsidosätta standardlängden. Andra pic-kommandon kan läggas till i slutet av ett bindningskommando för att skapa prickade eller streckade bindningar eller för att ange en to-plats.
Ringar
Det finns många ringar, men bara fem- och sexhörniga ringar har mycket stöd. ring ensam är en sexhörnig ring; benzene är bensenringen med en cirkel inuti. aromatic placerar en cirkel i vilken sorts ring som helst.
ring [pointing (up|right|left|down)] [aromatic]
[put Mol at n] [double i,j k,l ... [pic-grejer]]
Ringens hörn numreras 1, 2, ... från det hörn som pekar i den naturliga kompassriktningen. Så för en hexagonal ring med spetsen uppåt är det översta hörnet 1, medan om ringen har en spets på östra sidan så är det hörnet 1. Detta uttrycks som
R1: ring pointing up R2: ring pointing right
Ringens hörn namnges .V1, ..., .Vn, där .V1 ligger i den riktning ringen pekar. Så hörnen i R1 är R1.V1 (det översta), R1.V2, R1.V3, R1.V4 (det nedersta) och så vidare, medan för R2 är R2.V1 det längst till höger och R2.V4 det längst till vänster. Dessa hörnnamn används för att ansluta bindningar eller andra ringar. Till exempel,
R1: benzene pointing right R2: benzene pointing right with .V6 at R1.V2
skapar två bensenringar sammanfogade längs en sida.
Inre dubbelbindningar anges som double n1,n2 n3,n4 ...; varje talpar lägger till en inre bindning. Den alternativa formen av en bensenring är alltså
ring double 1,2 3,4 5,6
Heterocykler (ringar med något annat än kol i ett hörn) skrivs som put X at V, som i
R: ring put N at 1 put O at 2
I denna heterocykl blir R.N och R.O synonymer för R.V1 respektive R.V2.
Det finns två femhörniga ringar. ring5 är femhörnig med en sida som passar ihop med den sexhörniga ringen; den har fyra naturliga riktningar. En flatring är en femhörnig ring skapad genom att man kapar ett hörn från en sexhörnig ring så att den exakt passar med sexhörningarna.
Beskrivningen av en ring måste få plats på en enda rad.
Grupper och strängar
En grupp är en teckensträng som börjar med en versal, till exempel N(C2H5)2. Tal omvandlas till index (såvida de inte ser ut att vara bråktal, som i N2.5H). Namnet på en grupp bestäms från gruppen efter att specialtecken har tagits bort: till exempel får N(C2H5)2 namnet NC2H52.
Grupper kan anges på två sätt. Normalt placeras en grupp direkt efter det senast nämnda objektet, åtskild med ett semikolon omgivet av blanksteg, till exempel
B1: bond ; OH
Här är gruppen OH; den placeras efter en bindning.
Som andra sättet kan en grupp positioneras som första ord i ett pic-liknande kommando, till exempel
CH3 at C + (0.5,0.5)
Här är gruppen CH3. Den placeras på en position relativ till C, en grupp som använts tidigare i den kemiska strukturen.
Gruppnamn kan alltså användas som chem-positioner överallt i chem-koden. Under det som skrivs ut fungerar grupper också som namn på platser.
Gruppen BP är speciell. Den skrivs inte ut utan fungerar bara som en markering att referera till i senare chem-kommandon. Till exempel,
bond ; BP
sätter en markering vid slutet av bindningen. Den kan sedan användas för att ange en plats. Namnet BP kommer från branch point (grenpunkt, alltså korsning av linjer).
En sträng inom dubbla citationstecken " tolkas som en del av ett chem-kommando. Den representerar en sträng som ska skrivas ut (utan citationstecknen). Text inom citationstecken "..." behandlas ungefär som en grupp, förutom att inga ändringar görs i den citerade delen.
Namn
I alkylkedjan ovan användes kolatomen C både för att rita något och som namn på en plats. En grupp definierar alltid ett namn för en plats; du kan också använda egna namn för platser, och för ringar måste du faktiskt göra det. Ett namn är helt enkelt
Namn: ...
Namn är ofta namnet på en grupp, som CH3, men det behöver inte vara det. Alla namn som börjar med en versal och bara innehåller bokstäver och siffror är giltiga:
First: bond
bond 30 from First
Diverse
Den specifika konstruktionen
bond ... ; grupp
är ekvivalent med
bond grupp
I övrigt måste varje post stå på en egen rad (och endast en rad). Observera att det måste finnas blanksteg efter semikolonet som skiljer kommandona åt.
Ett punkttecken . eller ett enkelt citationstecken ' i första kolumnen på en rad signalerar ett troff-kommando, som kopieras vidare oförändrat.
En rad vars första icke-blanka tecken är en hash-symbol (#) behandlas som en kommentar och ignoreras därför. Hashtecken inuti ett ord behålls dock.
En rad vars första ord är pic kopieras vidare oförändrad efter att ordet pic tagits bort.
Kommandot
size n
skalar diagrammet så att det ser rimligt ut vid punktstorleken n (standard är 10 punkter).
Allt annat antas vara pic-kod, som kopieras vidare med en etikett.
Eftersom chem är en pic-förprocessor är det möjligt att inkludera pic-satser mitt i ett diagram för att rita sådant som chem själv inte erbjuder. Sådana pic-satser bör läggas in i chem-kod genom att lägga till ordet pic först på raden för tydlighetens skull.
Följande pic-kommandon accepteras som chem-kommandon, så något pic-ord behövs inte:
- define
- Påbörja definitionen av ett pic-makro inuti chem.
- [
- Påbörja ett blockkomposit.
- ]
- Avsluta ett blockkomposit.
- {
- Påbörja ett block för makrodefinition.
- }
- Avsluta ett block för makrodefinition.
Makronamnen från define-satser sparas, och anrop av dem accepteras också som chem-kommandon.
Önskelista
Denna TODO-lista samlades ihop av Brian Kernighan.
Felkontrollen är minimal; fel upptäcks vanligtvis och rapporteras på ett indirekt sätt av pic.
Det finns ingen biblioteks- eller filinkluderingsmekanism, och det finns ingen snabbnotation för repetitiva strukturer.
Utvidgningsmekanismen består i att skapa pic-makron, men dessa är svåra att få rätt och har inte alla egenskaper som inbyggda objekt har.
Det finns ännu ingen kemi inuti löptext (till exempel motsvarande $...$-konstruktionen i eqn).
Det finns inget sätt att styra infästningspunkt för bindningar på grupper. Normalt ansluter en bindning till kolatomen om den kommer uppifrån eller nedifrån, och annars till närmaste hörn.
Bindningar från substituerade atomer på heterocykler ansluter inte på rätt plats utan att man lägger till lite pic.
Det finns ingen bra primitiv för klamrar eller hakparenteser.
Text (citerade strängar) fungerar inte särskilt bra.
En vågig bindning behövs.
FILER
- /usr/local/share/groff/1.23.0/pic/chem.pic
- En samling pic-makron som behövs av chem.
- /usr/local/share/groff/1.23.0/tmac/pic.tmac
- En makrofil som omdefinierar .PS, .PE och .PF för att centrera pic-diagram.
- /usr/local/share/doc/groff-1.23.0/examples/chem/*.chem
- Exempelfiler för chem.
- /usr/local/share/doc/groff-1.23.0/examples/chem/122/*.chem
- Exempelfiler från chem-artikeln av dess författare, ”CHEM—A Program for Typesetting Chemical Structure Diagrams: User Manual” (CSTR #122).
FÖRFATTARE
GNU-versionen av chem skrevs av Bernd Warken ⟨groff-bernd.warken-72@web.de⟩. Den bygger på dokumentationen till Brian Kernighans ursprungliga awk-version av chem.
SE ÄVEN
”CHEM—A Program for Typesetting Chemical Diagrams: User Manual” av Jon L. Bentley, Lynn W. Jelinski och Brian W. Kernighan, 1992, AT&T Bell Laboratories Computing Science Technical Report No. 122
groff(1), pic(1)
KOLOFON
Denna sida är en del av projektet groff (GNU troff). Information om projektet finns på: http://www.gnu.org/software/groff/
Om du har en felrapport för denna manualsida, se: http://www.gnu.org/software/groff/
Denna sida hämtades från tar-arkivet groff-1.23.0.tar.gz, hämtat från: https://ftp.gnu.org/gnu/groff/
den 2026-01-16.
Om du upptäcker renderingsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har rättelser eller förbättringar till informationen i detta KOLOFON (som inte är en del av den ursprungliga manualsidan), skicka e-post till: man-pages@man7.org
Sidslut
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/chem.1.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till PC Service som har sponsrat Linux.se med webbhotell.