- lines = int(count(opt.begin(), opt.end(), '\n'));
-
- // hyperref expects utf8!
- if (need_unicode && enc && enc->iconvName() != "UTF-8"
- &&!runparams.isFullUnicode()) {
- os << "\\inputencoding{utf8}\n"
- << setEncoding("UTF-8");
- ++lines;
+ // 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");