private void handleLineFragmentInDefaultState(String line) throws IOException {
//        System.out.println("Handling line fragment: state=" + parsingState
//                    + ", vbLevel=" + verbatimMode
//                    + ", iLevel=" + indentLevel
//                    + ", line=" + line
//                    );
        
        /* If not in verbatim, we'll indent the line as appropriate. This will be the
         * current indent, unless it starts with an '\end' in which case we'll unindent
         * immediately.
         */
        boolean initialUnindent = false;
        if (!verbatimMode) {
            if (line.startsWith(END)) {
                initialUnindent = true;
                indentLevel--;
            }
            createIndent(indentLevel);
        }

        /* Now output line */
        outputWriter.write(line);
        outputWriter.write(LINE_SEPARATOR);
        
        /* We now adjust the indentLevel and verbatimLevel.
         * 
         * First find all of the \end{...}'s.
         */
        Matcher matcher = END_PATTERN.matcher(line);
        while (matcher.find()) {
            if (!verbatimMode) {
                indentLevel--;

            }
            else {
                if (matcher.group(1).equals("verbatim")) {
                    /* (Leaving verbatim should apply to next line) */
                    verbatimMode = false;
                }
            }
        }
        /* Account for any initial unindent we found earlier */
        if (initialUnindent) {
            indentLevel++;
        }
        /* Then find all of the \begin{...}s */
        matcher = BEGIN_PATTERN.matcher(line);
        while (matcher.find()) {
            if (!verbatimMode) {
                if (matcher.group(1).equals("verbatim")) {
                    verbatimMode = true;
                }
                else {
                    indentLevel++;
                }
            }
        }
    }