나는 이미 읽었다"..."를 "\ldots"로 자동 변환합니다.하지만 이 질문은 질문자가 여러 파일을 통해 많은 교체 작업을 절약할 수 있도록 질문/답변되었습니다.
\input
내 경우에는 전체 스토리에 부합하는 별도의 장면(소설의 경우)을 여러 파일 로 만들려고 합니다 . 나는 별도의 파일을 가능한 한 단순하게 유지하는 데 관심이 있습니다. 즉, 더 적은 수의 TeX/LaTeX 명령을 사용하고 싶다는 뜻입니다. 이유는 수정을 위해 별도의 파일을 보낼 예정이며 텍스트가 많으면 \ldots
읽기/수정이 더 어려워지기 때문입니다. 그러나 Linux Libertine 또는 Junicode 이외의 글꼴을 사용하고 싶기 때문에 참조된 솔루션이 주로 내 문서에 작동하지 않습니다.
물론 수정 프로세스가 끝날 때까지 기다렸다가 일괄 교체할 수도 있습니다. 그러나 나는 소스 파일을 실제로 수정하지 않고 "..."를 줄임표로 바꾸는 더 나은 프로그래밍 방식을 원했습니다 \ldots
.
의 예 main.tex
:
\documentclass[statementpaper,9pt,openany]{memoir}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{mynovel}
\usepackage{ebgaramond}
\begin{document}
\pagestyle{plain}
\story{stories/first_story.tex}
\end{document}
의 예 mynovel.sty
:
\ProvidesPackage{mynovel}
\RequirePackage{lettrine}
% Most code here is to provide a lettrine automatically
\def\capitalize#1#2 {
\lettrine[lhang=1,nindent=0pt,loversize=0.5,lines=2]{#1}{#2}
}
\newcommand{\story}[1]{
% some code here explicitly omitted
\expandafter\capitalize\@@input#1
}
의 예 stories/first_story.tex
:
Había una vez un hombre. El hombre dijo:
---Buenos días... ¿me da una taza de café?
답변1
LuaLaTeX, 즉 LaTeX를 사용할 수 있다면체재루아텍스와 함께엔진(pdfTeX 엔진 대신) 컴파일 프로세스의 매우 초기 단계에서 모든 인스턴스를 "즉시" ...
로 대체하는 Lua 함수를 작성하는 것은 간단합니다(\dots
~ 전에TeX는 일반적인 처리를 시작합니다.
다음 예제에서는 Lua 함수라는 Lua 함수를 설정하고 Lua 함수의 작업을 활성화 및 비활성화하는 및 dots2ellipses
라는 두 개의 LaTeX 매크로를 제공합니다 .\dotstoellipsisON
\dotstoellipsisOFF
(코드에서는 "EB Garamond" 대신 "Arno Pro"를 사용합니다. 전자가 "..."와 "\dots" 모양의 차이를 더 쉽게 볼 수 있기 때문입니다.)
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arno Pro} % for a clear difference between "..." and "\dots"
%% Lua-side code
\usepackage{luacode}
\begin{luacode}
function dots2ellipses ( buff )
return ( buff:gsub ( "%.%.%." , "\\dots{}" ) )
end
\end{luacode}
%% TeX-side code: macros to switch Lua function on/off
\newcommand\dotstoellipsisON{\directlua{luatexbase.add_to_callback(
"process_input_buffer", dots2ellipses, "dots2ellipses" )}}
\newcommand\dotstoellipsisOFF{\directlua{luatexbase.remove_from_callback(
"process_input_buffer", "dots2ellipses" )}}
\begin{document}
\dotstoellipsisON
here ... there ... everywhere --- with ``\textbackslash dots''
\dotstoellipsisOFF
here ... there ... everywhere --- without ``\textbackslash dots''
\end{document}
답변2
활성 encTeX 엔진과 함께 모든 형식(Plain, LaTeX)을 사용하는 경우 다음과 같이 작성할 수 있습니다.
\mubyte\dots...\endmubyte
\mubytein=1 % make it 0 to turn off conversion
something ... or another
예상되는 결과를 얻습니다. encTeX는 8비트 TeX 엔진(Knuth, eTeX, pdfTeX)에서 사용할 수 있습니다.
답변3
xelatex로 컴파일하여 다음을 시도해 보세요.
\documentclass{article}
\usepackage{ebgaramond}
\usepackage{xesearch}
\UndoBoundary{.}
\SearchList{list1}{\ldots}{...}
\begin{document}
Hello ... World
\end{document}