titlecap - 하이픈으로 연결된 "to"를 대문자로 쓰지 마세요.

titlecap - 하이픈으로 연결된 "to"를 대문자로 쓰지 마세요.

\titlecap필사적으로 인쇄를 하려고 합니다.시퀀스 대 시퀀스~처럼시퀀스 대 시퀀스.

그러나 소문자 단어 목록(즉, \Addlcwords)에 "to"라는 단어를 추가하는 것만으로는 충분하지 않은 것 같습니다. 정의된 예외는 하이픈으로 연결된 단어에 대해 무시되는 것 같습니다.시퀀스 대 시퀀스.

앞서 언급한 결과를 달성하기 위해 사용할 수 있는 옵션이 있습니까?

MVE:

\documentclass{article}
\usepackage{titlecaps}
\Addlcwords{to}
\begin{document}
    \titlecap{sequence-to-sequence}
\end{document}

답변1

나는 이것이 왜 이런 식으로 동작하는지 살펴보았습니다(참조부록). 누군가는 그것을 소문자 목록에 추가하는 것으로 충분하기를 바랐을 것입니다(나는 한동안 코드를 보지 않았습니다). 그동안...그런 행동을 어떻게 무시할 수 있을까요?

일반적으로 "to"를 "변경 없음"을 의미하는 "to"로 묶습니다 \textnc{to}. 이는 a 내부의 대문자 명령을 무시 \titlecap하고 외부에서는 아무 작업도 수행하지 않습니다. 그러나 특정 예에서 해당 단어는 sequence-to-sequence인수의 첫 번째 단어로 특별히 처리됩니다(소문자 목록에 있더라도 대문자로 표시됩니다.

따라서 다른 접근 방식이 필요합니다... 문서의 p.3을 참조하세요. "단어에 제목이 붙는 것을 방지하려면(소문자로 강제로 적용하기 위해) 바로 앞에 를 붙일 수 있습니다 \relax. 이런 식으로 \relax제목이 붙습니다. , 다음 단어 대신 이 방법을 사용하면 제목 지정에 대한 일회성 예외를 처리하거나 위에서 설명한 중괄호 문제를 극복할 수 있습니다 \{\relax if\}."

첫 번째 줄에는 하이픈 없이 표시됩니다. 두 번째 줄은 OP에서 재정의와 함께 제시한 경우입니다 \relax. 세 번째는 해당 단어가 인수의 첫 번째 단어의 일부가 아닐 때 수행하는 방법입니다. 마지막은 \textnc외부에서 작업하는 모습을 보여줍니다 \titlecap.

\documentclass{article}
\usepackage{titlecaps}
\Addlcwords{to}
\begin{document}
\titlecap{sequence to sequence}% WITHOUT HYPHENS WORKS AS EXPECTED

\titlecap{sequence-\relax to-sequence}% PREPEND \relax FOR SPECIAL CASE EXCEPTIONS

\titlecap{a sequence-\textnc{to}-sequence}% ENCLOSE WITH \textnc

          a sequence-\textnc{to}-sequence
\end{document}

여기에 이미지 설명을 입력하세요

부록

글쎄, 코드는 , [, (등 의 연결 기호 다음에 대문자를 트리거할 수 있지만 -(이것이 마음에 들지 않는 일이었습니다) 소문자 단어 목록을 사용하는 유일한 방법은 귀하의 예에서 (이론적으로는 나중에 더 자세히) 대문자 사용을 방지하는 -to-것은 소문자 단어를 로 정의한 경우입니다 sequencetosequence. 그러나 이것은 또한 s문자가 대문자로 시작되는 것을 방지하기 때문에 원하는 것을 제공하지 않습니다 to.

이 이상한 동작은 패키지에서 사용하는 방법이 소문자 단어 검색의 일부로 , 등과 (같은 기호 문자를 차단(무시)하는 것이기 때문에 발생합니다.[

-하지만 추가된 합병증이 있는데 , 특히 하이픈이 다른 기호처럼 가려지지 않는다는 것을 발견했습니다 . 그러한 예외를 두는 타당한 이유가 있는지 결정하기 위해 좀 더 자세히 살펴보아야 할 것입니다.

하이픈을 괄호, 대괄호 등처럼 처리하려면 다음과 같이 할 수 있습니다.

\documentclass{article}
\usepackage{titlecaps}
\makeatletter
% THESE ARE THE PUNCTUATION MARKS SCREENED OUT FOR 
% LOWER CASE WORD SEARCH
\renewcommand\kill@punct{%
\catcode`-=9 %
\catcode`.=9 %
\catcode`,=9 %
\catcode`:=9 %
\catcode`;=9 %
\catcode`(=9 %
\catcode`)=9 %
\catcode`[=9 %
\catcode`]=9 %
\catcode`?=9 %
\catcode`!=9 %
\catcode``=9 %
\catcode`'=9 %
}

\renewcommand\restore@punct{%
\catcode`-=12 %
\catcode`.=12 %
\catcode`,=12 %
\catcode`:=12 %
\catcode`;=12 %
\catcode`(=12 %
\catcode`)=12 %
\catcode`[=12 %
\catcode`]=12 %
\catcode`?=12 %
\catcode`!=12 %
\catcode``=12 %
\catcode`'=12 %
}
\makeatother
\Addlcwords{sequencetosequence}
\begin{document}
\titlecap[x]{sequence-to-sequence}
\end{document}

s그러나 위에서 언급한 것처럼 대문자 사용 억제도 발생하므로 이는 원하는 결과가 아닙니다 .

여기에 이미지 설명을 입력하세요

당신이 찾는 것은 알파벳이 아닌 기호 다음에 새로운 소문자 단어 검색을 수행할 수 있는지 여부에 따라 결정됩니다. 아마 패키지 디자인을 하면서 이미 그렇게 하려고 했으나 실패했던 것 같아요. 그러나 해결책이 제시되면 패키지를 업데이트하겠습니다.

관련 정보