Con fines pedagógicos, me gustaría resaltar algunos caracteres de una palabra, mediante negrita, color rojo o lo que funcione.
Debido a que uso fuentes de escritura a mano (Schulschriften alemana wedn
y cursiva francesa frcursive
), estoy obligado a que las ligaduras funcionen bien. Desafortunadamente, las ligaduras se bloquean si cambias de serie o de color en medio de una palabra.
Estaría contento con una solución XeLaTeX o LuaLaTeX. Si es necesario, también con una solución PDFLaTeX. Y como dije, cualquier tipo de resaltado estaría bien.
Aquí el MWE:
\documentclass[varwidth]{standalone}
\usepackage[ngerman,frenchb]{babel}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\setmonofont[Scale=.75]{Linux Libertine Mono O}
\setsansfont[Scale=MatchLowercase]{Linux Biolinum O}
\usepackage{wedn}
\newcommand{\schschrift}{\selectlanguage{ngerman} \wedn\upshape}
\usepackage{frcursive}
\usepackage{xcolor}
\begin{document}
\newcommand{\fex}[3]{#1\textbf{#2}#3}
% \renewcommand{\fex}[3]{#1{\bfseries #2}#3}
{
\schschrift
\fex{W}{ö}{rter} -- Wörter
}
{
\cursive
\fex{incr}{oy}{able} -- incroyable
}
\renewcommand{\fex}[3]{#1\textcolor{red}{#2}#3}
{
\schschrift
\fex{W}{ö}{rter} -- Wörter
}
{
\cursive
\fex{incr}{oy}{able} -- incroyable
}
\renewcommand{\fex}[3]{#1#2#3}
{
\schschrift
\fex{W}{ö}{rter} -- Wörter
}
{
\cursive
\fex{incr}{oy}{able} -- incroyable
}
\end{document}
Puedes ver que, en las primeras 2 líneas, W y ö no se unen bien, así como r y o + y y a, cuando se ponen en negrita o en rojo. Compare con las versiones no resaltadas.
Respuesta1
Puedes probar el paquete luacolor. No inserta lo que hay y por lo tanto no divide las ligaduras ni altera el interletraje. Pero no se puede colorear una parte de una ligadura de un color diferente al resto. Una ligadura es un glifo único y debe tener un solo color. Por lo tanto, puede obtener resultados bastante sorprendentes (el último ejemplo quizás sea un error):
\documentclass{article}
\usepackage[ngerman,french]{babel}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\setmonofont[Scale=.75]{Linux Libertine Mono O}
\setsansfont[Scale=MatchLowercase]{Linux Biolinum O}
\usepackage{wedn}
\newcommand{\schschrift}{\selectlanguage{ngerman} \wedn\upshape}
\usepackage{frcursive}
\usepackage{xcolor}
\usepackage{luacolor}
\begin{document}
fi\textcolor{red}{ff}
f\textcolor{red}{if}f
\newcommand{\fex}[3]{#1\textcolor{red}{#2}#3}
{
\schschrift
W\textcolor{red}{ö}rter -- Wörter
}
{\cursive i\textcolor{red}{croy} in\textcolor{red}{croy}
i\textcolor{red}{nc}roy}
\end{document}
Tenga cuidado con sus fuentes especiales: la codificación T1 no es adecuada para lualatex (y al menos una de las fuentes parece utilizar una codificación T1 no estándar).
Respuesta2
Se me ocurrió una solución usando un color de fondo.
Básicamente, imprime la palabra dos veces una encima de la otra. Esto se logra con \rlap
la primera impresión (no olvides el\leavevmode
al principio de un párrafo, o utilizar \mbox[0pt]{l}{...}
alternativamente). Esta primera impresión imprime la primera parte con \hphantom
, luego la segunda parte (la resaltada) en gris sobre gris. Después de eso, la segunda impresión imprime la palabra completa en el color de primer plano normal encima, de modo que la parte central aparece en el color de primer plano sobre un fondo gris. Debido a que la presencia o ausencia de ligaduras cambia el ancho de la palabra (o partes de la palabra), la alineación entre las 2 versiones debe ajustarse manualmente mediante un poco de interletraje.
\documentclass[varwidth,landscape]{standalone}
\usepackage[ngerman,frenchb]{babel}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{frcursive}
\usepackage{wela,wedn}
\newcommand{\schschrift}{\wedn\upshape\bfseries}
\usepackage{xcolor}
\definecolor{FR}{rgb}{.2717,.4566,.2717}
\definecolor{DE}{rgb}{.4566,.2717,.2717}
\definecolor{fond}{gray}{.8}
\setlength{\fboxsep}{.1pt}
\begin{document}
{
\cursive\color{FR}
\leavevmode\rlap{%
\hphantom{pa}\kern-.3ex%
\colorbox{fond}{\textcolor{fond}{tt}}%
}%
patte
\leavevmode\rlap{%
\hphantom{incr}\kern-.3ex%
\colorbox{fond}{\textcolor{fond}{oy}}%
}%
incroyable
}
}
{
\selectlanguage{ngerman}\schschrift\color{DE}
\leavevmode\rlap{%
\hphantom{W}%
\colorbox{fond}{\textcolor{fond}{ö}}%
}Wörter
\renewcommand{\schschrift}{\wela\upshape\bfseries}\schschrift\color{DE}
\leavevmode\rlap{%
\hphantom{W}\kern-.3ex%
\colorbox{fond}{\textcolor{fond}{ö}}%
}Wörter
}
\end{document}
Captura de pantalla:
Queda un problema: cuando el glifo se extiende más allá de su cuadro delimitador, puede parecer extraño, vea el <ö> del primero.Wörter. Pero estoy contento por ahora y no abriré una nueva pregunta sobre este tema menor.
Editar:
Gracias aesta respuesta, podría reemplazar el fondo \colorbox
y su pequeño problema con una regla de las dimensiones correctas (necesita el paquete calc
):
\leavevmode\rlap{%
\hphantom{W}\kern-.3ex%
\textcolor{fond}{\rule[\depthof{ö}*{-1}]{\widthof{ö}}{\totalheightof{ö}}}%
}%
Wörter