Pluto PDF and printing

Is there a way to make the Pluto screen that shows in the browser WYSIWYG when printed or saved to PDF? Things look bad when I print to printer or PDF from Pluto. Many times the cells are squished up.
I’m using firefox as the browser. Is there a setting I should look at?

Also, is there a way to make the work area wider? It is about a third of the browser width right down the middle. I have symbolic equations displayed in latex and they have scroll bars on the bottom. How can I make this more meaningful for printing?

Best Regards,
Allan Baker

Unfortunately I think here is still no way to see where your page break will happen in the Pluto notebook.

There was a contribution in a PlutoUI issue on how to create custom pagebreaks in cells so that you can control a bit the printing flow.

For what regards changing the width of the notebook, you can do that by putting custom CSS in any pluto cell.
For example you can always center the notebook and enlarge it by adding this

html"""
<style>
body:not(.disable_ui) main {
	max-width: 95%;
	margin-right: 0px;
	align-self: center;
}
</style>
"""

to any cell like so:

and the export to pdf should also print with wider cells.
There was also this package:

specifically made for customizing the Pluto appearance

Thank you that is helpful. I discovered google chrome looks better than Firefox on my machine. But the wide frame code will be useful.

The wide frame code works great. Is there a way to get it to carry over to the Static HTML code generated? It is still embedded in the file I can see but it isn’t evaluated. Perhaps the answer is in the plutostyles package talked about above which I haven’t investigated.

The answer is actually simpler if you don’t want to use the external package.
Right now the snippet above is not working because in static html print the html main tag gets the disable_ui class, so the CSS i posted above only works when that class is not present on main.

I did that because just putting body main as selectors is less specific than body:not(.disable_ui) main, which is used in the main Pluto css and would then simply override what you put in the cell (you can look about CSS specificity here)

If you want the style to work regardless and be as specific as the one in the standard editor CSS you can just put a fake class name there, so the style in the cell overrides the default one as it is defined later in the HTML document:

html"""
<style>
body:not(.fake_class) main {
	max-width: 95%;
	margin-right: 0px;
	align-self: center;
}
</style>
"""

To save a notebook as pdf there is the PlutoPDF package. it works for me perfectly.
Here it is: GitHub - JuliaPluto/PlutoPDF.jl: Don't let your printer miss out on the fun

2 Likes