Re: Font greci “stile codice” dentro un codice listing

#55620
Up
0
Down
::

Bene Enrico, quasi perfetto. Per ragioni Artistiche, mi sono permesso di cambiare il nome del tuo comando in \grecosf. Per il resto il codice è identico.
`\documentclass{scrreprt}
\usepackage[writefile]{listings}
\usepackage{classicthesis-ldpkg}
\usepackage[beramono]{classicthesis}
\usepackage[polutonikogreek,italian]{babel}
\usepackage[italian]{arsclassica}

\newcommand{\grecosf}[1]{%
\begin{otherlanguage*}{greek}%
\testfamily#1%
\end{otherlanguage*}}

\newcommand{\greeksf}{\fontfamily{cmss}\selectfont}
\makeatletter
\edef\grs@sans{\sfdefault}
\edef\grs@tt{\ttdefault}
\def\testfamily{%
\ifx\f@family\grs@sans\greeksf\fi
\ifx\f@family\grs@tt\greeksf\fi}
\makeatother
\DeclareFontFamily{LGR}{\ttdefault}{}
\DeclareFontShape{LGR}{\ttdefault}{m}{n}{<->cmtt10}{}
\DeclareFontFamily{LGR}{\sfdefault}{}
\DeclareFontShape{LGR}{\sfdefault}{m}{n}{<->cmss10}{}

\lstset{basicstyle=\normalfont\ttfamily,frame=lines}
\lstset{escapeinside={£*}{*£}}

\lstnewenvironment{codice}%
{\setkeys{lst}{columns=fullflexible,keepspaces=true}%
\lstset{basicstyle=\small\ttfamily,escapeinside={£*}{*£}}%
}%
{}

\begin{document}

\begin{codice}
\begin{otherlanguage}{greek}
£*\grecosf{Th| p'anta dido'ush| ka`i >apolambano'ush| f'usei id'hmwn l'egei; <ap'olabe, <`o j'eleic>>. L'egei d`e to~uto o>u}*£
£*\grecosf{katajrasun'omenos, >all`a peijarq~wn m'onon ka`i e>uno~wn a>uth|.}*£
\end{otherlanguage}
\end{codice}
\end{document}`
Come vedi, il testo greco presenta un piccolo rientro nel margine sinistro. È voluto? Non sarebbe possibile eliminarlo?

Grazie mille Enrico: come faremmo senza di te? 😉
L.

Il problema è che manca un % nella definizione, l’ho messo in rosso nel codice riportato.

Perché rinominare il comando? ❓ Non capisco. Con la definizione che ti ho dato hai il comportamento che ritengo quello voluto: in ambiente “normale” \greco compone con i font greci “serif”; in ambiente “sans serif” o “dattilografico” \greco compone con i font greci “sans serif”.

Ciao
Enrico

Go to top