/// <summary>
            /// Insert a new horizontal placement from a linked list
            /// based on the comparison of the horizontal position
            /// </summary>
            /// <param name="list">list d'éléments horizontaux successifs</param>
            /// <param name="input">élément horizontal</param>
            public static void Compare(LinkedList <HorizontalPlacementItem> list, HorizontalPlacementItem input)
            {
                LinkedListNode <HorizontalPlacementItem> positiveCurrent = list.First;
                LinkedListNode <HorizontalPlacementItem> negativeCurrent = list.Last;

                while (positiveCurrent != null && positiveCurrent != negativeCurrent)
                {
                    if (HorizontalComparer.Compare(positiveCurrent.Value, input) == 1)
                    {
                        list.AddAfter(positiveCurrent, input);
                        break;
                    }
                    else if (HorizontalComparer.Compare(negativeCurrent.Value, input) == -1)
                    {
                        list.AddBefore(negativeCurrent, input);
                        break;
                    }
                    positiveCurrent = positiveCurrent.Next;
                    negativeCurrent = negativeCurrent.Previous;
                }
                if (positiveCurrent == null || positiveCurrent == negativeCurrent)
                {
                    list.AddLast(input);
                }
            }
 /// <summary>
 /// Compare two horizontal elements of placement
 /// </summary>
 /// <param name="x">placement item 1</param>
 /// <param name="y">placement item 2</param>
 /// <returns>1 or -1</returns>
 public static int Compare(HorizontalPlacementItem x, HorizontalPlacementItem y)
 {
     return(x.Item.CompareWidth(y.Item));
 }
 /// <summary>
 /// Add a new horizontal item into this vertical item
 /// </summary>
 /// <param name="h">horizontal item</param>
 public void Add(HorizontalPlacementItem h)
 {
     this.list.AddLast(h);
 }