Avatar billede loevgaard Novice
13. april 2012 - 12:24 Der er 18 kommentarer og
1 løsning

Enheder og brøker

Hejsa!

Har et problem med hvordan enheder skal skrives i LaTeX.

Har forsøgt mig lidt ad med SIUnitx-pakken og alternativet units og nicefrag. Mit problem er sådan set bare, at jeg ikke kan finde en metode til hvordan jeg kan skrive enheder hurtigt og at "pr."-enhederne ligner brøker i math-mode og ikke den skråstreg der viser sig mellem dem.

I enten den ene eller anden pakke, er der ikke en mulighed for, at når man laver skråstregen /, at så den laver en brøk for enhederne.

Altså eksempelvis massefylde kg/m^3 i SIUnitx:
\si{kg/m^3} <- Når / optræder under \si{} skal den lave en brøk.

Eller om man kunne lave det alternativt med units og nicefrag?


Har prøvet at lave lidt i preamblen med SIUnitx:
\documentclass[a4paper,11pt,fleqn,twoside,openany]{memoir}
\usepackage[ansinew]{inputenc}
\usepackage[danish]{babel}
\usepackage[printonlyused,withpage]{acronym}
\usepackage[T1]{fontenc}
\usepackage{siunitx}                       
  \sisetup{per-mode = fraction}
\usepackage[loose]{units}
\usepackage[ugly]{nicefrac}

\newcommand{\sib}[2]{\si{#1\per #2}}

\begin{document}
....
\end{document}

Resultatet i sidst nævnte nye kommando er, at jeg for hver brøkenhed skal skrive navnet på hele enheden i siunitx-pakken, for ved f.eks. kg/m^3 skal der stå \sib{\kilo\gram}{\meter\cubic}

Det er ikke så effektivt, men det virker da.

Hvis der er en bedre mulighed for at ordne disse brøker (ja, det drejer sig mest om brøker), er jeg lutter øren!

På forhånd tak!
Avatar billede Slettet bruger
13. april 2012 - 18:30 #1
Jeg vil faktisk ikke skrive det som brøker. Det er generelt bedre at skrive det med ^{-1}, enhederne bliver hurtigt svære at læse når man skriver enheder i teksten. \si{\kg\per\second\squared} vs. \si[per-mode=symbol]{\kg\per\second\squared} vs. \si[per-mode=fraction]{\kg\per\second\squared}

Hvis det altid er de samme enheder hvorfor definerer du ikke bare dine egne enheder, bygget ud fra de andre, se siunitx manualen.

Jeg vil ikke skrive det som nicefrac (altså / med hævet og sænket tekst, igen bliver det hurtigt ulæseligt). SI anbefaler selv at man undlader brøkskrivningen (anvend evt. /-versionen), hvilket er grunden til at der er default i siunitx.
Avatar billede aliaz Nybegynder
14. april 2012 - 10:29 #2
Jeg er enig med Daleif. I math-mode kan det diskuteres, om det er kønt eller ej, men jeg synes personligt, at i brødteksten ser både brøk og nicefrac grimt ud.

Default giver \si{kg/m3} kg/m³, som ser pænt ud blandt brødtekst, da det får samme størrelse.

Men vil du gerne have brøker, så burde det overordnet kunne klares med din \sisetup{per-mode = fraction} kommando. Det betyder så muligvis, at du bliver nødt til at skrive \si{\kilo\gram\per\meter\cubed} i stedet for \si{kg/m3} (har ikke testet det), men det må du så leve med.
Avatar billede loevgaard Novice
14. april 2012 - 12:37 #3
Ok, så jeg kan forstå på jer begge, at brøker ikke er at fortrække i brødteksten, men i math-mode er det lige meget?

Hvis jeg så vælger i math-mode at gøre det, er der så ikke en måde at binde en kommando til hver gang man trykker /, at den så laver en brøk? Eller det er måske for kompliceret?
Avatar billede Slettet bruger
14. april 2012 - 12:46 #4
Jeg vil sige, kun hvis det har pædagoisk betydning. Tag et kig på den historiske del i siunitx manualen.

Du kan sikkert gøre meget med din editor (som du ikke har fortalt os noget om). Jeg vil dog mene at det ikke kan betale sig. Makronavnene sidder hurtigt i fingerne, og så bliver den slags bare stil besvær.

Bemærk at jeg vil til en hver tid anbefale at bruge den lange syntaks, altså ikke noget med at skrive \si{\km/\hour}, du får langt mere fleksibilitet af at bruge syntaksen med \per, især fordi så kan du i preamblen bestemme hvad du vil have \per til at gøre pr. default, og så evt. manuelt rette det de steder hvor du vil have noget andet. At skulle ind og lave søg-og-erstat i sine dokumenter er spild af tid. Tid som kunne bruges på at skrive en bedre tekst.
Avatar billede loevgaard Novice
14. april 2012 - 13:20 #5
Min editor er TeXnicCenter

Men ok, jeg vil prøve disse hint.

Afgiv svar og få point - begge to
Avatar billede aliaz Nybegynder
14. april 2012 - 13:24 #6
Mit bud var faktisk, at \sisetup{per-mode = fraction} sørgede for at tolke din "/" og automatisk lave en brøk.

Men jeg er igen enig med Daleif. De ekstra 5 sekunder man bruger på at være systematisk med sin syntaks kan være guld værd, når man ønsker at ændre noget i 11. time, der skal gælde for hele værket (søg og erstat i 20+ inputtede filer tager tid).

Det efterlader Jer med 2 muligheder. Enten at fortsætte med \si{kg/m3} eller udvide til \si{\kilo\gram\per\meter\cubed}, som åbner muligheden for en global ændring i preamble.
Avatar billede aliaz Nybegynder
14. april 2012 - 13:25 #7
Din kommentar dukkede op imens jeg forfattede mit indlæg ovenfor, så dette bliver lige et svar :)
Avatar billede loevgaard Novice
14. april 2012 - 13:44 #8
Hmm... man kan vel godt give 30 point mere?
Avatar billede aliaz Nybegynder
14. april 2012 - 15:29 #9
Det ved jeg faktisk ikke. Normalt skal du afvente begge svar og så kan du fordele pointene.
Avatar billede Slettet bruger
14. april 2012 - 15:33 #10
Du skulle måske tage et kig på editoren TeXMaker eller TeXStudio (de er fætre). De giver efer min mening et langt bedre indtastningsinterface end TeXnicCenter.

Hos os anbefaler vi ikke brugerene at de anvender TeXnicCenter.
TCs interface er rodet. Den kan ikke finde ud af UTF8, hvilket gør at andre skal tage hensyn til en TC bruger hvis man skal samarbejde.

TeXMaker og TeXStudio kommer med deres egne PDF fremvisere, som er justeret til at kunne lave hop mellem PDF og kildekode (og den anden vej)
Avatar billede loevgaard Novice
14. april 2012 - 16:16 #11
Den understøtter også Miktex 2.8?
Avatar billede Slettet bruger
14. april 2012 - 17:36 #12
Ja, det har ikke noget med det at gøre. En af fordelene med LaTeX er jo at editoren og LaTeX-systemet er uafhængelige.

Jeg ville dog i konfigurationen af TeXMaker eller TeXStudio, justere lidt på stien til Adobe Reader. Den indbyggede PDF-fremviser har en Adobe knap, så man kan få åbnet PDF-filen i Adobe Reader, f.eks. hvis man ønsker at printe.
Avatar billede loevgaard Novice
14. april 2012 - 20:40 #13
Jeg har ikke besluttet mig, om jeg vil benytte den endnu, for jeg synes nu TexnicCenter funker fint. Men du siger så, at TeXMaker understøtter UTF-8, som jeg ikke aner det fjerneste om hvad er. Så hvad er fordelen ved det?

Men anyway, for at skifte emne over på et spørgsmål jeg har... nu omkring acronym pakken, altså

\usepackage[printonlyused]{acronym}

Indstillingen 'printonlyused' ser ikke ud til at virke ved mig. Det den skulle gøre er, at den kun skal sætte akronymer som har været brugt. Problemet er, at den sætter det ind uanset hvad i akronymlisten... jeg fatter det ikke. Prøvede så med \acrodef og \newacro, men så lavede den ingen liste overhovedet.

Er I skarpe på dette punkt?

På forhånd tak!
Avatar billede Slettet bruger
15. april 2012 - 00:37 #14
Du bør smide et andet eksempel vedr. agronym.

Vedr. utf8, så har det med input encodings at gøre.

Dette er en af de mest besværlige ting for folk i dag, hvilket der derfor vi anbefaler alle at gå over til utf8, så folk nemt kan udveksle filer med hinanden (TeXMaker er faktisk god til at detektere input encoding og kan selv skifte, TC fatter intet).

Hvad er det så for noget. TeX blev i sin tid skrevet til US ascii, dvs. de tegn der er på et US keyboard. Det er jo træls for alle de som skal bruge specialtegn (man gider jo ikke sidde og skrive \aa hele tiden for at få et å).

Når man skriver en tekst, så gemmer man teksten samt hvilken encoding den er skrevet i (det er faktisk overraskende svært at aflæse encodingen). Du kan bruge dette billede: Filen er gemt på disk som bits. Editoren læser disse bits i grupper, f.eks. 8-bits ad gangen. Encodingen (en vektor) siger så at denne gruppe er et 'a', dette er et '4', og dette er så et 'å'.

De fleste encodings er enige om placerigen af tegnene fra US ascii, men de er IKKE enige om resten. Dvs. at i en encoding har f.eks. 'æ' plads nummer 35 men i en anden encoding har den plads nummer 67. Så hvis editoren ikke er intelligent nok til at kunne aflæse encodingen, så risikerer man at den fil man lide har fået fra en kammerat kommer til at se helt forkert ud når man åbner den i sin editor.

Kan du se problemet?

Hvorfor utf8? De fleste encodings er 8-bit baserede. Dette giver  plads til 256 tegn. Encodingen latin1 (iso-8859-1) dækker de vesterupæiske sprog, så du kan skrive ç eller ñ direkte i din fil og gemme den i denne encoding. Men du kan ikke skrive de russiske bogstaver, eller de specielle accenter som man bruger på polsk eller tjekkisk. Men utf8 er 16-bit (dette forklarer hvorfor du i TC vil se to bogstaver (som ikke giver mening) hvis du åbner en utf8-fil), og denne rummer de vesterupæiske sprog, de mellem- og østeuropæiske og meget mere.

LaTeX kan ikke selv aflæse encodingen, dette skal man fortælle den gennem options til inputenc pakken. Men her er problemet jo så, hvordan ved brugeren hvilken encoding hans eller hendes fil er skrevet i, og hvorfor skal de overhovedet vide det?

Det skal nævnes at de videreudviklinger af LaTeX der arbejdes på, kun vil tillade utf8.

Det skal også nævnes at LaTeX som standard ikke understøtter alle tegn fra utf8. Hvis man mangler nogen kan man dog selv deklarere dem.

Hmm, hvis denne forklaring synes at give mening, vil jeg tilføje den til min LaTeXbog
Avatar billede loevgaard Novice
15. april 2012 - 12:29 #15
Jeg syntes det gav meningen meget af det, men jeg tror man skal sætte sig lidt mere ind i de encodinger der, for at forstå hvordan det hænger sammen.

Du skrev:
"Men her er problemet jo så, hvordan ved brugeren hvilken encoding hans eller hendes fil er skrevet i, og hvorfor skal de overhovedet vide det?"

Ja, men hvorfor er det så TeXmaker giver så mange muligheder af "sprog", når man åbner et dokument der stammer fra TC? Jeg får bare beskeden når master-filen åbnes: Denne fil understøttes ikke (eller noget i den dur), hvorefter man bliver bedt om at vælge encodingen på en liste, hvor utf8 og iso-8859-1 m.fl. er i blandt. What to pick?

Men der var vist også et andet spørgsmål fra forrige indlæg jeg fejede ind under tæppet. Du sagde, at MikTeX og editor ikke har noget med hinanden at gøre, men i TC skulle jeg angive placeringen af MikTeX, så den kunne hente pakker derfra. Det gav da fin mening for mig, idet at editoren er en man skriver i og miktex er den olie og benzin editoren skal ha' for at det hele spiller sammen og at det kan se ud som det gør i en pdf bagefter.

Men du siger så, at det er omvendt med TeXMaker? At den er uafhængig af MikTeX? Så TeXMaker har alle de pakker, som MikTeX har og at den samtidig har den dominerende encoding utf8, og mere behøver man ikke?

Jo, der var lige et spørgsmål mere: Kan man ikke lave projekt-filer i TeXMaker? Altså, det er det her med masterfil og inputs fra andre tex-dokumenter, hvorefter man compiler og wupti, så er den færdig!

På forhånd tak!
Avatar billede Slettet bruger
15. april 2012 - 12:39 #16
"Ja, men hvorfor er det så TeXmaker giver så mange muligheder af "sprog", når man åbner et dokument der stammer fra TC? Jeg får bare beskeden når master-filen åbnes: Denne fil understøttes ikke (eller noget i den dur), hvorefter man bliver bedt om at vælge encodingen på en liste, hvor utf8 og iso-8859-1 m.fl. er i blandt. What to pick?"

Der skal jeg have mere info om hvad den skriver. Men kan du se problemet? Forskellige encodings gør at man ikke nemt kan skifte editor (hvilket ellers er en af de store fordele ved LaTeX).

Ja du skal fortælle TC hvor LaTeX er. Det er jo bare således at den kan kalde LaTeX når du trykker på en knap. Der er ikke nogen bindinger mellem editor og LaTeX installation. Du kan anvende notepad (eller Word) hvis det er det du har lyst til.

Men hvorfor skal du fortælle TC hvor LaTeX er? Andre editorer kan selv finde ud af dette, evt. spørge Windows hvor LaTeX er. Det er da bøvlet for en ny bruger der har installateret TC at de skal finde ud af hvor LaTeX er blevet installeret.

"Men du siger så, at det er omvendt med TeXMaker? At den er uafhængig af MikTeX? Så TeXMaker har alle de pakker, som MikTeX har og at den samtidig har den dominerende encoding utf8, og mere behøver man ikke?"

Nej, LaTeX og editoren har ikke noget med hinanden at gøre.

Projekt-filer og master-håndtering er forskellig fra editor til editor. I TeXMaker skal man manuelt sige til den hvilken vil der er master (det er vist i tools menuen), på dette punkt er TC bedre.
Avatar billede Slettet bruger
15. april 2012 - 12:43 #17
Tag evt. og prøv TeXMaker på en helt ny fil, så du ikke får problemer med at finde ud af hvilken encoding du har skrevet i.
Så kan du prøve interfacet.

iso-8859-1 burde være et korrekt valg for dine eksisterende filer, men husk at tage en sikkerhedskopi inden du leget med TeXMaker

Du kan godt se problemet. Du har skrevet en fil og giver den til din kammerat. Han kan ikke få filen til at fungere da han ikke kender noget til encodings.
Avatar billede loevgaard Novice
15. april 2012 - 12:58 #18
Jeg kan godt se problemet nu, skulle bare lige se din pointe! Og hvis du skal anvende førnævnte beskrivelse, skal du nok gøre din pointe mere klar ift. hvor du vil hen, i stedet for at fortælle en masse om encodings, som nye brugere - heriblandt mig - ikke forstår så meget af.

Men jeg vil prøve at lave et simpelt dokument i det og hvis det spiller som jeg ønsker, vil jeg måske gå over til det.

Men fedt du er ved at lave en bog om LaTeX, hvornår kommer den på markedet, eller bliver det muligt at downloade e-booken? :D
Avatar billede Slettet bruger
15. april 2012 - 13:03 #19
Prøv at google latexbog, jeg undlader helst at linke direkte til mine egne ting for ikke at komme i problemer med forummet regler.

Encodings ER problmet, så jeg ser ikke helt hvordan man ellers skal forklare det. Du må meget gerne forsøge om du nu kan forklare problemet (set fra en bruger)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester