- Questo topic ha 13 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 12 anni, 7 mesi fa da
samiel.
-
CreatoreTopic
-
26 Gennaio 2014 alle 18:51 #91879::
In un testo composto con xelatex devo inserire delle virgolette alte non tipografiche,
ma il codice `\shorthandoff{“}” “\shorthandon{“}` non funziona,
perché vengono prodotte in entrambi i casi virgolette all’inglese chiuse.
Come posso risolvere e perché i comandi citati non funzionano?grazie
m
-
CreatoreTopic
-
AutoreRisposte
-
-
26 Gennaio 2014 alle 20:16 #91880
-
26 Gennaio 2014 alle 20:45 #91881
-
26 Gennaio 2014 alle 20:57 #91882::
Se ho capito bene la domanda, qui trovi varie risposte:
http://tex.stackexchange.com/questions/7735/how-to-get-straight-quotation-marksMa sbaglio o [tt]\shorthandoff[/tt] & [tt]\shorthandon[/tt] sono comandi di [tt]babel[/tt] che non dovrebbe essere usato con [tt]xelatex[/tt]?
-
26 Gennaio 2014 alle 22:24 #91883::
Grazie della segnalazione. Seguendo uno di quegli esempi, ho provato mettendo
`\setmainfont[Ligatures=Common,Numbers=OldStyle]{Garamond Premier Pro}`
in luogo di Ligatures=Tex, ma così anche tutti gli apostrofi diventano non tipografici.
Un’altra soluzione sarebbbe usare il primitivo \XeTeXglyph 3 …m
-
26 Gennaio 2014 alle 22:42 #91884::
samiel” post=91439In un testo composto con xelatex devo inserire delle virgolette alte non tipografiche,
ma il codice `\shorthandoff{“}” “\shorthandon{“}` non funziona,
perché vengono prodotte in entrambi i casi virgolette all’inglese chiuse.
Come posso risolvere e perché i comandi citati non funzionano?È un problema di uovo e gallina: se abiliti [tt]Ligatures=TeX[/tt] anche [tt]\textquotedbl[/tt] viene convertito a quelle curve. Soluzione:
`\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\newfontfamily{\quotesfont}{Linux Libertine O}
\newcommand{\straightquotes}{{\quotesfont\textquotedbl}}\begin{document}
“virgolette'', \straightquotes virgolette\straightquotes
\end{document}`
Ciao
Enrico
-
27 Gennaio 2014 alle 8:46 #91885::
Sì, così naturalmente funziona, grazie. Non so se la soluzione che avevo adottato,
ovvero inserire direttamente il glifo sia (stilisticamente e concettualmente) più “sporca”.Una curiosità. Per ottenere i glifi li ho stampato su pdf col seguente codice:
`\documentclass[landscape]{article}
\usepackage{geometry}
\usepackage{fontspec}
\setmainfont{Garamond Premier Pro}
\usepackage{multicol}
\setlength{\columnseprule}{0.4pt}
\usepackage{multido}
\setlength{\parindent}{0pt}
\begin{document}\begin{multicols}{10}
\multido{\i=0+1}{“10000}{% from U+0000 to U+FFFF
\iffontchar\font\i
\makebox[3em][l]{\i}%
\symbol{\i}\endgraf
\fi
}
\end{multicols}
\end{document}`
Ora, il primo glifo della stampata porta il numero 32, le virgolette non tipografiche il 34.
Eppure per ottenerle devo usare \XeTeXglyph 3, e in effetti si tratta del terzo glifo stampato.
FontForge poi mi dà il valore Unicode U+0022, ma lo colloca sempre alla 34esima posizione.
Da cosa deriva che per Xelatex devo usare il numero 3?Per contro, un altro script per fare lo stesso lavoro trovato in rete
`\documentclass{standalone}
\usepackage{geometry}
\usepackage{xunicode, xltxtra}
\usepackage{fontspec}
\usepackage{multicol}
\setmainfont[Mapping=tex-text, Ligatures={Historical}, Alternate=0]{Linux Libertine O}
\setlength{\columnsep}{0.3cm}
\setlength{\columnseprule}{1pt}
\begin{document}\begin{multicols}{10}
\newcount\charcount
\charcount=0
\loop
\number\charcount \hspace{1ex} \XeTeXglyph\charcount
\par
\ifnum\charcount<2500
\advance\charcount1
\repeat
\end{multicols}\end{document}`
mi dà errore
`*geometry* driver: auto-detecting
*geometry* detected driver: xetex! LaTeX Error: Something's wrong–perhaps a missing \item.
See the LaTeX manual or LaTeX Companion for explanation.
Type Hfor immediate help.
…l.12 \newcount
\charcount
? `m
-
27 Gennaio 2014 alle 9:16 #91886::
Ho corretto così il secondo script e funziona
`\documentclass[landscape]{article}
\usepackage{geometry}
\usepackage{xunicode, xltxtra}
\usepackage{fontspec}
\usepackage{multicol}
\setmainfont[Mapping=tex-text, Ligatures={Historical}, Alternate=0]{Linux
Libertine O}
\setlength{\parindent}{0pt}
\setlength{\columnsep}{0.3cm}
\setlength{\columnseprule}{1pt}
\begin{document}\begin{multicols}{10}
\newcount\charcount
\charcount=0
\loop
\number\charcount \hspace{1ex} \XeTeXglyph\charcount
\par
\ifnum\charcount<2500
\advance\charcount1
\repeat
\end{multicols}\end{document}`
Ricevo il seguente messaggio:
`** WARNING ** Invalid CMap mapping entry. (ignored)`
-
27 Gennaio 2014 alle 15:07 #91887::
samiel” post=91454Sì, così naturalmente funziona, grazie. Non so se la soluzione che avevo adottato,
ovvero inserire direttamente il glifo sia (stilisticamente e concettualmente) più “sporca”.Una curiosità. Per ottenere i glifi li ho stampato su pdf col seguente codice:
`\documentclass[landscape]{article}
\usepackage{geometry}
\usepackage{fontspec}
\setmainfont{Garamond Premier Pro}
\usepackage{multicol}
\setlength{\columnseprule}{0.4pt}
\usepackage{multido}
\setlength{\parindent}{0pt}
\begin{document}\begin{multicols}{10}
\multido{\i=0+1}{“10000}{% from U+0000 to U+FFFF
\iffontchar\font\i
\makebox[3em][l]{\i}%
\symbol{\i}\endgraf
\fi
}
\end{multicols}
\end{document}`
Ora, il primo glifo della stampata porta il numero 32, le virgolette non tipografiche il 34.
Eppure per ottenerle devo usare \XeTeXglyph 3, e in effetti si tratta del terzo glifo stampato.
FontForge poi mi dà il valore Unicode U+0022, ma lo colloca sempre alla 34esima posizione.
Da cosa deriva che per Xelatex devo usare il numero 3?Il comando [tt]\XeTeXglyph[/tt] si riferisce ai glifi presenti nel font; se per caso un font avesse glifi anche nelle posizioni 0–31, il numero corrispondente alle virgolette diritte non sarebbe più 3.
samielPer contro, un altro script per fare lo stesso lavoro trovato in rete
`\documentclass{standalone}
\usepackage{geometry}
\usepackage{xunicode, xltxtra}
\usepackage{fontspec}
\usepackage{multicol}
\setmainfont[Mapping=tex-text, Ligatures={Historical}, Alternate=0]{Linux Libertine O}
\setlength{\columnsep}{0.3cm}
\setlength{\columnseprule}{1pt}
\begin{document}\begin{multicols}{10}
\newcount\charcount
\charcount=0
\loop
\number\charcount \hspace{1ex} \XeTeXglyph\charcount
\par
\ifnum\charcount<2500
\advance\charcount1
\repeat
\end{multicols}\end{document}`
mi dà errore
`*geometry* driver: auto-detecting
*geometry* detected driver: xetex! LaTeX Error: Something's wrong–perhaps a missing \item.
See the LaTeX manual or LaTeX Companion for explanation.
Type Hfor immediate help.
…l.12 \newcount
\charcount
? `Semplice, non puoi usare [tt]multicols[/tt] con la classe standalone. Puoi anche sapere a che punto fermarti:
`
\documentclass{article}
\usepackage{geometry}
\usepackage{multicol}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text, Ligatures={Historical}, Alternate=0]{Linux Libertine O}
\setlength{\columnsep}{0.3cm}
\setlength{\columnseprule}{1pt}
\newcount\charcount
\begin{document}\begin{multicols}{9}
\charcount=0
\chardef\lastglyph=\numexpr\XeTeXcountglyphs\font-1\relax
\loop
\number\charcount \hspace{1ex} \XeTeXglyph\charcount
\par
\ifnum\charcount<\lastglyph \advance\charcount1 \repeat \end{multicols} \end{document} ` Perché togliere 1? Bella domanda: se provi a stampare l'ultimo glifo hai un errore che rende il PDF non valido. :( Ciao Enrico -
27 Gennaio 2014 alle 20:22 #91888
-
27 Gennaio 2014 alle 22:30 #91889::
samiel” post=91489Allora il secondo script oppure quello emendato sono in pratica i più utili
perché danno esattamente i glifi presenti e il numero che serve.Giusto.
samiel” post=91489Sulla incompatibilità di multicols con standalone, mi chiedo
se quello che ha postato lo script abbia mai provato a compilarlo…Ah, non saprei proprio.
Piuttosto, scordati xunicode e xltxtra. Toglili di mezzo e non discutere. 😉
Ciao
Enrico
-
28 Gennaio 2014 alle 15:58 #91890
-
28 Gennaio 2014 alle 19:57 #91891::
samiel” post=91505Come disse uno famoso, “obbedisco” !
In ogni caso xltxtra non dovrebbe migliorare la resa
se si usano \textsuperscript e \textsubscript ?
Io li uso assai poco, quasi esclusivamente per i numerini
in apice che indicano le edizioni dei libri dopo l’anno di pubblicazione….m
Nella mia esperienza, xltxtra crea più problemi di quanti ne risolva.
Ciao
Enrico
-
29 Gennaio 2014 alle 19:19 #91892
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.