4
$\begingroup$

I am using a standard notebook file in which code is showing different plots.

How can I hide all code cells with Sytle: Input so that I can Export the Notebook to a pdf file which is showing only the plots?

For example:

enter image description here

In this plot I can hide the LisPlot command by the menu (Cell->Cell Properties->Open (disable)).

Question: Does a command exists to hide all input cells at once?

$\endgroup$
  • 2
    $\begingroup$ Possible duplicate of How can I clean up a notebook? $\endgroup$ – m_goldberg Mar 4 '17 at 21:19
  • $\begingroup$ My answer to this question gives instructions of how to do what you are asking. you might want to leave out the line SetOptions[nb, ShowCellBracket -> False]; $\endgroup$ – m_goldberg Mar 4 '17 at 21:23
  • $\begingroup$ @m_goldberg your solution leaves a gap in place of input cell so in case of multiple input cells there will be strange gaps in the pdf. It also affects the Input cell in general, not in printing context. Additionaly, I'd argue that if this one is close enough to be a duplicate then both, this and yours, should be closed as a duplicate of one of topics linked in my answer. $\endgroup$ – Kuba Mar 5 '17 at 9:53
2
$\begingroup$

It seems that there isn't any perfect solution for this problem in a closely realted: Is there a way to hide or toggle the visibility of code?

Here are alternatives:


Quick fix

If you don't want to play with styles and want a quick solution you can just clone a notebook and delete "Input" cells before printing:

NotebookDelete @ Cells[ 
    NotebookPut @ NotebookGet[ notebook ]
  , CellStyle -> {"Input"} 
]

Persiting solution

If you want this to be a fixed property of a notebook then we can combine

how to affect style for PDF exported notebook with

how to create an invisible cell

and create private styles for our notebook (or edit alterady existing private styles if that is the case)

SetOptions[
    EvaluationNotebook[]
  , StyleDefinitions -> Notebook[{
        Cell[StyleData[StyleDefinitions -> "Default.nb"]]
      , Cell[
            StyleData["Input", "Printout"]
          , CellElementSpacings -> {"CellMinHeight" -> 0, "ClosedCellHeight" -> 0}
          , Background -> Hue[.8]
          , CellMargins -> -2
          , CellOpen -> False
          , CellFrame -> 0
          , ShowCellBracket -> False
        ]
    }]
]
$\endgroup$
  • $\begingroup$ Your solution with the first snipplet of code is great. Can you give an example on how I have to use the SetOptions code. Thank you. $\endgroup$ – mrz Mar 6 '17 at 11:25
  • 1
    $\begingroup$ @mrz evaluate it in a notebook you want to be affected or replace EvaluationNotebook[] with NotebookObject which points to that notebook. Then try to print to pdf. $\endgroup$ – Kuba Mar 6 '17 at 11:27
  • $\begingroup$ I like your solution with SetOptions very much, because it does not change the notebook and only removes the input cells and the cell brackets at right when printing. Great ... $\endgroup$ – mrz Mar 6 '17 at 12:05

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.