Kann ich eine Reihe von Wörtern angeben, die im gesamten Dokument kursiv gedruckt werden sollen?

Kann ich eine Reihe von Wörtern angeben, die im gesamten Dokument kursiv gedruckt werden sollen?

Ich schreibe ein Dokument auf Italienisch, das auch englische Wörter enthält. Ich möchte alle englischen Wörter kursiv darstellen, aber ich möchte nicht alle Vorkommen im gesamten Dokument finden. Ich hoffe, es ist möglich, etwas zu erstellen (vielleicht einen Befehl?), mit dem ich eine Reihe von Wörtern angeben kann, damit sie beim Kompilieren des Dokuments kursiv dargestellt werden. Vielleicht ist es sogar möglich, sicherzustellen, dass alle englischen Wörter automatisch kursiv dargestellt werden. Bisher habe ich nichts gefunden, das meine Frage beantworten könnte, außerDas, aber das Problem besteht darin, dass es sich nur auf ein bestimmtes Wort bezieht, während ich eine Reihe von Wörtern angeben muss.

Antwort1

Eine einfache Modifikation vondiese Antwort:

\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}

Antwort2

Hier ist eine LuaLaTeX-basierte Lösung. Sie zeigt, wie man eine kommagetrennte Liste von Wörtern als Lua-Tabelle einrichtet, und richtet eine Lua-Funktion ein, die die Eingabe durchsucht und alle Wörter, die mit einem der Wörter in der Tabelle übereinstimmen, kursiv darstellt.

Beachten Sie, dass dieser Code alles andere als robust ist. Wenn Ihr Dokument beispielsweise ein Makro mit dem Namen \foxhoundoder eine Umgebung mit dem Namen enthält foxbat, können mit Sicherheit sehr schlimme Dinge passieren.

Ich denke, es wäre besser, wenn Sie alle Vorkommen englischsprachiger Wörter in Ihrem Dokument manuell in \textitAnweisungen einschließen würden.

Bildbeschreibung hier eingeben

% !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}

verwandte Informationen