RTF syntax highlighting in Doxygen - c++

I'm trying to create an RTF file to use in MS word of all the C++ files in my Visual Studio project. I'm using the most recent Doxygen and I set SOURCE_BROWSER to true, GENERATE_RTF to true, and RTF_SOURCE_CODE to true.
It says it will provide source code with syntax highlighting, but it just pastes all the code in Courier New font without any form of styling whatsoever. How can I get it to provide C++ syntax highlighting in its RTF output?

Indeed although stated in the documentation / Doxyfile the syntax highlighting was not implemented in doxygen.
I've just pushed a proposed patch to github (pull request 741, https://github.com/doxygen/doxygen/pull/741) that implements the syntax highlighting for RTF.
2018/06/10: The push request has been integrated in the master version on github.

Related

Syntax highlighting of unsupported language in WebStorm with TextMate bundle

The usual answer to this question is, "download and add a suitable TextMate bundle." I have done that.
I'm working in WebStorm on a React project using GraphQL. It has a lot of .vtl (Velocity Template Language) files that do not have syntax highlighting. I found out that I can add a TextMate bundle for VTL in order to get highlighting. I got this bundle from https://github.com/textmate/java-velocity.tmbundle. After adding it to WebStorm, there still isn't an appropriate file type, and .vtl files still don't have syntax highlighting.
So, I tried to create a new custom file type, manually supplying lists of keywords to highlight, which make the code slightly more readable. However, every .vtl file is now entirely marked with squiggly red, saying, "Unexpected tokens." I just wanted keyword highlighting, not incorrect assumptions about grammar.
Is this a problem with WebStorm, the bundle, or me? How can I get some basic syntax highlighting specifically for .vtl files?
Note that the TextMate plugin is installed.
The bundle only provides highlighting for *.vm files. Please check if the issue persists if you open java-velocity.tmbundle\Syntaxes\Velocity.tmLanguage file in some text editor and add vtl to the list of supported extensions:
<key>fileTypes</key>
<array>
<string>vm</string>
<string>vtl</string>
</array>
and re-start the IDE?
Note that you need to remove your custom file type to get the extension recognized

How to make CLion auto format C++ code with Google code style, and pass the google cpplint check

I need to auto format my C++ code with google code style, and pass the cpplint check.
I have used + + L to auto format my code in CLion, but the code after format still not follow the google code style.
And I installed the CLion-cpplint plugin, this plugin only tell me where it does not follow the style. But I need a tool to auto format it.
Thanks.
In the root of your project create the file with the name .clang-format and the line
BasedOnStyle: Google inside
Turn on ClangFormat as default formatter
In Git-commit dialog add Reformat code action

How to change doxygen formatting style in Resharper?

Resharper C++ 2017 can generate doxygen headers for functions, classes, and everything else.
However, it writes the commands with the \ prefix, and to keep a consistency with my project's other modules, I need to use the # prefix instead.
I assume that it is possible, since the command is called Document (using 'doc' live template) .
How to change doxygen formatting style in resharper?
You change it like you would any other live template - via ReSharper | Tools | Templates Explorer. Select the C++ scope and update the 'doc' template in the Visual Studio editor to your preference. Take a look at the Creating and Editing Templates help section for more info.

syntax highlighting for clojure code in pdf?

What is the best way to get syntax highlighting to work with clojure when outputting a pdf file? I have looked at some variants:
clj-pdf
generating html first then using flying saucer to generate pdf
but I'm not sure how to do syntax highlighting for either option
You can use pygmentize and output to rtf (and then print to a file) or to latex and then pdflatex creates the pdf.
It's a python package you can easy_install or pip if you need.
Juan Manuel

How to convert R Markdown to PDF?

I've previously asked about the commands for converting R Markdown to HTML.
What is a good way to convert R Markdown files to PDF documents?
A good solution would preserve as much as possible of the content (e.g., images, equations, html tables, etc.). The solution needs to be able to be run from the command-line. A good solution would also be cross-platform, and ideally minimise dependencies to make it easier to share makefiles and so forth.
Specifically, there are a lot of options:
Whether to convert RMD to MD to HTML to PDF; or RMD to MD to PDF; or RMD to PDF
If using the markdown package in R, which options to specify
Whether to use pandoc, a package built into R, or something else
Here's an example rmd file that presumably provides a reasonable test of any proposed solution. It was used as the basis for this blog post.
Updated Answer (10 Feb 2013)
rmarkdown package:
There is now an rmarkdown package available on github that interfaces with Pandoc.
It includes a render function. The documentation makes it pretty clear how to convert rmarkdown to pdf among a range of other formats. This includes including output formats in the rmarkdown file or running supplying an output format to the rend function. E.g.,
render("input.Rmd", "pdf_document")
Command-line:
When I run render from the command-line (e.g., using a makefile), I sometimes have issues with pandoc not being found. Presumably, it is not on the search path.
The following answer explains how to add pandoc to the R environment.
So for example, on my computer running OSX, where I have a copy of pandoc through RStudio, I can use the following:
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
Old Answer (circa 2012)
So, a number of people have suggested that Pandoc is the way to go. See notes below about the importance of having an up-to-date version of Pandoc.
Using Pandoc
I used the following command to convert R Markdown to HTML (i.e., a variant of this makefile), where RMDFILE is the name of the R Markdown file without the .rmd component (it also assumes that the extension is .rmd and not .Rmd).
RMDFILE=example-r-markdown
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"
and then this command to convert to pdf
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
A few notes about this:
I removed the reference in the example file which exports plots to imgur to host images.
I removed a reference to an image that was hosted on imgur. Figures appear to need to be local.
The options in the markdownToHTML function meant that image references are to files and not to data stored in the HTML file (i.e., I removed 'base64_images' from the option list).
The resulting output looked like this. It has clearly made a very LaTeX style document in contrast to what I get if I print the HTML file to pdf from a browser.
Getting up-to-date version of Pandoc
As mentioned by #daroczig, it's important to have an up-to-date version of Pandoc in order to output pdfs. On Ubuntu as of 15th June 2012, I was stuck with version 1.8.1 of Pandoc in the package manager, but it seems from the change log that for pdf support you need at least version 1.9+ of Pandoc.
Thus, I installed caball-install.
And then ran:
cabal update
cabal install pandoc
Pandoc was installed in ~/.cabal/bin/pandoc
Thus, when I ran pandoc it was still seeing the old version.
See here for adding to the path.
I think you really need pandoc, which great software was designed and built just for this task :) Besides pdf, you could convert your md file to e.g. docx or odt among others.
Well, installing an up-to-date version of Pandoc might be challanging on Linux (as you would need the entire haskell-platform˙to build from the sources), but really easy on Windows/Mac with only a few megabytes of download.
If you have the brewed/knitted markdown file you can just call pandoc in e.g bash or with the system function within R. A POC demo of that latter is implemented in the Ṗandoc.convert function of my little package (which you must be terribly bored of as I try to point your attention there at every opportunity).
Right now (August 2014) You could use RStudio for converting R Markdown to PDF.
Basically, RStudio use pandoc to convert Rmd to PDF.
You could change metadata to:
Add table of contents
Change figure options
Change syntax highlighting style
Add LaTeX options
And many more...
For more details - http://rmarkdown.rstudio.com/pdf_document_format.html
For an option that looks more like what you get when you print from a browser, wkhtmltopdf provides one option.
On Ubuntu
sudo apt-get install wkhtmltopdf
And then the same command as for the pandoc example to get to the HTML:
RMDFILE=example-r-markdown
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"
and then
wkhtmltopdf example-r-markdown.html example-r-markdown.pdf
The resulting file looked like this. It did not seem to handle the MathJax (this issue is discussed here), and the page breaks are ugly. However, in some cases, such a style might be preferred over a more LaTeX style presentation.
Only two steps:
Install the latest release "pandoc" from here:
https://github.com/jgm/pandoc/releases
Call the function pandoc in the library(knitr)
library(knitr)
pandoc('input.md', format = 'latex')
Thus, you can convert your "input.md" into "input.pdf".
I found using R studio the easiest way, but if wanting to control from the command line, then a simple R script can do the trick using rmarkdown render command (as mentioned above). Full script details here
#!/usr/bin/env R
# Render R markdown to PDF.
# Invoke with:
# > R -q -f make.R --args my_report.Rmd
# load packages
require(rmarkdown)
# require a parameter naming file to render
if (length(args) == 0) {
stop("Error: missing file operand", call. = TRUE)
} else {
# read report to render from command line
for (rmd in commandArgs(trailingOnly = TRUE)) {
# render Rmd to PDF
if ( grepl("\\.Rmd$", rmd) && file.exists(rmd)) {
render(rmd, pdf_document())
} else {
print(paste("Ignoring: ", rmd))
}
}
}
If you don't want to install anything you can output html. Then open the html file - it should open in a browser window, then right click to print. In the print window, select "save as pdf" in the bottom right hand corner if you're on a Mac. Voila!
Follow these simple steps :
1: In the Rmarkdown script run Knit(Ctrl+Shift+K)
2: Then after the html markdown is opened click Open in Browser(top left side) and
the html is opened in your web browser
3: Then use Ctrl+P and save as PDF .