- // hyperref expects utf8!
- if (need_unicode && enc && enc->iconvName() != "UTF-8"
- &&!runparams.isFullUnicode()) { // FIXME: check must be done for useNonTeXFonts!
- os << "\\inputencoding{utf8}\n"
- << setEncoding("UTF-8");
+ // hyperref expects LICR macros for non-ASCII chars.
+ // Usually, "(lua)inputenc" converts the input to LICR, with XeTeX utf-8 works, too.
+ // As hyperref provides good coverage for \inputencoding{utf8}, we can try
+ // this if the current input encoding does not support a character.
+ // FIXME: don't use \inputencoding if "inputenc" is not loaded (#9839).
+ if (need_unicode && enc && enc->iconvName() != "UTF-8") {
+ if (runparams.flavor != OutputParams::XETEX)
+ os << "\\inputencoding{utf8}\n";
+ os << setEncoding("UTF-8");