5

Is it possible to use the verbatim environment (i.e. \begin{verbatim}...\end{verbatim}) in a dot2tex node? If so, please could you provide a MWE?


Update: this is the closest I've got so far:

digraph g {
d2tdocpreamble = "\usepackage{varwidth} \usepackage{verbatim} \renewcommand{\familydefault}{\sfdefault}";
graph [ rankdir = "TB" ];
node  [ style="rounded,bold,filled" fillcolor="azure" shape = "box" ];

assume_git         [ texlbl="\begin{varwidth}{30em}We'll assume that Git is to be used for source control; so as a precaution against accidentally checking in temporary files used by Vim or OS X, enter the following at the command prompt:\\\verb|echo '*.swp'      >> .gitignore|\\\verb|echo '.DS\_Store'  >> .gitignore|\end{varwidth}" ];

START              -> assume_git;
}

And this is the output from turning it into a PDF via the command dot2tex --crop --margin 1em --autosize dot2tex_test_006_mwe.dot > dot2tex_test_006_mwe.tex; pdflatex dot2tex_test_006_mwe.tex:

enter image description here

This is unsatisfactory in at least two ways:

  1. instead of

    \\\verb|echo '*.swp'      >> .gitignore|\\\verb|echo '.DS\_Store'  >> .gitignore|
    

    I would much prefer to have been able to use

    \begin{verbatim}
    echo '*.swp'      >> .gitignore
    echo '.DS_Store'  >> .gitignore
    \end{verbatim}
    

    to avoid the need for unnecessary markup for every newline in the code block, but the latter generated the following errors:

    ERROR    Failed to process input
    Traceback (most recent call last):
      File "build/bdist.macosx-10.6-universal/egg/dot2tex/dot2tex.py", line 2928, in main
        s =  conv.convert(dotdata)
      File "build/bdist.macosx-10.6-universal/egg/dot2tex/dot2tex.py", line 794, in convert
        return self.do_preview_preproc()
      File "build/bdist.macosx-10.6-universal/egg/dot2tex/dot2tex.py", line 1105, in do_preview_preproc
        hp,dp,wt = pp.texdims[name]
    KeyError: 'assume_git'
    This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011/MacPorts 2011_5) restricted \write18 enabled.
    entering extended mode
    (./dot2tex_test_006_mwe.tex
    LaTeX2e <2009/09/24>
    Babel <v3.8l> and hyphenation patterns for english, dumylang, nohyphenation, czech, slovak, dutch, ukenglish, usenglishmax, basque, french, german-x-2009-06-19, ngerman-x-2009-06-19, german, ngerman, swissgerman, italian, polish, portuguese, spanish, catalan, galician, loaded.
    )
    *
    
  2. The \\\verb|...| approach in the MWE does not render the code verbatim. Even my short example has the following problems:

    • in order to avoid error messages, I had to add a backslash in front of the underscore, but now the backslash is rendered. So I need a way to render just an underscore;
    • the straight single quote marks around *.swp and .DS\_Store have been replaced by right single quote marks;
    • one member of each pair of greater-than signs has disappeared.
8
  • echo "It's explained on dot2tex man page"; echo 'digraph G {a_0 [texlbl="\verb|XY|"] a_1 [texlbl="$x$"] a_0 -> a_1}' > tmp.dot ; dot2tex tmp.dot > tmp.tex; pdflatex tmp
    – user10274
    Jun 28, 2012 at 7:23
  • Interesting. I can't find the example you gave in the dot2tex documentation, nor in the repo. man dot2tex doesn't work for me - although I used easy_install, so wasn't expecting it to work - but I can't see any documentation in the latest ZIP file either (dot2tex-2.8.7.zip) that includes your example. Please could you tell me more about where you found that explanation? Thanks.
    – user15911
    Jun 28, 2012 at 13:23
  • I didn't write the example I gave was on the man page but the mechanism is explained on the man page, cause that's where I found it (today).
    – user10274
    Jun 28, 2012 at 14:16
  • Your example works, but both this: echo 'digraph G {a_0 [texlbl="\begin{verbatim}XY\end{verbatim}"] a_1 [texlbl="$x$"] a_0 -> a_1}' > tmp.dot ; dot2tex tmp.dot > tmp.tex; pdflatex tmp and also this: echo 'digraph G {d2tdocpreamble = "\usepackage{verbatim}"; a_0 [texlbl="\begin{verbatim}XY\end{verbatim}"] a_1 [texlbl="$x$"] a_0 -> a_1}' > tmp.dot ; dot2tex tmp.dot > tmp.tex; pdflatex tmp fail with the message ! LaTeX Error: Something's wrong--perhaps a missing \item. So I'd be grateful for a fuller answer :)
    – user15911
    Jun 29, 2012 at 11:15
  • 2
    I don't know anything about dot2tex, nor can I run it (I think), but the verbatimbox package allows you to stuff verbatim into a box, and then (immediately or later) recall the box. Perhaps that would help you achieve your goal. May 17, 2013 at 17:41

1 Answer 1

1

I can't get the round shapes, independently on what text I add.

However, the solution is to use more lines.

digraph g {
d2tdocpreamble = "
  \usepackage{varwidth}
  \usepackage{verbatim}
  \usepackage{upquote}
  \renewcommand{\familydefault}{\sfdefault}
";
graph [ rankdir = "TB" ];
node  [ style=rounded, fillcolor=azure];

assume_git [ texlbl="\begin{varwidth}{30em}
  We'll assume that Git is to be used for source control; so as a precaution against
  accidentally checking in temporary files used by Vim or OS X, enter the following
  at the command prompt:
  \begin{verbatim}
  echo '*.swp'      >> .gitignore
  echo '.DS\_Store'  >> .gitignore
  \end{verbatim}
  \end{varwidth}"
 ];

START              -> assume_git;
}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy