code: protected boolean addChunk(Chunk chunk) {
      	Font f = chunk.getFont();
      	String c = chunk.getContent();
          if (font != null && !font.isStandardFont()) {
              f = font.difference(chunk.getFont());
          }
          if (size() > 0 && !chunk.hasAttributes()) {
              try {
                  Chunk previous = (Chunk) get(size() - 1);
                  if (!previous.hasAttributes()
                  		&& (f == null
                  		|| f.compareTo(previous.getFont()) == 0)
                  		&& !"".equals(previous.getContent().trim())
                  		&& !"".equals(c.trim())) {
                      previous.append(c);
                      return true;
                  }
              }
              catch(ClassCastException cce) {
              }
          }
          Chunk newChunk = new Chunk(c, f);
          newChunk.setAttributes(chunk.getAttributes());
          if (hyphenation != null && newChunk.getHyphenation() == null && !newChunk.isEmpty()) {
          	newChunk.setHyphenation(hyphenation);
          }
          return super.add(newChunk);
      }
docs: Adds a Chunk.
  <p>
  This method is a hack to solve a problem I had with phrases that were split between chunks
  in the wrong place.
  @param chunk a Chunk to add to the Phrase
  @return true if adding the Chunk succeeded