로컬에서 밑줄이 있는 단어에 대한 하이픈 넣기

로컬에서 밑줄이 있는 단어에 대한 하이픈 넣기

예제에 제공된 것처럼 긴 키워드에 하이픈을 연결하려고 합니다.

\documentclass[10pt]{article}
\usepackage{underscore}

\begin{document}

\pagestyle{empty}

\parbox{1pt}{TESTSTRING\_TESTSTRING\_HYPHENATION}
\\\\

%\begin{figure}[here]
%\centerline{\includegraphics*[width=0.8\paperwidth]{/pictures/regular_testname.png}}
%\centerline{\includegraphics*[width=0.8\paperwidth]{/pictures/escaped\_testname.png}}
%\end{figure}

\end{document}

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

나는 노력했다이것그리고이것성공하지 못한 경우가 더 많습니다. 예제에서 그림의 주석 처리를 제거하면 underscore파일 이름의 밑줄이 더 이상 제대로 해석되지 않기 때문에 -package에서 문제가 발생합니다. 이 패키지를 사용하지 않으면 그림을 삽입할 수 있지만 문자열에 하이픈이 연결되지 않습니다.

예를 들어 다음과 같이 로컬에서 적절하게 하이픈을 넣는 방법에 대한 아이디어가 있습니까 TESTSTRING\myUnderTESTSTRING\myUnderHYPHENATION?

그리고 문자열에 하이픈을 넣는 동안 하이픈이 작성되지 않도록 어떻게 제어할 수 있나요? 이것이 더욱 바람직할 것이다.

부가 질문: 제 예에서 문자열의 첫 번째 부분에 하이픈이 연결되지 않은 이유는 무엇입니까?

답변1

아마도 이와 같은 것이 패키지를 사용하지 않고도 도움이 될 것입니다. underscore패키지를 사용하지 않는 것이 좋습니다. with 의 하이픈 가능성을 활성화 하고 with \newuson의 원래 정의를 복원합니다 . 이 켜기/끄기 메커니즘을 통해 수정 범위를 제어할 수 있습니다.\_\newusoff

또한 밑줄의 "하이픈 넣기"에는 대시가 없습니다. 질문을 제대로 이해했다면 원하는 것 같았습니다.

어떤 경우든 단락의 첫 번째 단어에 하이픈을 넣으려면 \hspace{0pt}단락을 시작하는 데 a가 필요합니다.

\documentclass{article}
%\usepackage{underscore}
\textwidth0pt
\let\svus\_
\newcommand\newuson{\def\_{\svus\allowbreak\hspace{0pt}}}
\newcommand\newusoff{\let\_\svus}
\begin{document}
TESTSTRING\_TESTSTRING\_HYPHENATION

\newuson
\hspace{0pt}TESTSTRING\_TESTSTRING\_HYPHENATION

\newusoff
TESTSTRING\_TESTSTRING\_HYPHENATION
\end{document}

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

답변2

매크로에 대한 인수로 밑줄을 사용하여 긴 문자열을 유지하려는 경우 다음과 같이 쉽습니다.

\documentclass[10pt]{article}

\DeclareRobustCommand\Name[1]{{%
  \let\_\hyphenationunderscore#1%
}}
\newcommand{\hyphenationunderscore}{%
  \textunderscore\nobreak\hspace{0pt}%
}

\begin{document}

\pagestyle{empty}

\parbox{1pt}{
  \hspace{0pt}%
  \Name{TESTSTRING\_TESTSTRING\_HYPHENATION}
}

\end{document}

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

전역적으로 재정의할 수도 있습니다 \_.

\documentclass[10pt]{article}

\renewcommand{\_}{%
  \textunderscore\nobreak\hspace{0pt}%
}

\begin{document}

\pagestyle{empty}

\parbox{1pt}{
  \hspace{0pt}%
  TESTSTRING\_TESTSTRING\_HYPHENATION
}

\end{document}

또는 다음 _을 활성화할 수 있습니다.

\documentclass[10pt]{article}

\newcommand{\hyphenationunderscore}{%
  \textunderscore\nobreak\hspace{0pt}%
}
\catcode`_=\active
\protected\def_{\ifmmode\sb\else\hyphenationunderscore\fi}

\begin{document}

\pagestyle{empty}

\parbox{1pt}{
  \hspace{0pt}%
  TESTSTRING_TESTSTRING_HYPHENATION
}

\end{document}

TeX은 글루 앞에 붙지 않은 단어에 하이픈을 넣지 않기 때문에 \hspace{0pt}에서 하이픈을 넣지 않는다는 점에 유의하세요 .\parbox

밑줄 이후에도 중단하려면 전체 \nobreak로 변경하세요 \linebreak[0]. 예를 들어, 두 번째 솔루션은 다음과 같습니다.

\documentclass[10pt]{article}
\usepackage[T1]{fontenc}

\renewcommand{\_}{%
  \textunderscore\linebreak[0]\hspace{0pt}%
}

\begin{document}

\pagestyle{empty}

  TESTSTRING\_TESTSTRING\_HYPHENATION

\parbox{1pt}{
  \hspace{0pt}%
  TESTSTRING\_TESTSTRING\_HYPHENATION
}

\end{document}

여기의 출력은 T1에서 어떤 일이 발생하는지 보여줍니다.

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

관련 정보