2

I'm using Tikz-UML package to make some class diagram but arrows (association, inheritance...) are so tiny it looks ugly. Any way to make them larger? Example:

\documentclass{article}
\usepackage{booktabs}
\usepackage[table,xcdraw]{xcolor}
\usepackage{tikz}
\usepackage{hyperref}
\usepackage{listings}
\usepackage{cmap}
\usepackage{minted}
\usepackage{import}
\usepackage{graphicx}

\usepackage{gensymb}
\usepackage{tikz-uml}

\usetikzlibrary{arrows,shadows}

\begin{document}
\begin{figure}[H]
    \centering
    %\resizebox{\textwidth}{!}{
    \begin{tikzpicture}

    \umlclass[x=0, y=0]{AlarmHandler}
    {-alarmName }
    {+initAlarm()}


    \umlclass[x=0, y=-3]{AlarmHandler1}
    {}
    {}
    \umlclass[x=0, y=-6]{AlarmHandler2}
    {}
    {}

    \umlinherit[]{AlarmHandler2}{AlarmHandler1}
    \umlinherit[]{AlarmHandler1}{AlarmHandler}

    \end{tikzpicture}
    %}
    \caption{alarms\label{fig:alarm}}
\end{figure}
\end{document}

enter image description here

This is just basic example, problem is when I create more complex diagram and scale it to fit page width. Arrows are hard to see then. I included in example all libs that I'm using.

Jablan
  • 51
  • Welcome to TeX.SE! Please, can you provide an example of your diagrams in small, complete document, which can be compiled? – Zarko Jun 29 '16 at 04:03
  • Hello, I provided code example and picture. – Jablan Jun 29 '16 at 10:16
  • Any ideas before I move to another UML package? – Jablan Jun 29 '16 at 21:13
  • I'm sorry, but I'm not able to install UML package "on-the-fly", for manual instalation I haven't enough time, so I can not test my ideas to use TikZ syntax in tikz-UML. However, I can provide relatively easy a pure TikZ solution (for shoved picture), if you like to see this alternative. – Zarko Jun 29 '16 at 21:24
  • Yes, any idea is welcome. Btw, I use online latex editor ShareLatex, there is easy to include or install packages. And then there is Overleaf, you can try edit here https://www.overleaf.com/5591546jmdjhm. Thanks – Jablan Jun 29 '16 at 21:58
  • It is not so simply .... my files (different shells for fast prototyping I have in my server). I will see if my system administrator will have a time to install this UML :-). See, if my answer below is useful. – Zarko Jun 29 '16 at 22:07

2 Answers2

3

Well, I discovered you could double the arrow with

\tikzstyle{tikzuml inherit style}=[color=\tikzumlDefaultDrawColor, -open triangle 45, double]

but its not enough for me. Later, I found out better control of scaling if I use arrows.meta package and define style as

\tikzstyle{tikzuml inherit style}=[color=\tikzumlDefaultDrawColor, {-{Stealth[inset=0pt,scale=3,fill=white,angle'=45]}}]

Source

Jablan
  • 51
0

As I mentioned in my comment, temporary I can't help you at tikz-UML solution, so see, if meanwhile before someone help you with this package, see, if the pure TikZ solution is acceptable to you:

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{arrows.meta, chains, shapes.multipart}

\begin{document}
    \begin{tikzpicture}[
  node distance = 12mm and 0mm,
    start chain = going below,
 VMPN/.style = {rectangle split, rectangle split parts=3,
                %rectangle split empty part height=1.5ex,% default is 1ex
                draw, thick, % here is control for shape line thickness
                minimum width=32mm, inner xsep=3mm, inner ysep=1mm, 
                on chain,
                join = by arrow},
arrow/.style = {very thick,% <-- here is control for arrow's thickness
                {Triangle[open]}-}
                        ] 
\node[VMPN] {\nodepart{one}     \textbf{AlarmHandler}
             \nodepart{two}     $-$alarmName 
             \nodepart{three}   $+$initAlarm()
             };
\node[VMPN] {\nodepart{one}     \textbf{AlarmHandler1}
             \nodepart{two}     
             \nodepart{three}   
             };
\node[VMPN] {\nodepart{one}     \textbf{AlarmHandler2}
             \nodepart{two}
             \nodepart{three}
             };
    \end{tikzpicture}
\end{document}

In code I indicate where you can change thickness of lines. Wit selected the resulting image is:

enter image description here

Addendum: The size of arrows from arrows.meta library can be determined independently of line thickens. So, if you like to have bigger trinagle, you can define arrows style as:

arrow/.style = {very thick,% <-- here is control for arrow's thickness
                {Triangle[width=2ex,length=2ex,% <-- here is control of triangle size
                          open]}-}

and obtain

enter image description here

Zarko
  • 296,517
  • Thank you for answering but that is just minor improvement. If arrow is little bit scaled up that would be better. – Jablan Jun 29 '16 at 22:03
  • what you mean with scaled up? to be triangle on the end of line bigger? Its size you can control with option of Triangle[width=..., length=..., open]. I will add an example. – Zarko Jun 29 '16 at 22:09
  • Yes I just want triangle to be bigger. – Jablan Jun 29 '16 at 22:14
  • This is better, I will wait if someone knows how to do that in tikz-uml. Thanks – Jablan Jun 29 '16 at 22:31
  • Mean time try to read tikz-UML documentation ... :-) – Zarko Jun 29 '16 at 22:37