- Questo topic ha 12 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 11 anni, 8 mesi fa da
OldClaudio.
-
CreatoreTopic
-
14 Dicembre 2014 alle 22:43 #99138::
Probabilmente mi sto perdendo in un bicchiere d’acqua, ma avevo deciso
di rendere delle URL in un testo col Latin Modern Typewriter Proportional,
solo che risulta troppo grande rispetto al Serif che uso. Ora,
`\renewcommand*\ttdefault[scaled=0.95]{lmvtt}
\renewcommand*\ttdefault[scale]{lmvtt}`
mi danno tutti errore. Come posso scalarlo?
grazie
mPS
Per contro, funziona
`\usepackage[scaled=.95,proportional,lightcondensed]{zlmtt}`
-
CreatoreTopic
-
AutoreRisposte
-
-
15 Dicembre 2014 alle 11:22 #99139
-
15 Dicembre 2014 alle 18:05 #99140
-
15 Dicembre 2014 alle 20:37 #99141::
Prova ad usare il pacchetto cfr-lm; esso usa i Latin Modern, ma attraverso ofnt virtuali cosicché hai tutte le possibili combinazioni. Le guide tematiche che tro vella sesione Documentazion/GuideTemariche di questo sito sono composte con quel pacchetto. A me non sembra che con quel pacchetto i tt proporzionali siano più grandi degli altri della stessa collezione, forse graze a diverse impostazioni die file .fd di descrizione dele famiglie di font, o forse per come sono congegnati i font virtuli che usano comunque i veri LAttin Moden.Inoltre tienei presente che anche i Latin Modern usabili con il pacchetto lmodern sono scalabili con continuità, benché dispongano dei corpi ottici; ca[isco che caricarli già scalati sarebbe meglio, ma puoi scalrli anche definendoti dei ocmandii adeguati mediante i comandi di basso livelli descritti, per esempio nella Guida Tematica sui font.
Esiste un’altra possibilità che richiede un po’ di immaginazione edisponibità a fare attenzione di non combinare pasticci con i file.fd
Visto che vuoi usare i font lmvtt, cercati il file corrispondente (non so come si chiami, ma penso che non sia difficile scoprirlo) te lo copi nella tau cartella di lavoro, poi modifichi le definizioni specificando un fattore di scala secondo la sintassi della guida fntguide (che leggi aprendo un terminale, scrivendoci dentro texdoc fntguide, premendo
; leggendo). Il file così modificato deve restare sempre nella tua cartella di lavoro, al massimo lo puoi mettere nel tuo albero personale (non quello locale, ma quello personale) e, dopo aver creato o aggiornato il filename dtabase del tuo albero personale, se la tua installazione lo richiede, lo puoi usare con qualunque documento in qualunque cartella tu lo crei, sempre e comunque al posto del file originale. Non puoi usare entrambi; o meglio puoi ma non nello stesso documento, ma devi ricordarti di eseguire qualche trucchetto. Perché con pdflatex queste cose non si possono fare in modo più semplice? perché pdflatex non può usare i font OpenTipe per i quali il pacchetto di gestione dei font OpenType, fontspec, può accedere alle loro proprietà. Ma pdflatex non può usare i font OpenTYpe, e quindi non può usare fontspec.
Detto questo, i font tt Latin Modern proporzionali non sono perfetti, e hanno non pochi difetti; Nelle guide tematiche li ho dovuti togliere e lasciare i monospaziati; finché li usavo, non ho notato nessuna necessità di scalarli forse, appunto, perché il pacchetto cfr-lm lo fa già di suo.
-
15 Dicembre 2014 alle 22:07 #99142::
samiel” post=98693Eh, so che con Xelatex certe operazioni sono assai semplici.
Ma un Latin Modern possibile che non si possa scalare con pdflatex?Certo che si può scalare. Claudio ti ha indicato come fare e lui, senza dubbio saprebbe farlo.
Lo ha fatto con il Porson per la classe suftesi, per esempio.
Io posso dirti che, secondo me, non ne vale la pena. Ci sono soluzioni molto più semplici,
che funzionano e non hanno inconvenienti. L’uso di XeLaTeX comporta limitazioni solo se si deve scrivere matematica avanzata (almeno così era fino a qualche tempo fa).
Per la matematica semplice è diventato ormai equivalente a LaTeX.
Quando ho iniziato ad usare LaTeX ho dovuto imparare come installare un font type1 per il quale disponevo solo della versione True Type. Non ti dico che lavoraccio.
Conversione, generazione dei file con le metriche, ecc. È una cosa che non farei mai più, se non sotto tortura. Se qualcuno mi chiede come fare per usare un font simile, gli rispondo semplicemente di cambiare font. Bisogna accettare i limiti, in definitiva. C’è sicuramente un modo per adattare una Ferrari ai percorsi sterrati, ma è molto più semplice comprarsi un Hammer 😉Ciao
Ivan
-
16 Dicembre 2014 alle 10:48 #99143::
samiel” post=98693Eh, so che con Xelatex certe operazioni sono assai semplici.
Ma un Latin Modern possibile che non si possa scalare con pdflatex?Come ti ho detto si può fare. Ivan ha ribadito che l’ho già fatto per la sua classe suftesi e il font Porson.
Certo non puoi scalare i font usando il comando \renewcommand il cui unico argomento facoltativo lecito è il numero degli argomenti che possono essere gestiti dal comando che stai ridefinendo.
Forse si potrebbe definre un comando che inserisce il fattore di scala nella descrizione del font; non ci ho mai provato, ma come dice Ivan non serve modificare una Ferrari per andare sullo sterrato. Lui propende per unHummer; io propoendo per un lavoretto sporco, da non imitare, ma che per un dato documento può servire.
Assumo che tu stia usando la codifica T1 per tutti i latin modern compreso il teletype a spaziatura variabile. Allora bisogna modificare il file t1lmvtt.fd. Non serve andarlo a cercare sul tuo disco, perché qui te lo do già modificato; ti copia questo codice e salvalo con il nome t1lmvtt.fd nella cartela del tuo documento.`% This file belongs to the Latin Modern package. The work is released
% under the GUST Font License. See the MANIFEST-Latin-Modern.txt and
% README-Latin-Modern.txt files for the details. For the most recent version of
% this license see http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt
% or http://tug.org/fonts/licenses/GUST-FONT-LICENSE.txt% QUESTO FILE E' MODIFICATO RISPETTO ALL'ORIGINALE MA, MALGRADO LA LICENZA NE CONSENTA
% LA MAODIFICA, NON E' POSSIBILE CAMBIARGLI IL NOME COME LA LICENZA RICHIEDE.
%
% ******************************************
% * LO SI USI A PROPRIO RISCHIO E PERICOLO *
% ******************************************\ProvidesFile{t1lmvtt.fd}[2009/10/30 v1.6 Font defs for Latin Modern]
\DeclareFontFamily{T1}{lmvtt}{}\ifx\lmtt@use@light@as@normal\@empty
% macro defined, so we use the light variant as medium (m), and
% medium as semi-bold (sb):
\DeclareFontShape{T1}{lmvtt}{sb}{n}
{<-> ec-lmvtt10}{}
\DeclareFontShape{T1}{lmvtt}{sb}{sl}
{<-> ec-lmvtto10}{}
\DeclareFontShape{T1}{lmvtt}{sb}{it}
{<->sub*lmvtt/m/sl}{}
%%%%%%%% light (l) and dark (b) variants:
\DeclareFontShape{T1}{lmvtt}{m}{n}
{<-> ec-lmvtl10}{}
\DeclareFontShape{T1}{lmvtt}{m}{sl}
{<-> ec-lmvtlo10}{}
\DeclareFontShape{T1}{lmvtt}{m}{it}
{<->sub*lmvtt/l/sl}{}\else
% usual setup of variants:
\DeclareFontShape{T1}{lmvtt}{m}{n}
{<-> [0.95] ec-lmvtt10}{}
\DeclareFontShape{T1}{lmvtt}{m}{sl}
{<-> [0.95] ec-lmvtto10}{}
\DeclareFontShape{T1}{lmvtt}{m}{it}
{<->sub*lmvtt/m/sl}{}
%%%%%%%% light (l) and dark (b) variants:
\DeclareFontShape{T1}{lmvtt}{l}{n}
{<-> [0.95] ec-lmvtl10}{}
\DeclareFontShape{T1}{lmvtt}{l}{sl}
{<-> [0.95] ec-lmvtlo10}{}
\DeclareFontShape{T1}{lmvtt}{l}{it}
{<->sub*lmvtt/l/sl}{}
\fi
% bold is always bold (b):
\DeclareFontShape{T1}{lmvtt}{b}{n}
{<-> [0.95] ec-lmvtk10}{}
\DeclareFontShape{T1}{lmvtt}{b}{sl}
{<-> [0.95] ec-lmvtko10}{}
\DeclareFontShape{T1}{lmvtt}{b}{it}
{<->sub*lmvtt/b/sl}{}
\DeclareFontShape{T1}{lmvtt}{bx}{n}
{<->ssub*lmvtt/b/n}{}
\DeclareFontShape{T1}{lmvtt}{bx}{sl}
{<->ssub*lmvtt/b/sl}{}
\DeclareFontShape{T1}{lmvtt}{bx}{it}
{<->sub*lmvtt/b/sl}{}
\endinput
%%
%% End of file `t1lmvtt.fd'.`Vedrai che fra parentesi quadre tro 0.95; sostituiscine il valore con quello che più si adatta con gli altri tuoi font. Qui ti metto un esempio minimo compilabile.`\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\renewcommand*\ttdefault{lmvtt}\begin{document}
\sffamily Questo testo viene scritto con un font lineare, mentre
\ttfamily questo testo viene scritto in teletype a spaziatura variabile.
\end{document}`Se al posto di 0.95 ci metti 0.5 vedi un cambio drammatico…; ovviamente non devi usare un fattore di scala così piccolo, ma te lo dicevo solo per mostrarti l’effetto di quei comandi.
Siccome non mi hai detto quali altri font stai usando con questi lmvtt, non sono ingrado di mettere qualche altra cosa al posto di 0.95, che ho messo solo a titolo d’esempio.Questa non è un Hummer, ma è una comune vetture con i pneumatici MD (mud and snow).
[EDIT] Aggiunta di una modifica.
Ti propongo una modifica che ti rende il lavoro più semplice.
Prendi il file t1lmvtt.fd e sostituisci il valore 0.95 in tutte le sue posizioni con la macro [tt]\lmvtt@scale@factor[/tt]. poi prova il seguente esempio minimo compilabile:`\documentclass{article}
% Define commands for setting a scaling factor for Latin Modern Variable teletype fonts
% (only T1 encoded)
\usepackage{etoolbox}
% Provide a default value
\csdef{lmvtt@scale@factor}{1.0}
% define a setting command
\newcommand*\scalelmvttfonts[1]{\csdef{lmvtt@scale@factor}{#1}}\usepackage[T1]{fontenc}
% before first mention of lmvtt fonts set a value different from default
\scalelmvttfonts{0.95}
\usepackage{lmodern}
\renewcommand*\ttdefault{lmvtt}\begin{document}
\sffamily Questo testo viene scritto con un font lineare, mentre \ttfamily questo testo viene scritto in teletype a spaziatura variabile.
\end{document}`Semplicemente usando la macro \scalelmvttfonts con un argomento diverso da 1.0 puoi vedere i risultati senza bisogno di modificare ogni volta il file .fd.
Va da sé che il file .fd, comunque, deve restare confinato nella cartella del documento dove ne vuoi fare uso.
-
16 Dicembre 2014 alle 21:20 #99144::
Tempo fa mi ero creato la versione “scaled” di qualche font (ad esempio l’Avantguarde
prima che il clone fosse disponibile nei TeX Gyre) creando il file .sty e il relativo .fd.
Procedura peraltro relativamente lunga e noiosa… Quando mi chiedevo se fosse possibile
scalarlo intendevo dire se eragiò disponibile l’opzione scaled. Grazie a OldClaudio per il codice.
Il font che uso nel testo è l’EB Garamond, per questo il LM risulta un po’ più grande.
In ogni caso è vero, troppa fatica per un font usato per pochissimi URL, meglio ricorrere
a Xelatex o semplicemente cambiare font 🙂m
-
17 Dicembre 2014 alle 8:43 #99145::
Già, non ci avevo pensato; con u file.sty tutto si ridurrebbe a chiamare il pacchetto con un’opzione costituita dal fattore di scala. Molto più semplice. Se vuoi ti scrivo il file .sty.In realtà mi domando perché, specialmente per i Latin Modern che sono scalabili con continuità a tratti non ci abbiano pensato quelli del GUST.
-
17 Dicembre 2014 alle 20:03 #99146::
Se vuoi ti scrivo il file .sty.
Troppo lusso !! 🙂
Forse non c’è molto da cambiare rispetto a quello
che avevo creato tempo addietro per Avantgarde…
`\ProvidesPackage{myavant}
\RequirePackage{keyval}
\define@key{AVG}{scaled}[.95]{%
\def\AVG@scale{#1}}
\def\ProcessOptionsWithKV#1{%
\let\@tempc\relax
\let\AVG@tempa\@empty
\ifx\@classoptionslist\relax\else
\@for\CurrentOption:=\@classoptionslist\do{%
\@ifundefined{KV@#1@\CurrentOption}%
{}%
{%
\edef\AVG@tempa{\AVG@tempa,\CurrentOption,}%
\@expandtwoargs\@removeelement\CurrentOption
\@unusedoptionlist\@unusedoptionlist
}%
}%
\fi
\edef\AVG@tempa{%
\noexpand\setkeys{#1}{%
\AVG@tempa\@ptionlist{\@currname.\@currext}%
}%
}%
\AVG@tempa
\let\CurrentOption\@empty
}
\ProcessOptionsWithKV{AVG}
\AtEndOfPackage{%
\let\@unprocessedoptions\relax
}
\renewcommand{\sfdefault}{pagscaled}
\endinput`
-
19 Dicembre 2014 alle 22:26 #99147::
Usando il pacchetto xkeyval le definizioni per le opzioni sono più semplici; mettendo nel pacchetto anche la descrizione del font modificata con l’aggiunta del fattore di scala, si ha il duplice vantaggio di poter specificare con una opzione il fattore di scala nella chiamata del pacchetto, e non si ha nessuna interferenza fra la descrizione dei font di questo pacchetto e quella degli altri font; quindi puoi salvarlo nel tuo albero personale e usarlo con qualunque documento.`\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{lmvttscaled}[2014/12/19 v.1.0 Load Latin Modern variable teletype font with appropriate scale factor]
\RequirePackage{xkeyval}
\DeclareOptionX{scalefactor}[1.0]{\def\lmvtt@scale@factor{#1}}
\DeclareOptionX*{PackageWarning{lmvttscaled}{`\CurrentOption' ignored}}
\ExecuteOptionsX{scalefactor=1.0}
\ProcessOptionsX\DeclareFontFamily{T1}{lmvtt}{}
\ifx\lmtt@use@light@as@normal\@empty
% macro defined, so we use the light variant as medium (m), and
% medium as semi-bold (sb):
\DeclareFontShape{T1}{lmvtt}{sb}{n}
{<-> [\lmvtt@scale@factor] ec-lmvtt10}{}
\DeclareFontShape{T1}{lmvtt}{sb}{sl}
{<-> [\lmvtt@scale@factor] ec-lmvtto10}{}
\DeclareFontShape{T1}{lmvtt}{sb}{it}
{<->sub*lmvtt/m/sl}{}
%%%%%%%% light (l) and dark (b) variants:
\DeclareFontShape{T1}{lmvtt}{m}{n}
{<-> [\lmvtt@scale@factor] ec-lmvtl10}{}
\DeclareFontShape{T1}{lmvtt}{m}{sl}
{<-> [\lmvtt@scale@factor] ec-lmvtlo10}{}
\DeclareFontShape{T1}{lmvtt}{m}{it}
{<->sub*lmvtt/l/sl}{}\else
% usual setup of variants:
\DeclareFontShape{T1}{lmvtt}{m}{n}
{<-> [\lmvtt@scale@factor] ec-lmvtt10}{}
\DeclareFontShape{T1}{lmvtt}{m}{sl}
{<-> [\lmvtt@scale@factor] ec-lmvtto10}{}
\DeclareFontShape{T1}{lmvtt}{m}{it}
{<->sub*lmvtt/m/sl}{}
%%%%%%%% light (l) and dark (b) variants:
\DeclareFontShape{T1}{lmvtt}{l}{n}
{<-> [\lmvtt@scale@factor] ec-lmvtl10}{}
\DeclareFontShape{T1}{lmvtt}{l}{sl}
{<-> [\lmvtt@scale@factor] ec-lmvtlo10}{}
\DeclareFontShape{T1}{lmvtt}{l}{it}
{<->sub*lmvtt/l/sl}{}
\fi
% bold is always bold (b):
\DeclareFontShape{T1}{lmvtt}{b}{n}
{<-> [\lmvtt@scale@factor] ec-lmvtk10}{}
\DeclareFontShape{T1}{lmvtt}{b}{sl}
{<-> [\lmvtt@scale@factor] ec-lmvtko10}{}
\DeclareFontShape{T1}{lmvtt}{b}{it}
{<->sub*lmvtt/b/sl}{}
\DeclareFontShape{T1}{lmvtt}{bx}{n}
{<->ssub*lmvtt/b/n}{}
\DeclareFontShape{T1}{lmvtt}{bx}{sl}
{<->ssub*lmvtt/b/sl}{}
\DeclareFontShape{T1}{lmvtt}{bx}{it}
{<->sub*lmvtt/b/sl}{}
\AtBeginDocument{\renewcommand*\ttdefault{lmvtt}}\endinput` Puoi verificare con questo esempio minimo`\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[scalefactor=0.9]{lmvttscaled}\begin{document}
\sffamily Questo testo viene scritto con un font lineare, mentre \ttfamily questo testo viene scritto in teletype a spaziatura variabile.
\end{document}`L’opzione alla chiamata del pacchetto è facoltativa, nel senso che se non specifichi nessun fattore di scala viene usato il valore unitario.
-
21 Dicembre 2014 alle 0:18 #99148
-
21 Dicembre 2014 alle 20:35 #99149
-
21 Dicembre 2014 alle 21:20 #99150::
samiel” post=98791Due quesiti:
1) i file lmvttscaled deve avere estensione .sty?
2) lo salvo in una directory qualsiasi di /usr/local/texlive/texmf-local
e poi devo anche lanciare a) mktexlsr, b) updmap-sys, c) fc-cache -fv ?m
1) Sì.
2) Potresti se alla tua macchina accedono più utenti; altrimenti io lo metterei nell’albero personale ~/texmf/tex/latex/lmvttscalati/
3) Tre domande, tre risposte:
a) con TeXLive nell’albero personale non serve fare nulla; con il ramo /texmf-local bisogna eseguire mktexlsr.
b) non ci sono font coinvolti, solo le lor descrizioni, cioè le interfacce fa l’utente e LaTeX; i font effettivamante usati sono gli stessi Latin Modern Variable-width TeleType che si usano senza scalarli, ma con questo pacchetto le informazioni di caricamento prevedono un fattore di scala.
c) fc-cache -fv che io sappia serve per aggiornare la cache dei font OpenType e TrueType da usare con xelatex e (in modo più complesso) da lualatex; con pdflatex ci vuole solo la mappa dei font che non va cambiata perché non sono coinvolti nuovi font.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.