2012-07-13 8 views
9

Secondo info groff (sezione 5.11 Traduzioni di caratteri), \. deve stampare solo il punto. Tuttavia, questo non è ciò che sembra accadere. Se io rendo questa pagina di manualePunti di escape in groff

.TH x x x x 
\.SH foo 

ottengo foo reso come un titolo di sezione, e .SH non viene stampato.

Quindi, perché questo accade e come faccio a sfuggire il punto (e l'apostrofo) a l'inizio della linea in groff?

risposta

10

Per uscire dot all'inizio della linea di utilizzo scrittura \[char46]:

\[char46]SH foo 

stampe

.SH foo 

Questo è un comportamento previsto, ma dovrebbe essere fissato in pagina di manuale. Here è un bug report.

Di seguito è possibile leggere la descrizione di entrambi \\ (accorciato) e \. (dalle pagine di informazioni).

-- Escape: \\ 
[...] 

`\\' is a `delayed' backslash; more precisely, it is the default 
escape character followed by a backslash, which no longer has 
special meaning due to the leading escape character. It is _not_ 
an escape sequence in the usual sense! In any unknown escape 
sequence `\X' the escape character is ignored and X is printed. 
But if X is equal to the current escape character, no warning is 
emitted. 

As a consequence, only at top-level or in a diversion a backslash 
glyph is printed; in copy-in mode, it expands to a single 
backslash which then combines with the following character to an 
escape sequence. 

[...] 

-- Escape: \. 
Similar to `\\', the sequence `\.' isn't a real escape sequence. 
As before, a warning message is suppressed if the escape character 
is followed by a dot, and the dot itself is printed. 
2

Basta premettere al punto con un carattere di ampiezza zero:

\&. -- this a a dot. 

o passare temporaneamente ad un altro carattere di controllo:

.cC# 
. -- this is a dot. 
#cc