Re: Scrivere numeri romani maiuscoli per averli in maiuscoletto

#69781
Up
0
Down
::

illinguista1972″ post=68949Titolo molto strano, ma non sempre la sintesi è possibile.

Ammettiamo di definire un comando come

`\newcommand{\papa}[2]{#1}~{\scshape #2}`

e ammettiamo che la scrittura sia corretta, per ottenere il nome e il numero di un papa. Ora, da quanto mi segnalano, se dal PDF risultante si facesse copia e incolla del nome di uno dei vicari di Cristo, diciamo Pio IX (con “IX” in maiuscoletto), si otterrebbe una cosa come Pio ix.

Ora, è possibile fare in modo tale che anziché scrivere

`\papa{Benedetto}~{xvi}`

si possa scrivere

`\papa{Benedetto}~{XVI}`

e ottenere ugualmente in output il numero romano maiuscoletto, per evitare il problema (ma è vero?) esposto sopra?

Ciao
Tommaso

È vero, naturalmente: se scrivi “ix” troverai “ix” quando copi. Un modo per evitarlo c’è: scrivere Benedetto XVI e non pensarci più. 🙂

Altrimenti puoi usare qualche bieco trucco. Il peggiore è quello di usare un font di dimensione ridotta, che può funzionare solo se il font ha varianti ottiche (come Latin Modern, per esempio), altrimenti lo spessore dei tratti rivelerebbe il trucco:

`\makeatletter
\newcommand{\smallroman}[1]{{\check@mathfonts\fontsize{\dimexpr\sf@size pt+.11ex\relax}\z@\selectfont #1}}
\makeatother`
Naturalmente l’aggiustament (+0.11ex) dipende dal font.

Secondo trucco:

`\usepackage{accsupp}
\newcommand{\smallromanI}[1]{\BeginAccSupp{method=plain,ActualText={#1}}{\scshape\lowercase{#1}}\EndAccSupp{}}`

Questo però funziona solo se il visualizzatore PDF ha certe caratteristiche; in pratica solo se è Adobe Reader 9 (o successivo).

Terzo trucco:

`\newcommand{\smallromanII}[1]{{\addfontfeatures{Letters=UppercaseSmallCaps}#1}}`

che ovviamente può funzionare solo con XeLaTeX o LuaLaTeX e se il font ha definito la trasformazione “c2sc” e possiede un’opportuna mappa dei caratteri nell’area privata. Per esempio Linux Libertine ha la trasformazione ma non la mappa; quindi il risultato stampato è corretto, ma la copiatura produce spazzatura.

Ciao
Enrico

PS: messaggio numero 11000 🙂

Go to top