Comunque tabularx ricompone la tabella tre volte; questo implica che memorizzi tutto il contenuto dell’ambiente in una macro o in un registro token, e usi questo contenuto memorizzato epr calcolare la larghezza della tabella con due valori prefissati della colonna X; in base alla larghezze ottenute determina per estrapolazione lineare la larghezza giusta e la terza volta ottiene il risultato.
È chiaro che l’oggetto mobile costituito dal contenuto della tabella viene ben sbatacchiato fra un comando e l’altro, per cui può darsi benissimo che l’impostazione \obeyspaces si rompa stra facendo e non sia più efficace come nei primi due casi dove la tabella viene composta more solito una volta sola.
Però ho ridefinito localmente la tilde e funziona:
`
\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{tabularx}
\newcommand\thinspaces{%
\obeyspaces
\begingroup\lccode`\~=`\ \lowercase{\endgroup\def~}{\hskip.16667em}}
\begin{document}
{\thinspaces
23 A6 FE 90 E3 D9 BB 30 69 CF 43 2C FD 4B CF 67 D7 3C 46 22 %
9A 08 DB 05 1D 45 DC 07 F3 1E 4D 1F 4B 11 23 5B 42 91 14 95 %
25 88 1F BD 60 E5 6F 84 44 70 7A 95 EC 30 E4 46 4F 37 87 F1 %
B2 FA 45 04 6F 7C BE 97 25 C7 20 E7 F3 90 55 51 99 3A 72 35 %
40 F2 E8 E3 36 3A 7D 58 61 9C 91 D6 AC 34 E7 E8 09 27 64 4F %
2C 4C C2 D2 A3 32 DB 2B 7E F0 B6 F3 69 96 E4 2B C3 2B 42 ED %
CA 2C 3C C8 F5 AA E6 71
}
\bigskip
\begin{tabular}{l>\ttfamily p{7.5cm}}
Public key algorithm: & sha1WithRSAEncryption \\
&
\thinspaces
23 A6 FE 90 E3 D9 BB 30 69 CF 43 2C FD 4B CF 67 D7 3C 46 22 %
9A 08 DB 05 1D 45 DC 07 F3 1E 4D 1F 4B 11 23 5B 42 91 14 95 %
25 88 1F BD 60 E5 6F 84 44 70 7A 95 EC 30 E4 46 4F 37 87 F1 %
B2 FA 45 04 6F 7C BE 97 25 C7 20 E7 F3 90 55 51 99 3A 72 35 %
40 F2 E8 E3 36 3A 7D 58 61 9C 91 D6 AC 34 E7 E8 09 27 64 4F %
2C 4C C2 D2 A3 32 DB 2B 7E F0 B6 F3 69 96 E4 2B C3 2B 42 ED %
CA 2C 3C C8 F5 AA E6 71
\end{tabular}
\bigskip
\begin{tabularx}{\textwidth}{l>\ttfamily X}
Public key algorithm: & sha1WithRSAEncryption \\
&
\def~{\hskip.16667em}%
23~A6~FE~90~E3~D9~BB~30~69~CF~43~2C~FD~4B~CF~67~D7~3C~46~22~%
9A~08~DB~05~1D~45~DC~07~F3~1E~4D~1F~4B~11~23~5B~42~91~14~95~%
25~88~1F~BD~60~E5~6F~84~44~70~7A~95~EC~30~E4~46~4F~37~87~F1~%
B2~FA~45~04~6F~7C~BE~97~25~C7~20~E7~F3~90~55~51~99~3A~72~35~%
40~F2~E8~E3~36~3A~7D~58~61~9C~91~D6~AC~34~E7~E8~09~27~64~4F~%
2C~4C~C2~D2~A3~32~DB~2B~7E~F0~B6~F3~69~96~E4~2B~C3~2B~42~ED~%
CA~2C~3C~C8~F5~AA~E6~71
\end{tabularx}
\end{document}
`
la definizione con \def resta locale; dentro ad una cella di una tabella qualunque comando o qualunque definizione si esaurisce dentro la cella (la cella funziona in certo senso da gruppo); definendo la tiled ecome uno spazio da 1/6em direttamente dentro alla cella e sostituendo tutti gli spazi con una tilde con un “Replace all” esteso all’intera selezione (il contenuto della cella, cioè la sequenza di byte esadecimali che hai scritto, cosa che richiede una frazione di secondo) ho ottenuto il nuovo contenuto dell’ambiente tabularx e come puoi constatare funziona perfettamente.
Perché non funziona con una definizione esterna alla cella? non lo so, e i tentativi di tracing che ho fatto non me l’hanno spiegato;
ho il sospetto che ci siano degli inconvenienti fra il codice attivo dello spazio e il codice lc della tilde quando il comando \thinspaces è sviluppato dentro l’argomento del corpo della tabella espandibile. Con \def si ha una definizione fresca ognuna delle tre volte che si ricompila la tabella.