LuaLaTeX en het "dollar cent" symbool lijkt niet goed te werken (?)
Hallo allemaal, Ik gebruik lualatex in combinatie met de memoir class en tgtermes (het TeX Gyre font dat lijkt op Times New Roman). Ik wil het symbool voor "dollarcent" gebruiken. In UTF-8 is dat U+00A2 ¢ 0302 0242 CENT SIGN (zie ook http://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=oct) Als ik het symbool in mijn LuaLaTeX input gebruik bevat the PDF het symbool "ć" . De log-file geeft geen info. Volgens FontSquirrel heeft TeX Gyre Termes wel degelijk een dollarcent symbool (onder de "v"): TeX Gyre Termes Font Free by GUST e-foundry | Font Squirrel | | | | | | | | | TeX Gyre Termes Font Free by GUST e-foundry | Font SquirrelDownload and install the TeX Gyre Termes free font family by GUST e-foundry as well as test-drive and see a complete character set. | | | | View on www.fontsquirrel.com | Preview by Yahoo | | | | | Dus mijn vraag: waarom gaat het niet goed? Kan ik in LuaLaTeX de UTF-code direct opgeven en zo ja, hoe? Waarom geeft mijn text-editor prima ¢ en waarom geeft LuaLaTeX hier een verkeerd symbool? Groeten,WIlfred
On 7/5/2016 8:35 AM, Wilfred van Rooijen wrote:
Hallo allemaal,
Ik gebruik lualatex in combinatie met de memoir class en tgtermes (het TeX Gyre font dat lijkt op Times New Roman).
Ik wil het symbool voor "dollarcent" gebruiken. In UTF-8 is dat
U+00A2 ¢ 0302 0242 CENT SIGN
(zie ook http://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=oct)
Als ik het symbool in mijn LuaLaTeX input gebruik bevat the PDF het symbool "ć" . De log-file geeft geen info. Volgens FontSquirrel heeft TeX Gyre Termes wel degelijk een dollarcent symbool (onder de "v"):
TeX Gyre Termes Font Free by GUST e-foundry | Font Squirrel https://www.fontsquirrel.com/fonts/TeX-Gyre-Termes
in context krijg ik een cent: \setupbodyfont[termes] \starttext\char"A2 \stoptext dus klopt er iets niet in latex, misschien gebruik je een \macro om die cent op te roepen en is die verkeerd gedefinieerd (die kun je dan opnieuw definieren: \chardef\mycent"A2
Dus mijn vraag: waarom gaat het niet goed? Kan ik in LuaLaTeX de UTF-code direct opgeven en zo ja, hoe? Waarom geeft mijn text-editor prima ¢ en waarom geeft LuaLaTeX hier een verkeerd symbool?
de meeste editors hebben wel utf input mode Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Mmm, zie bijgevoegd een minimal working example en de PDF. De input file is gemaakt op Linux met UTF-8 encoding. Zowel evince als acroread geven niet het dollarcent-teken maar een c met een accent.
Ik hoor graag waar ik het niet goed doe.
Wilfred
On Tuesday, July 5, 2016 4:44 PM, Hans Hagen
Hallo allemaal,
Ik gebruik lualatex in combinatie met de memoir class en tgtermes (het TeX Gyre font dat lijkt op Times New Roman).
Ik wil het symbool voor "dollarcent" gebruiken. In UTF-8 is dat
U+00A2 ¢ 0302 0242 CENT SIGN
(zie ook http://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=oct)
Als ik het symbool in mijn LuaLaTeX input gebruik bevat the PDF het symbool "ć" . De log-file geeft geen info. Volgens FontSquirrel heeft TeX Gyre Termes wel degelijk een dollarcent symbool (onder de "v"):
TeX Gyre Termes Font Free by GUST e-foundry | Font Squirrel https://www.fontsquirrel.com/fonts/TeX-Gyre-Termes
in context krijg ik een cent: \setupbodyfont[termes] \starttext\char"A2 \stoptext dus klopt er iets niet in latex, misschien gebruik je een \macro om die cent op te roepen en is die verkeerd gedefinieerd (die kun je dan opnieuw definieren: \chardef\mycent"A2
Dus mijn vraag: waarom gaat het niet goed? Kan ik in LuaLaTeX de UTF-code direct opgeven en zo ja, hoe? Waarom geeft mijn text-editor prima ¢ en waarom geeft LuaLaTeX hier een verkeerd symbool?
de meeste editors hebben wel utf input mode Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On 7/5/2016 11:05 AM, Wilfred van Rooijen wrote:
Mmm, zie bijgevoegd een minimal working example en de PDF. De input file is gemaakt op Linux met UTF-8 encoding. Zowel evince als acroread geven niet het dollarcent-teken maar een c met een accent.
Ik hoor graag waar ik het niet goed doe.
Een bug in latex tgtermes denk ik. Of misschien is dat voor 8 bit fonts en moet je voor opentype/unicode wat anders aanroepen. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Wilfred van Rooijen schreef:
> Ik gebruik lualatex in combinatie met de memoir class en tgtermes (het > TeX Gyre font dat lijkt op Times New Roman). > > Ik wil het symbool voor "dollarcent" gebruiken. In UTF-8 is dat > > U+00A2 ¢ 0302 0242 CENT SIGN > > (zie ook http://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=oct) > > Als ik het symbool in mijn LuaLaTeX input gebruik bevat the PDF het > symbool "ć" . De log-file geeft geen info. Volgens FontSquirrel heeft > TeX Gyre Termes wel degelijk een dollarcent symbool (onder de "v"): >
\documentclass[11pt,a4paper]{memoir} \usepackage{tgtermes}
\begin{document} \char"A2 \end{document}
TeX fonts gebruiken niet Unicode als codering, maar hebben hun eigen codering. In Vaak is dit T1 (=de Cork encoding). In deze encoding is "A2 het symbool "ć". Als je dus direct unicode gebruikt dan krijg je het verkeerde symbool.
Voor deze symbolen kun je de TS1 encoding gebruiken.
\documentclass[11pt,a4paper]{memoir}
\usepackage{tgtermes}
\usepackage[TS1,T1]{fontenc}
\begin{document}
{\fontencoding{TS1}\selectfont\char"A2}
\end{document}
In plaats \char"A2 kun je ook het symbool zelf gebruiken: ¢
Makkelijker is het gebruik van het package textcomp, dat zelf de keuze van TS1 verzorgt en de macro \textcent:
\documentclass[11pt,a4paper]{memoir}
\usepackage{tgtermes}
\usepackage{textcomp}
\begin{document}
\textcent
\end{document}
Maar als je lualatex gebruikt is het misschien beter om het ook op de lualatex manier te doen: met het package fontspec.
\documentclass[11pt,a4paper]{memoir}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\begin{document}
¢
\end{document}
Met hartelijke groeten,
--
Piet van Oostrum
Een andere mogelijkheid is nog om de LY1 font encoding te gebruiken. Die komt meer overeen met Unicode.
\documentclass[11pt,a4paper]{memoir}
\usepackage{tgtermes}
\usepackage[LY1]{fontenc}
\begin{document}
\char"A2 of ¢
\end{document}
--
Piet van Oostrum
Mmmm, OK, ik begrijp het probleem maar eigenlijk ook weer niet.
Ik gebruik Japans en Engels door elkaar in mijn documenten. Dat was altijd een hoop gelazer: ofwel via platex (de Japanse platex niet te verwarren met de Poolse platex) en met een Japanse encoding (meestal EUC-JP), ofwel met XeLaTeX en UTF-8 maar met een hoop gezeik met font settings. Sinds een tijdje (een jaar of zo) gebruik ik LuaLaTeX icm de ltjsarticle en ltjsbook classes en UTF-8 encoding en dat werkt totnutoe vlekkeloos.
OK, deze keer gebruik ik memoir omdat het huidige document alleen Engels is. In combinatie met LuaLaTeX ging ik ervan uit dat dat volledig UTF-8 compatible zou zijn, maar blijkbaar is dat niet het geval (?). Wat betreft Japanse karakters werkt het in elk geval prima maar dat kan het gevolg zijn van de settings in de ltjs* class files (overigens wordt het dollarcent-teken ook met ltjsbook niet goed weergegeven).
OK, ik kan fontspec gebruiken, en inderdaad, het dollarcent-teken wordt dan op de juiste manier weergegeven. Maar met fontspec zit je weer met al dat font-gepiemel, dan moet je de OTF kopieren, de font-lijsten gaan updaten..... ik was juist zo blij met LuaLaTeX en dat dat allemaal niet hoeft.
OK, voorlopig heb ik op de interwebs een simpele hack gevonden (met een \def ) en die gebruik ik voorlopig maar even. Ik heb geen zin in gepiemel met encodings en dergelijke en aangezien het om een symbool gaat dat bovendien maar een keer in mijn tekst voorkomt vind ik het voorlopig goed zo.
Groeten,Wilfred
On Wednesday, July 6, 2016 2:40 AM, Piet van Oostrum
Wilfred van Rooijen schreef:
Mmmm, OK, ik begrijp het probleem maar eigenlijk ook weer niet.
Ik gebruik Japans en Engels door elkaar in mijn documenten. Dat was altijd een hoop gelazer: ofwel via platex (de Japanse platex niet te verwarren met de Poolse platex) en met een Japanse encoding (meestal EUC-JP), ofwel met XeLaTeX en UTF-8 maar met een hoop gezeik met font settings. Sinds een tijdje (een jaar of zo) gebruik ik LuaLaTeX icm de ltjsarticle en ltjsbook classes en UTF-8 encoding en dat werkt totnutoe vlekkeloos.
OK, deze keer gebruik ik memoir omdat het huidige document alleen Engels is. In combinatie met LuaLaTeX ging ik ervan uit dat dat volledig UTF-8 compatible zou zijn, maar blijkbaar is dat niet het geval (?). Wat betreft Japanse karakters werkt het in elk geval prima maar dat kan het gevolg zijn van de settings in de ltjs* class files (overigens wordt het dollarcent-teken ook met ltjsbook niet goed weergegeven).
Je haalt twee coderingen door elkaar; dat is waarschijnlijk de reden dat je het niet helemaal snapt. Je hebt inputcodering en fontcodering. De inputcodering bepaalt wat de bytes in je .tex file betekenen. Utf-8 is in het algemeen een goede keus en toekomstbestendig. Intern in TeX worden voor karakters buiten de ASCII range geen nummers gebruikt maar macro's. Bij de output worden die macro's omgezet naar nummers voor het font. De fontcodering bepaalt welke codes voor die karakters gebruikt worden. Daar zit hem hier de crux. Het dollarcent teken heeft als Unicode hex A2 (162), maar de TeX Gyre fonts hebben, net als de meeste TeX fonts een andere waarde hiervoor. Het probleem zit hem aan de TeX kant. In de font-file is het weer wel 162. De LY1 encoding komt overeen met de Adobe-encoding, dus die heeft geen omzetting nodig.
OK, ik kan fontspec gebruiken, en inderdaad, het dollarcent-teken wordt dan op de juiste manier weergegeven. Maar met fontspec zit je weer met al dat font-gepiemel, dan moet je de OTF kopieren, de font-lijsten gaan updaten..... ik was juist zo blij met LuaLaTeX en dat dat allemaal niet hoeft.
OK, voorlopig heb ik op de interwebs een simpele hack gevonden (met een \def ) en die gebruik ik voorlopig maar even. Ik heb geen zin in gepiemel met encodings en dergelijke en aangezien het om een symbool gaat dat bovendien maar een keer in mijn tekst voorkomt vind ik het voorlopig goed zo.
Die hack zal dan waarschijnlijk gewoon de juiste code voor het cent-symbool nemen.
--
Piet van Oostrum
Die hack is niet zo fraaij maar het werkt redelijk:
\def\cents{\makebox[0cm][l]{\rule{.47ex}{0mm}\rule[-.3ex]{.15mm}{1.6ex}}c}
Bedankt voor de uitleg omtrent file-encoding en font-encoding. Ik ging ervan uit dat LuaLaTeX intern UTF-8 gebruikt (naar analogie van Xe(La)TeX) maar dat is dus niet zo. Wel wat verwarrend maar het is nu eenmaal zo.
Zoals gezegd, LuaLaTeX in combinatie met de "Japanse" class files (ltjsarticle en ltjsbook) werkt best goed, hoewel ook in dat geval de details niet altijd even goed werken (dingen als babel, dat is altijd gelazer met de Japanse instellingen - zelfs in de moderne opvolger van babel, polyglossia, wordt Japans niet of nauwelijks ondersteund vanwege alle rare bijwerkingen).
Groeten,Wilfred
On Wednesday, July 6, 2016 3:11 PM, Piet van Oostrum
Mmmm, OK, ik begrijp het probleem maar eigenlijk ook weer niet.
Ik gebruik Japans en Engels door elkaar in mijn documenten. Dat was altijd een hoop gelazer: ofwel via platex (de Japanse platex niet te verwarren met de Poolse platex) en met een Japanse encoding (meestal EUC-JP), ofwel met XeLaTeX en UTF-8 maar met een hoop gezeik met font settings. Sinds een tijdje (een jaar of zo) gebruik ik LuaLaTeX icm de ltjsarticle en ltjsbook classes en UTF-8 encoding en dat werkt totnutoe vlekkeloos.
OK, deze keer gebruik ik memoir omdat het huidige document alleen Engels is. In combinatie met LuaLaTeX ging ik ervan uit dat dat volledig UTF-8 compatible zou zijn, maar blijkbaar is dat niet het geval (?). Wat betreft Japanse karakters werkt het in elk geval prima maar dat kan het gevolg zijn van de settings in de ltjs* class files (overigens wordt het dollarcent-teken ook met ltjsbook niet goed weergegeven).
Je haalt twee coderingen door elkaar; dat is waarschijnlijk de reden dat je het niet helemaal snapt. Je hebt inputcodering en fontcodering. De inputcodering bepaalt wat de bytes in je .tex file betekenen. Utf-8 is in het algemeen een goede keus en toekomstbestendig. Intern in TeX worden voor karakters buiten de ASCII range geen nummers gebruikt maar macro's. Bij de output worden die macro's omgezet naar nummers voor het font. De fontcodering bepaalt welke codes voor die karakters gebruikt worden. Daar zit hem hier de crux. Het dollarcent teken heeft als Unicode hex A2 (162), maar de TeX Gyre fonts hebben, net als de meeste TeX fonts een andere waarde hiervoor. Het probleem zit hem aan de TeX kant. In de font-file is het weer wel 162. De LY1 encoding komt overeen met de Adobe-encoding, dus die heeft geen omzetting nodig.
OK, ik kan fontspec gebruiken, en inderdaad, het dollarcent-teken wordt dan op de juiste manier weergegeven. Maar met fontspec zit je weer met al dat font-gepiemel, dan moet je de OTF kopieren, de font-lijsten gaan updaten..... ik was juist zo blij met LuaLaTeX en dat dat allemaal niet hoeft.
OK, voorlopig heb ik op de interwebs een simpele hack gevonden (met een \def ) en die gebruik ik voorlopig maar even. Ik heb geen zin in gepiemel met encodings en dergelijke en aangezien het om een symbool gaat dat bovendien maar een keer in mijn tekst voorkomt vind ik het voorlopig goed zo.
Die hack zal dan waarschijnlijk gewoon de juiste code voor het cent-symbool nemen.
--
Piet van Oostrum
On 7/6/2016 8:26 AM, Wilfred van Rooijen wrote:
Die hack is niet zo fraaij maar het werkt redelijk:
\def\cents{\makebox[0cm][l]{\rule{.47ex}{0mm}\rule[-.3ex]{.15mm}{1.6ex}}c}
dat cut 'n paste niet lekker
Bedankt voor de uitleg omtrent file-encoding en font-encoding. Ik ging ervan uit dat LuaLaTeX intern UTF-8 gebruikt (naar analogie van Xe(La)TeX) maar dat is dus niet zo. Wel wat verwarrend maar het is nu eenmaal zo.
luatex is intern wel degelijk utf maar zoals piet al zei, of je de juiste output krijgt hangt ook af van het font; jij wilt per se 8 bit fonts gebruiken terwijl een otf/unicode combi veel beter is
Zoals gezegd, LuaLaTeX in combinatie met de "Japanse" class files (ltjsarticle en ltjsbook) werkt best goed, hoewel ook in dat geval de details niet altijd even goed werken (dingen als babel, dat is altijd gelazer met de Japanse instellingen - zelfs in de moderne opvolger van babel, polyglossia, wordt Japans niet of nauwelijks ondersteund vanwege alle rare bijwerkingen).
de rare bijwerkingen komen van het gebruik van oude encoding technieken met nieuwe engines ... kort door de bocht: als je luatex gebruikt kun je alles wat met encoding te maken heeft wegknikkeren en heb je juist minder bijwerkingen (natuurlijk is het aan het macro pakket om dat op de juiste wijze voor je te doen) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Hans: "luatex is intern wel degelijk utf maar zoals piet al zei, of je de juiste output krijgt hangt ook af van het font; jij wilt per se 8 bit
fonts gebruiken terwijl een otf/unicode combi veel beter is"
Ik wil niet per se 8 bit fonts gebruiken (ik weet eerlijk gezegd niet eens wat dat precies inhoudt). Ik ging ervan uit dat lualatex dat allemaal voor me regelt, maar blijkbaar toch niet.
Ik dacht dat fontspec alleen voor xetex was, maar blijkbaar is het ook nodig voor luatex. Ik kan de OTF van tgtermes (en anderen) kopieren naar mijn font-folder en dan zou alles goed moeten werken. Het blijft wat gepiel met de Japanse fonts, want de fonts die standaard worden gebruikt in de ltjs* classes zijn volgens mij geen OTF fonts (er zijn maar heel weinig Japanse "free" OTF fonts die van voldoende kwaliteit zijn, en voldoende compleet zijn (bold, slanted, cursief, etc)).
Anyway - een ervaring rijker en een illusie armer :-))
Wilfred
On Wednesday, July 6, 2016 5:08 PM, Hans Hagen
Die hack is niet zo fraaij maar het werkt redelijk:
\def\cents{\makebox[0cm][l]{\rule{.47ex}{0mm}\rule[-.3ex]{.15mm}{1.6ex}}c}
dat cut 'n paste niet lekker
Bedankt voor de uitleg omtrent file-encoding en font-encoding. Ik ging ervan uit dat LuaLaTeX intern UTF-8 gebruikt (naar analogie van Xe(La)TeX) maar dat is dus niet zo. Wel wat verwarrend maar het is nu eenmaal zo.
Zoals gezegd, LuaLaTeX in combinatie met de "Japanse" class files (ltjsarticle en ltjsbook) werkt best goed, hoewel ook in dat geval de details niet altijd even goed werken (dingen als babel, dat is altijd gelazer met de Japanse instellingen - zelfs in de moderne opvolger van babel, polyglossia, wordt Japans niet of nauwelijks ondersteund vanwege alle rare bijwerkingen).
de rare bijwerkingen komen van het gebruik van oude encoding technieken met nieuwe engines ... kort door de bocht: als je luatex gebruikt kun je alles wat met encoding te maken heeft wegknikkeren en heb je juist minder bijwerkingen (natuurlijk is het aan het macro pakket om dat op de juiste wijze voor je te doen) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Wilfred van Rooijen schreef:
Die hack is niet zo fraaij maar het werkt redelijk:
\def\cents{\makebox[0cm][l]{\rule{.47ex}{0mm}\rule[-.3ex]{.15mm}{1.6ex}}c}
Waarom zou je zo'n geknutselde macro gebruiken als er een perfect alternatief is, dat een echt dollarcent symbool uit het font gebruikt inplaats van een c met een streep erdoorheen??
\documentclass[11pt,a4paper]{memoir}
\usepackage{tgtermes}
\usepackage{textcomp}
\begin{document}
\textcent
\end{document}
--
Piet van Oostrum
Omdat ik ervan uitging dat met LuaLaTeX en UTF-8 dat soort gezanik met extra packages voor een symbool voortaan niet meer aan de orde is....... maar ik had ongelijk ;-))
On Thursday, July 7, 2016 5:26 PM, Piet van Oostrum
Die hack is niet zo fraaij maar het werkt redelijk:
\def\cents{\makebox[0cm][l]{\rule{.47ex}{0mm}\rule[-.3ex]{.15mm}{1.6ex}}c}
Waarom zou je zo'n geknutselde macro gebruiken als er een perfect alternatief is, dat een echt dollarcent symbool uit het font gebruikt inplaats van een c met een streep erdoorheen??
\documentclass[11pt,a4paper]{memoir}
\usepackage{tgtermes}
\usepackage{textcomp}
\begin{document}
\textcent
\end{document}
--
Piet van Oostrum
Wilfred van Rooijen schreef:
Omdat ik ervan uitging dat met LuaLaTeX en UTF-8 dat soort gezanik met extra packages voor een symbool voortaan niet meer aan de orde is....... maar ik had ongelijk ;-))
Behalve als je de font specificatie met fontspec doet :)
En trouwens utf-8 heeft er niets mee te maken want in jouw voorbeeld gebruikte je \char"A2 wat allemaal in ASCII is.
--
Piet van Oostrum
Ik had \char"00A2 gebruikt omdat ik aannam dat dat de manier was om direct een UTF-8 karakter aan te roepen, maar dat is dus blijkbaar ook niet het geval?
Nou ja, een hoop gedoe om niets. Het is niet anders.
Groeten,Wilfred
On Friday, July 8, 2016 8:42 AM, Piet van Oostrum
Omdat ik ervan uitging dat met LuaLaTeX en UTF-8 dat soort gezanik met extra packages voor een symbool voortaan niet meer aan de orde is....... maar ik had ongelijk ;-))
Behalve als je de font specificatie met fontspec doet :)
En trouwens utf-8 heeft er niets mee te maken want in jouw voorbeeld gebruikte je \char"A2 wat allemaal in ASCII is.
--
Piet van Oostrum
Wilfred van Rooijen schreef:
Ik had \char"00A2 gebruikt omdat ik aannam dat dat de manier was om direct een UTF-8 karakter aan te roepen, maar dat is dus blijkbaar ook niet het geval?
Je haalt utf-8 en Unicode door elkaar. Ik denk dat ik maar aan de oproep van Frans gehoor moet geven om er een stukje over te schrijven in de MAPS.
--
Piet van Oostrum
Op 8 jul. 2016, om 15:27 heeft Piet van Oostrum
het volgende geschreven: Wilfred van Rooijen schreef:
Ik had \char"00A2 gebruikt omdat ik aannam dat dat de manier was om direct een UTF-8 karakter aan te roepen, maar dat is dus blijkbaar ook niet het geval?
Je haalt utf-8 en Unicode door elkaar. Ik denk dat ik maar aan de oproep van Frans gehoor moet geven om er een stukje over te schrijven in de MAPS.
Heel graag! Het is geen eenvoudige kost maar jij weet als een van de zeer weinigen van de hoed en de rand en je kunt het in klare taal uiteenzetten zonder zelf het spoort bijster te raken. Groet, Frans
participants (4)
-
Frans Goddijn
-
Hans Hagen
-
Piet van Oostrum
-
Wilfred van Rooijen