¿Puedo especificar un conjunto de palabras para que se pongan en cursiva en todo un documento?

¿Puedo especificar un conjunto de palabras para que se pongan en cursiva en todo un documento?

Estoy escribiendo un documento en italiano que también contiene palabras en inglés. Quiero poner en cursiva todas las palabras en inglés, pero no quiero encontrar todas sus apariciones en todo el documento. Espero que sea posible crear algo (¿tal vez un comando?) con el que especifique un conjunto de palabras para que aparezcan en cursiva al compilar el documento. Tal vez incluso sea posible asegurarse de que todas las palabras en inglés estén automáticamente en cursiva. Hasta ahora, no he encontrado nada que pueda responder a mi pregunta, exceptoeste, pero el problema es que se refiere solo a una palabra en particular, mientras que yo necesito especificar un conjunto de palabras.

Respuesta1

Una simple modificación deesta respuesta:

\documentclass{article}
\usepackage{xesearch}
\UndoBoundary{-} % allow hyphens!!
\SearchList{italics}{\emph{#1}}{antibod?,covid?,infection,rna,DNA,*ELISA,*WHO,?pcr,%
RT-pcr,Multiplex-PCR,usa,UK,SARS?,virus,sensit?,test?}
\begin{document}
Mr. So and So, from the 
WHO, % organization,   
who % common word, must be not changed
has announced yesterday in the UK and the USA that the 
ELISA % method acronym, must be changed  
test to detect antibodies against SARS-CoV-2  
in COVID-19 patients with first signs of the disease is useless,  
said now that even PCR methods, 
like RT-PCR  
nested PCR, 
quantitative PCR, 
and Multiplex-PCR test,       
used too early in the course of infection 
are not enough sensitives.
On the other hand, the researcher  
Elisa % Woman name, must be not changed
 Whoknow proposed a WHO meetings to discuss the 
disgnostic protocols of SARS and RNA virus and  the sensitivity of a new indirect antibody test.  
\StopList{italics}
\end{document}

Respuesta2

Aquí hay una solución basada en LuaLaTeX. Muestra cómo configurar una lista de palabras separadas por comas como una tabla Lua y configura una función Lua que recorre la entrada y muestra en cursiva cualquier palabra que coincida con una de las palabras de la tabla.

Tenga en cuenta que este código es todo menos robusto. Por ejemplo, si su documento contiene una macro llamada \foxhoundo un entorno llamado foxbat, es probable que sucedan cosas muy malas.

Creo que sería mejor encerrar manualmente en \textitdeclaraciones todas las instancias de palabras en inglés en su documento.

ingrese la descripción de la imagen aquí

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage[a4paper,margin=2.5cm]{geometry}
\usepackage[english,italian]{babel}
\usepackage{luacode}
%% Lua-side code: (a) Lua table with English words, 
%% (b) Lua function that renders words in the table in italics
\begin{luacode}
en_words_list = {"The","quick","brown","fox","jumps","over","the","lazy","dog"}
function italicize_english_words ( s )
  for i=1,#en_words_list do
    s = s:gsub ( en_words_list[i] , "\\textit{%0}" )
  end
  return s
end
\end{luacode}
%% LaTeX-side code: Macros to activate/deactivate the Lua function:
\newcommand\EnWordsOn{\directlua{
    luatexbase.add_to_callback(
   "process_input_buffer" , italicize_english_words , "enwords" )}}
\newcommand\EnWordsOff{\directlua{
   luatexbase.remove_from_callback(
   "process_input_buffer" , "enwords" )}}
   
\begin{document}
\EnWordsOn % Activate the Lua function

la rapida volpe marrone---the quick brown fox---salta sopra---jumps over---il cane pigro---the lazy dog
\end{document}

información relacionada