
Estou escrevendo um documento em italiano que também contém palavras em inglês. Quero colocar todas as palavras em inglês em itálico, mas não quero encontrar todas as suas ocorrências em todo o documento. Espero que seja possível criar algo (talvez um comando?) Com o qual eu especifique um conjunto de palavras para que fiquem em itálico ao compilar o documento. Talvez seja até possível garantir que todas as palavras em inglês fiquem automaticamente em itálico. Até agora, não encontrei nada que pudesse responder à minha pergunta, excetoesse, mas o problema é que se trata apenas de uma palavra específica, enquanto preciso especificar um conjunto de palavras.
Responder1
Uma simples modificação deesta resposta:
\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}
Responder2
Aqui está uma solução baseada em LuaLaTeX. Ele mostra como configurar uma lista de palavras separadas por vírgula como uma tabela Lua e configura uma função Lua que varre a entrada e renderiza qualquer palavra que corresponda a uma das palavras da tabela em itálico.
Observe que este código é tudo menos robusto. Por exemplo, se o seu documento contém uma macro chamada \foxhound
ou um ambiente chamado foxbat
, coisas muito ruins podem acontecer.
Acho que seria melhor incluir manualmente todas as ocorrências de palavras do idioma inglês em seu documento em \textit
declarações.
% !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}