Como converter uma célula de output em uma célula de texto sem ter “” no texto?

Aug 18 2020

Isso faz parte do meu código:

Grid[{{"Número de indivíduos", "Máximo", "Mínimo", "Mediana", "Média", "Desvio Padrão"}},
Dividers -> Center] // TextCell // CellPrint

E o resultado que obtenho é este:

"Número de obrigações" | "Máximo" | "Mínimo" | "Mediana" | "Média" | "Desvio Padrão"

Mas quero obter esse resultado sem as aspas, como posso fazer isso?

Respostas

1 CarlWoll Aug 19 2020 at 19:05

Basicamente, o que controla se uma string mostra aspas ou não é a Cellopção ShowStringCharacters. Para células de output, esta opção é definida como False:

CurrentValue[{StyleDefinitions, "Output", ShowStringCharacters}]

Falso

Portanto, as células de output não mostrarão aspas:

Grid[
    {{"Número de indivíduos", "Máximo", "Mínimo", "Mediana", "Média", "Desvio Padrão"}},
    Dividers -> Center
] // TextCell

Se você insiste em usar CellPrinttambém:

Grid[
    {{"Número de indivíduos", "Máximo", "Mínimo", "Mediana", "Média", "Desvio Padrão"}},
    Dividers -> Center
] // TextCell //CellPrint

em seguida, você cria o seguinte Cellobjeto (você pode ver isso usando Cell | Show Expressionno menu):

Cell [BoxData [TagBox [GridBox [{{"" <N [UAcute] mero de indiv [IAcute] duos> "", "" <M [AAcute] ximo> "", "" <M [IAcute] nimo> " "," "<Mediana>" "," "<M [EAcute] dia>" "," "<Desvio Padr [ATilde] o>" "}}, AutoDelete-> Falso, GridBoxDividers -> {" Colunas "- > {False, {True}, False}, "Rows" -> {False, {True}, False}}, GridBoxItemSize -> {"Columns" -> {{Automatic}}, "Rows" -> {{Automatic }}}], "Grid"]], GeneratedCell-> True, CellAutoOverwrite-> True, CellChangeTimes -> {3.806851714647841 * ^ 9}]

Observe que esta célula não possui um tipo (por exemplo, "Saída") como o segundo argumento, como o segundo argumento é GeneratedCell -> True. Portanto, o valor da opção é o padrão:

CurrentValue[ShowStringCharacters]

Verdadeiro

É por isso que adicionar CellPrint(que é completamente desnecessário) mostra as aspas. Se você realmente precisar usar CellPrint, poderá alterar o seu TextCellpara especificar esta opção:

TextCell[
    Grid[
        {{"Número de indivíduos", "Máximo", "Mínimo", "Mediana", "Média", "Desvio Padrão"}},
        Dividers -> Center
    ],
    ShowStringCharacters->False
] //CellPrint

IntellectualDilettante Aug 19 2020 at 02:20

Saída com estilo "Imprimir"

Grade [{{"Texto 1", Estilo ["Texto 2", RGBColor [0.8, 0,35, 0], Negrito, FontFamily -> "Franklin Gothic", FontSize -> 17], "Texto 3", Estilo ["Texto 4 ", RGBColor [0, 0,5, 0,5], FontFamily ->" Garamond "FontSize -> 20]}}, Divisores -> Todos] // Imprimir