• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af Jan Fisker | 06.06.2010 23:24

hjælp latex tikzpicture

Hjælp generelt
Jeg er ved at lave et stort diagram i Latex med Tikzpicture

mit problem er at jeg tror jeg har mødt en begrænsning i hvor stort et tikzpicture må blive, ellers har jeg en eller anden anden fejl.

mit problem er at efter jeg satte nedenstående kode ind, kan pdflatex ikke mere lave en PDF af mit dokument.

PS. et helt andet problem er, sidetallet der opfører sig som om, at det skal stå på en stående A4-side...

Jeg håber i kan hjælpe mig
Jan Fisker

%trin1.17
\node[point,trin] at (10,-10) (trin117) {1.17};
\draw[->,very thick] (trin116) to[myncbar,angle=270,arm=1] (trin117);

\node[point,box3] at (10.7,-8.7) (text4) {Fmidt};
\draw[-,very thick] (9.6,-8.7) to (10.4,-8.7);

\node[point,box1] at (11.0,-10) (box7) {};
\node[point,box2] at (11.6,-10) (box8) {\small B\aa nd Frem};
\draw[-,very thick] (trin117) to (box7);
\node[point,box1] at (10.0,-10.6) (box7b) {\small C};
\node[point,box2] at (10.6,-10.6) (box8b) {\small Fb\aa nd $\cdot$ Cfrem};


herunder er hele mit dokument, men som sagt ovenfor så gik det først galt da jeg indsatte ovenstående.

% Metapost style ncbar node connection
% Requires PGF 2.00 or later
\documentclass[a4paper, oneside, landscape]{article}


\usepackage{tikz}

\usepackage[ansinew]{inputenc} % Æ,Ø,å, æ \o ,å på pc


\setlength{\oddsidemargin}{0pt}
\setlength{\marginparwidth}{0pt}
\setlength{\textwidth}{460pt}
\setlength{\hoffset}{-20pt}
\setlength{\topmargin}{0pt}
\setlength{\headsep}{0pt}
\setlength{\headheight}{0pt}



\usetikzlibrary{%
calc,% The calc library is needed for the ($...$) node calculation syntax.
arrows,%
shapes.misc,% wg. rounded rectangle
shapes.arrows,%
chains,%
matrix,%
positioning,% wg. " of "
scopes,%
decorations.pathmorphing,% /pgf/decoration/random steps | erste Graphik
shadows%
}
\begin{document}

\tikzset{
trin0/.style={
% The shape:
rectangle,
% alignment
center,
% The size:
minimum size=10mm,
% The border:
very thick, double distance=1pt,
draw=black, % red!50!black!20 50% red and 50% black,
% and that mixed with 50% white
% The filling:
top color=white, % a shading that is white at the top...
bottom color=green!70!black!20, % and something else at the bottom
% Font
font=\itshape
},
trin/.style={
% The shape:
rectangle,
% alignment
center,
% The size:
minimum size=10mm,
% The border:
very thick,
draw=black, % 50% red and 50% black,
% and that mixed with 50% white
% The filling:
top color=white, % a shading that is white at the top...
bottom color=green!70!black!20, % and something else at the bottom
% Font
font=\itshape
},
box1/.style={
% The shape:
rectangle,
% alignment
right,
% The hight:
minimum height=5.5mm,
% The lengt
minimum width=5.5mm,
% The border:
very thick,
draw=red!50!black!50, % 50% red and 50% black,
% and that mixed with 50% white
% The filling:
top color=white, % a shading that is white at the top...
bottom color=red!50!black!20, % and something else at the bottom
% Font
font=\itshape
},
box2/.style={
% The shape:
rectangle,
% alignment
right,
% The hight:
minimum height=5.5mm,
% The lengt:
minimum width=26mm,
% The border:
very thick,
draw=red!50!black!50, % 50% red and 50% black,
% and that mixed with 50% white
% The filling:
top color=white, % a shading that is white at the top...
bottom color=red!50!black!20, % and something else at the bottom
% Font
font=\itshape
},
box3/.style={
% The shape:
rectangle,
% alignment
right,
% The size:
minimum size=5mm,
% The border:
none,
% Font
font=\itshape
}
}
{
\tikzset{trin0/.append style={text height=1.5ex,text depth=.25ex}}
\tikzset{trin/.append style={text height=1.5ex,text depth=.25ex}}
\tikzset{box1/.append style={text height=1.5ex,text depth=.25ex}}
\tikzset{box2/.append style={text height=1.5ex,text depth=.25ex}}
\tikzset{box3/.append style={text height=1.5ex,text depth=.25ex}}
}

% Define the arm and angle options
\def\myarm{1cm}
\def\myangle{0}
\tikzset{
arm/.default=1cm,
arm/.code={\def\myarm{#1}}, % store value in \myarm
angle/.default=0,
angle/.code={\def\myangle{#1}} % store value in \myangle
}

% Define the myncbar to path
\tikzset{
myncbar/.style = {to path={
% We need to calculate a couple of coordinates to help us draw
% the path.
let
% Same as (\tikztotarget)++(\myangle:\myarm)
\p1=($(\tikztotarget)+(\myangle:\myarm)$)
in
-- ++(\myangle:\myarm) coordinate (tmp)
% Find the projection of the (tmp) coordinate
% on the line from the target to p1
-- ($(\tikztotarget)!(tmp)!(\p1)$)
-- (\tikztotarget)\tikztonodes
}}
}

\begin{tikzpicture}
%grid
\draw[black!20] (0,-15) grid (24,0);

%trin1.0
\node[point,trin0] at (0,0) (trin10) {1.0};

%trin1.1
\node[point,trin] at (0,-2.5) (trin11) {1.1};
\draw[->,very thick] (trin10) to[myncbar,angle=270,arm=1] (trin11);

\node[point,box3] at (0.7,-1.2) (text1) {Fstart};
\draw[-,very thick] (-0.4,-1.2) to (0.4,-1.2);

\node[point,box1] at (1.0,-2.5) (box1) {};
\node[point,box2] at (1.6,-2.5) (box2) {};
\draw[-,very thick] (trin11) to (box1);


%trin1.2
\node[point,trin] at (0,-5) (trin12) {1.2};
\draw[->,very thick] (trin11) to[myncbar,angle=270,arm=1] (trin12);

\node[point,box3] at (0.7,-4) (text2) {FStart};
\draw[-,very thick] (-0.4,-4) to (0.4,-4);

\node[point,box1] at (1.0,-5) (box3) {};
\node[point,box2] at (1.6,-5) (box4) {Ventilgul+};
\draw[-,very thick] (trin12) to (box3);

%trin1.3
\node[point,trin] at (0,-7.5) (trin13) {1.3};
\draw[->,very thick] (trin12) to[myncbar,angle=270,arm=1] (trin13);

\node[point,box3] at (0.7,-6.2) (text3) {L\aa gop};
\draw[-,very thick] (-0.4,-6.2) to (0.4,-6.2);


\node[point,box1] at (1.0,-7.5) (box5) {};
\node[point,box2] at (1.6,-7.5) (box6) {\small B\aa nd Frem};
\draw[-,very thick] (trin13) to (box5);

%trin1.4
\node[point,trin] at (0,-10) (trin14) {1.4};
\draw[->,very thick] (trin13) to[myncbar,angle=270,arm=1] (trin14);

\node[point,box3] at (0.7,-8.7) (text4) {Fmidt};
\draw[-,very thick] (-0.4,-8.7) to (0.4,-8.7);

\node[point,box1] at (1.0,-10) (box7) {};
\node[point,box2] at (1.6,-10) (box8) {\small B\aa nd Frem};
\draw[-,very thick] (trin14) to (box7);
\node[point,box1] at (1.0,-10.6) (box7b) {\small C};
\node[point,box2] at (1.6,-10.6) (box8b) {\small Fb\aa nd $\cdot$ Cfrem};

%trin1.6
\node[point,trin] at (0,-12.5) (trin16) {1.6};
\draw[->,very thick] (trin14) to[myncbar,angle=270,arm=1] (trin16);

\node[point,box3] at (0.7,-11.2) (text5) {$\overline{Fmidt}$};
\draw[-,very thick] (-0.4,-11.2) to (0.4,-11.2);

\node[point,box1] at (1.0,-12.5) (box9) {};
\node[point,box2] at (1.6,-12.5) (box10) {\small B\aa nd Bak};
\draw[-,very thick] (trin16) to (box9);
\node[point,box1] at (1.0,-13.1) (box9a) {\small C};
\node[point,box2] at (1.6,-13.1) (box10a) {\small Fb\aa nd $\cdot$ Ctilbage};

%trin0 igen
\node[point,box] at (0,-15) (trin10a) {Trin 1.0};
\draw[->,very thick] (trin16) to[myncbar,angle=270,arm=1] (trin10a);

\node[point,box3] at (0.7,-13.7) (text6) {Ctilbage = Cmidt};
\draw[-,very thick] (-0.4,-13.7) to (0.4,-13.7);

%trin1.10
\node[point,trin] at (5,-5) (trin110) {1.10};
\draw[->,very thick] (trin11) to[myncbar,angle=270,arm=1] (trin110);

\node[point,box3] at (5.7,-4) (text1) {Fstart};
\draw[-,very thick] (4.6,-4) to (5.4,-4);

\node[point,box1] at (6,-5) (box1) {};
\node[point,box2] at (6.6,-5) (box2) {};
\draw[-,very thick] (trin110) to (box1);

%trin1.11
\node[point,trin] at (5,-7.5) (trin111) {1.11};
\draw[->,very thick] (trin110) to[myncbar,angle=270,arm=1] (trin111);

\node[point,box3] at (5.7,-6.2) (text1) {Fstart};
\draw[-,very thick] (4.6,-6.2) to (5.4,-6.2);

\node[point,box1] at (6,-7.5) (box1) {};
\node[point,box2] at (6.6,-7.5) (box2) {};
\draw[-,very thick] (trin111) to (box1);

%trin1.12
\node[point,trin] at (5,-10) (trin112) {1.12};
\draw[->,very thick] (trin111) to[myncbar,angle=270,arm=1] (trin112);

\node[point,box3] at (5.7,-8.7) (text4) {Fmidt};
\draw[-,very thick] (4.6,-8.7) to (5.4,-8.7);

\node[point,box1] at (6.0,-10) (box7) {};
\node[point,box2] at (6.6,-10) (box8) {\small B\aa nd Frem};
\draw[-,very thick] (trin112) to (box7);
\node[point,box1] at (6.0,-10.6) (box7b) {\small C};
\node[point,box2] at (6.6,-10.6) (box8b) {\small Fb\aa nd $\cdot$ Cfrem};


%trin1.15
\node[point,trin] at (10,-5) (trin115) {1.15};
\draw[->,very thick] (trin11) to[myncbar,angle=270,arm=1] (trin115);

\node[point,box3] at (10.7,-4) (text1) {Fstart};
\draw[-,very thick] (9.6,-4) to (10.4,-4);

\node[point,box1] at (11,-5) (box1) {};
\node[point,box2] at (11.6,-5) (box2) {};
\draw[-,very thick] (trin115) to (box1);

%trin1.16
\node[point,trin] at (10,-7.5) (trin116) {1.16};
\draw[->,very thick] (trin115) to[myncbar,angle=270,arm=1] (trin116);

\node[point,box3] at (10.7,-6.2) (text1) {Fstart};
\draw[-,very thick] (9.6,-6.2) to (10.4,-6.2);

\node[point,box1] at (11,-7.5) (box1) {};
\node[point,box2] at (11.6,-7.5) (box2) {};
\draw[-,very thick] (trin116) to (box1);

%trin1.17
\node[point,trin] at (10,-10) (trin117) {1.17};
\draw[->,very thick] (trin116) to[myncbar,angle=270,arm=1] (trin117);

\node[point,box3] at (10.7,-8.7) (text4) {Fmidt};
\draw[-,very thick] (9.6,-8.7) to (10.4,-8.7);

\node[point,box1] at (11.0,-10) (box7) {};
\node[point,box2] at (11.6,-10) (box8) {\small B\aa nd Frem};
\draw[-,very thick] (trin117) to (box7);
\node[point,box1] at (10.0,-10.6) (box7b) {\small C};
\node[point,box2] at (10.6,-10.6) (box8b) {\small Fb\aa nd $\cdot$ Cfrem};


%trin1.20
\node[point,trin] at (15,-5) (trin120) {1.20};
\draw[->,very thick] (trin11) to[myncbar,angle=270,arm=1] (trin120);

\node[point,box3] at (15.7,-4) (text1) {Fstart};
\draw[-,very thick] (14.6,-4) to (15.4,-4);

\node[point,box1] at (16,-5) (box1) {};
\node[point,box2] at (16.6,-5) (box2) {};
\draw[-,very thick] (trin120) to (box1);

%trin1.21
\node[point,trin] at (15,-7.5) (trin121) {1.21};
\draw[->,very thick] (trin120) to[myncbar,angle=270,arm=1] (trin121);

\node[point,box3] at (15.7,-6.2) (text1) {Fstart};
\draw[-,very thick] (14.6,-6.2) to (15.4,-6.2);

\node[point,box1] at (16,-7.5) (box1) {};
\node[point,box2] at (16.6,-7.5) (box2) {};
\draw[-,very thick] (trin121) to (box1);

%trin1.30
\node[point,trin] at (20,-5) (trin130) {1.30};
\draw[->,very thick] (trin11) to[myncbar,angle=270,arm=1] (trin130);

\node[point,box3] at (20.7,-4) (text1) {Fstart};
\draw[-,very thick] (19.6,-4) to (20.4,-4);

\node[point,box1] at (21,-5) (box1) {};
\node[point,box2] at (21.6,-5) (box2) {};
\draw[-,very thick] (trin130) to (box1);

%trin1.6 igen
\node[point,box] at (20,-7.5) (trin16a) {Trin 1.6};
\draw[->,very thick] (trin130) to[myncbar,angle=270,arm=1] (trin16a);

\node[point,box3] at (20.7,-6.2) (text6) {Ctilbage = Cmidt};
\draw[-,very thick] (19.6,-6.2) to (20.4,-6.2);



\end{tikzpicture}

\end{document}
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer7

# 1

15 år 1 måned siden

Permalink

Indsendt af jkjaer den 7. juni 2010 kl. 08:26

Permalink

Fejl 40

Hej Jan,

Du kan desværre ikke skyde skylden på LaTeX i denne omgang;) Jeg har fundet flere fejl i dit dokument:
1. Du mangler at definere point. Prøv med point/.style={et eller andet}
2. Du kan ikke bruge center. Prøv med text centered i stedet.
3. Du kan ikke bruge none. Prøv med draw=none i stedet.
4. Et par steder har du skrevet box uden et efterfølgende nummer. Der skulle nok have stået f.eks. box2.

Jeg har rettet disse fire ting og kan nu kompilere din kode på Ubuntu 10.04 med TexLive 2009 installeret.
  • Log ind eller opret dig for at tilføje kommentarer

# 2

15 år 1 måned siden

Permalink

Indsendt af Jan Fisker den 7. juni 2010 kl. 11:34

Permalink

Mange tak for hjælpen
jeg

Mange tak for hjælpen

jeg ændrede ikke i det med point... det fungerer selvom den ikke er defineret, så jeg lader det være.

men ellers har jeg rettet op og rettet til, så det nu virker.

Det eneste problem jeg nu har er sidetallet som sidder mærkeligt det stadig er et stående dokument

Hilsen
Jan
  • Log ind eller opret dig for at tilføje kommentarer

# 3

15 år 1 måned siden

Permalink

Indsendt af Jan Fisker den 8. juni 2010 kl. 21:04

Permalink

sidetal og placering af tikzpicture på første side

Jeg har et par problemer mere, og ville ikke oprette en ny tråd for et par detaljer omkring mit billede.

Jeg kan ikke forstå at mit sidetal er placeret ca. i den afstand fra venstre side som det ville hvis jeg benyttede et stående A4papir, men det er jo liggende, burde sidetallet ikke selv finde ud af det?

Derudover har jeg også problemer med at få placeret mit tikzpicture på første side, og ikke på den anden fordi billedet er for stort.

Håber i kan hjælpe mig

Jan
  • Log ind eller opret dig for at tilføje kommentarer

# 4

15 år 1 måned siden

Permalink

Indsendt af jkjaer den 8. juni 2010 kl. 22:37

Permalink

Sidetal m.m.

Hej Jan

Jeg ved desværre ikke, hvorfor sidetallet ikke opfører sig ordentligt. Måske du kunne prøve med disse andre metoder at lave landscape på http://texblog.wordpress.com/2007/11/10/landscape-in-latex/

Hvis du vil fjerne sidetallet, kan du skrive

\thispagestyle{empty}


Det sidste, jeg vil nævne, er, at du ikke behøver placere billedet på f.eks. en A4-side. Du kan få latex til at lave figuren med en hvilken som helst margin. Det gør du ved at indsætte følgende stump kode i din preamble:

\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}%

I dette eksempel bliver outputtet fra latex kun din tikz figur med en margin på 5 pt. Du kan læse mere om preview pakken her:
http://tug.ctan.org/tex-archive/macros/latex/contrib/preview/
  • Log ind eller opret dig for at tilføje kommentarer

# 5

15 år 1 måned siden

Permalink

Indsendt af sjofelpanda den 8. juni 2010 kl. 22:44

Permalink

Re: hjælp latex tikzpicture

Du kan også vælge at tilføje følgende linie i din preamble, hvorefter din tikz-figur vises på første side:

\usepackage[paper=a4paper,margin=0cm]{geometry}


Mht. sidetal har jeg prøvet at kompilere din kode med følgende i din preamble

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\lhead{\thepage}
\chead{}
\rhead{}
\lfoot{}
\cfoot{}
\rfoot{}
  • Log ind eller opret dig for at tilføje kommentarer

# 6

15 år 1 måned siden

Permalink

Indsendt af Jan Fisker den 8. juni 2010 kl. 23:11

Permalink

Re: hjælp latex tikzpicture

Tak panda

\usepackage[paper=a4paper,margin=0cm]{geometry}

fjernede den overflødige side, og i øvrigt også sidetallet, så indtil videre så er det godt nok til mig, men jeg er lidt nysgerring omkring hvad der ville ske hvis jeg skulle lave en tosidet liggende sekvensdiagram hvordan laver jeg selv sidetal der hvor det skal være.

Hilsen
Jan
  • Log ind eller opret dig for at tilføje kommentarer

# 7

15 år 1 måned siden

Permalink

Indsendt af sjofelpanda den 9. juni 2010 kl. 01:52

Permalink

Re: hjælp latex tikzpicture

Hvis jeg forstår dig korrekt, skal du smide følgende i din preamble i stedet for geometry-linien i #5.

\usepackage[a4paper, landscape, hmargin={2.8cm, 2.8cm}, vmargin={2.5cm, 2.5cm}]{geometry}


Du kan naturligvis fifle lidt med værdierne af h- og vmargin.
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

den er sjov 1
Reserve kernel og btrfs 3
En snak om Linux-kompatibel software 12
PCLinuxOS 28
"Intet realistisk alternativ" - mig i r*ven 17
Open source events i danmark? 3
Virtuel maskine? 4
Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
Nulstilling af adgangskode 6
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !