소울 패키지의 대안?

소울 패키지의 대안?

문맥

일부 텍스트를 강조 표시하거나 파쇄하고 싶을 수도 있습니다. 이는 soul패키지 또는 ulem패키지를 사용하여 수행할 수 있습니다.트릭을 사용하여, 비록 잘 작동하지는 않지만.

문제

Soul에 대한 문제는 용어집, 새로운 명령 또는 인용에서 제대로 작동하지 않는다는 것입니다. 기본적으로, \hl{}논의된 대로 전체 텍스트를 가져와서 따옴표로 묶을 수는 없습니다.다른 곳에서. 그리고 해결 방법을 사용하거나 트릭을 수행할 \mbox{\gls{toto}}수도 있습니다 .{\gls{toto}}

예를 들어 다음과 같은 최소 작업 예제를 참조하세요.

\documentclass{article}

\usepackage{soul}
\usepackage[acronym]{glossaries}
\usepackage{color}

\newacronym{co2}{CO$_2$}{carbon dioxide}
\newcommand{\etal}{\textit{et al.}}

\begin{document}
    
    Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.
Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.
    
    
    \begin{thebibliography}{9}
        \bibitem{latexcompanion} 
        Michel Goossens, Frank Mittelbach, and Alexander Samarin. 
        \textit{The \LaTeX\ Companion}. 
        Addison-Wesley, Reading, Massachusetts, 1993.
    \end{thebibliography}
    
\end{document}

다음과 같이 잘 컴파일됩니다.

    [...]
\begin{document}
    
    \hl{Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.
Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.}
    
    [...]

다음과 같이 부분적으로 수정된 여러 오류 메시지를 제공합니다.

    [...]
\begin{document}
    
    Lorem ipsum \mbox{\gls{co2}} \hl{dolor by Toto \mbox{\etal{}} {\cite{latexcompanion}} sit amet, consectetur adipiscing elit.
Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \mbox{\gls{co2}}.}
    
    [...]

\mbox{\gls{co2}}명령 에 첫 번째를 포함하면 실패합니다 \hl{}. 어쩌면 너무 길까요?

질문

  • 정확히 무엇~이다soul\hl{}명령과 \cite{}, 또는 용어집 항목 사이에 문제가 있습니까 \etal{}?
  • 이러한 문제를 해결하는 방법은 무엇입니까? (제안된 솔루션은 부분적으로만 작동함)
  • 그림, 텍스트 등을 포함하는 전체 코드 블록을 둘러쌀 수 있는 것과 같은 것을 허용하는 대안이 있습니까? \hl{}즉, 정확한 섹션의 배경색을 변경하는 간단한 방법이 있습니까?

내가 생각해낸 최고의 방법은 색상 상자를 사용하는 것입니다.여기), 이와 같이:

[...]
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
[...]
    \begin{tcolorbox}[breakable,notitle,boxrule=0pt,colback=yellow,colframe=yellow]
    
    Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.
Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.
    
    \end{tcolorbox}
[...]

하지만 텍스트 서식이 변경됩니다 ...


2023년 6월 기준 업데이트

컴파일을 위해 LuaLaTeX를 사용하는 경우 프리앰블에 다음을 추가하면 됩니다.

\usepackage{luacolor}
\usepackage[soul]{lua-ul}

그런 다음 \hl{Lorem ipsum...}설명된 대로 정상적으로 사용하십시오.여기. 이 방법은 \enquote아래의 일부 솔루션과 달리 에 강력하다는 장점이 있습니다 .

답변1

패키지 를 사용하여 ulem원하는 것을 얻을 수 있을 것 같습니다. 일을 하는 비결도 있다 soul.

편집: 그림, 텍스트 등이 포함될 수 있는 정확한 섹션의 배경색을 변경하는 간단한 방법이 있는지 두 번째 질문과 관련하여 이는 그리 쉽지 않습니다. 콘텐츠를 다른 환경(예: mdframed또는 ) 으로 래핑하는 접근 방식을 사용할 수 있지만 tcolorbox이는 형식 지정에 영향을 줄 수 있으며 내부의 특정 명령/요소, 특히 부동 소수점을 제한할 수도 있습니다. tcolorbox최소한 간단한 콘텐츠에 대해서는 작동하는 아래 예제를 포함했습니다 . 또한 afterpage페이지 배경을 변경하는 데 사용되는 대체 접근 방식을 추가했습니다 .

울렘

다음과 같이 자신만의 hl명령을 정의하십시오(cmp.https://tex.stackexchange.com/a/48549/223749):

\usepackage[normalem]{ulem}
\newcommand\hl{\bgroup\markoverwith
    {\textcolor{yellow}{\rule[-.5ex]{.1pt}{2.5ex}}}\ULon}

이를 통해 MWE가 제대로 컴파일됩니다. (한 번 보세요https://tex.stackexchange.com/a/254337/223749가능한 문제에 대해). sout의 명령을 사용하면 ulemMWE에서 동일한 텍스트를 오류 없이 취소할 수도 있습니다.

전체 MWE(MWE에 \makeglossaries명령이 누락됨):

\documentclass{article}

\usepackage[normalem]{ulem}
\newcommand\hl{\bgroup\markoverwith
  {\textcolor{yellow}{\rule[-.5ex]{.1pt}{2.5ex}}}\ULon}
\usepackage[acronym]{glossaries}
\usepackage{color}

\newacronym{co2}{CO$_2$}{carbon dioxide}
\newcommand{\etal}{\textit{et al.}}
\makeglossaries

\begin{document}

\hl{Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.  Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.}
\sout{Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.  Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.}
    
    
    \begin{thebibliography}{9}
        \bibitem{latexcompanion} 
        Michel Goossens, Frank Mittelbach, and Alexander Samarin. 
        \textit{The \LaTeX\ Companion}. 
        Addison-Wesley, Reading, Massachusetts, 1993.
    \end{thebibliography}
    
\end{document}

영혼

을 계속 사용하려면 다음 답변을 soul사용하여 문제를 해결하는 방법도 있습니다 (\soulregisterhttps://tex.stackexchange.com/a/139500/223749). 이는 또한 취소선 가능성을 제공합니다.

전체 MWE:

\documentclass{article}

\usepackage{soul}
\soulregister\cite7
\soulregister\gls7
\soulregister\etal7

\usepackage[acronym]{glossaries}
\usepackage{color}

\newacronym{co2}{CO$_2$}{carbon dioxide}
\newcommand{\etal}{\textit{et al.}}
\makeglossaries

\begin{document}

\hl{Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.  Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.}
\st{Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.  Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.}
    
    
    \begin{thebibliography}{9}
        \bibitem{latexcompanion} 
        Michel Goossens, Frank Mittelbach, and Alexander Samarin. 
        \textit{The \LaTeX\ Companion}. 
        Addison-Wesley, Reading, Massachusetts, 1993.
    \end{thebibliography}
    
\end{document}

티컬러박스

tcolorbox몇 가지 트릭을 사용하면 그림, 텍스트 등이 포함될 수 있는 정확한 섹션의 배경색을 변경하는 작업 으로 사용자 정의 강조 표시 환경을 만들 수 있습니다. tcolorbox모든 여백이 로 설정된 환경을 사용 0하고 복원하면 \parindent기본적으로 텍스트를 가져와야 합니다. 상자 밖에 있는 것처럼 말이죠. 또한 패키지를 사용 float하고 배치 옵션을 지정 하면 실제로 부동하지는 않지만 같은 H부동 환경을 포함할 수 있습니다 . MWE에서 취소선을 사용했습니다 .tablefigureulem

다음 MWE에는 그림, 표, 페이지 나누기가 포함되어 있습니다.

\documentclass{article}

\usepackage{mwe}

\usepackage[acronym]{glossaries}
\usepackage{color}

\usepackage{float}
\usepackage[normalem]{ulem}

\newlength\defaultparindent
\AtBeginDocument{\setlength\defaultparindent{\parindent}}

\usepackage[breakable]{tcolorbox}
\newenvironment{highlighttcb}%
  {\begin{tcolorbox}[colback=yellow,
                     colframe=white,
                     boxsep=0pt,
                     left=0pt,
                     right=0pt,
                     top=0pt,
                     bottom=0pt,
                     center, 
                     valign=top, 
                     before skip=0pt, 
                     after skip=0pt,
                     width=\textwidth,
                     breakable,
                     boxrule=0pt,
                     frame empty,
                     sharp corners
                 ]
             \setlength{\parindent}{\defaultparindent}
             }%
  {\end{tcolorbox}}


\newacronym{co2}{CO$_2$}{carbon dioxide}
\newcommand{\etal}{\textit{et al.}}
\makeglossaries

\begin{document}
    \blindtext
    \blindtext
    \blindtext
    \blindtext
    \blindtext

\begin{highlighttcb}%
    Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.  Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.

    \sout{Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.  Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.}

    \begin{figure}[H]
        \includegraphics[width=.4\textwidth]{example-image-a}\hfill
        \includegraphics[width=.4\textwidth]{example-image-b}
        \caption{This is a figure caption within tcolorbox.}
    \end{figure}

    \blindtext
    \blindtext
    \blindtext
    \blindtext
    \begin{table}[H]
        \centering
        \begin{tabular}{lcr}
        a & b & c \\
        a & b & c \\
        a & b & c \\
        \end{tabular}
        \caption{This is a table caption within tcolorbox.}
    \end{table}
    \blindtext

\end{highlighttcb}

\begin{thebibliography}{9}
    \bibitem{latexcompanion} 
    Michel Goossens, Frank Mittelbach, and Alexander Samarin. 
    \textit{The \LaTeX\ Companion}. 
    Addison-Wesley, Reading, Massachusetts, 1993.
\end{thebibliography}
    
\end{document}

tcolorbox를 기반으로 한 사용자 정의 강조 표시 환경

페이지 색상 / 뒷페이지

color마지막으로 흥미로운 접근 방식은 및 패키지를 사용하여 페이지 배경을 부분적으로 색칠하는 것입니다 afterpage(에서 가져옴).https://tex.stackexchange.com/a/237427/223749). 이는 콘텐츠를 전혀 변경할 필요가 없으며 형식도 영향을 받지 않는다는 장점이 있습니다. (목적에 따라) 단점은 강조 표시에 왼쪽 및 오른쪽 여백도 포함된다는 점입니다. 또한 강조 표시 환경 내에 부동 소수점이 있고 그 환경 밖으로 부동하는 경우 강조 표시되지 않습니다.

그림 및 페이지 나누기를 포함한 전체 MWE:

\documentclass{article}

\usepackage{mwe}

\usepackage[acronym]{glossaries}
\usepackage{color}

\usepackage[normalem]{ulem}
\usepackage{afterpage}

\makeatletter
% Macro \changepagecolor has the same syntax as \pagecolor or \color
% with an optional argument and a mandatory argument.
\newcommand*{\changepagecolor}{%
  \@ifnextchar[\@changepagecolor@i\@changepagecolor@ii
}
% Case: \changepagecolor[...]{...}
\def\@changepagecolor@i[#1]#2{%
  \@changepagecolor@do{[{#1}]{#2}}%
}
% Case: \changepagecolor{...}
\newcommand*{\@changepagecolor@ii}[1]{%
  \@changepagecolor@do{{#1}}%
}
\newcommand*{\@changepagecolor@do}[1]{%
  % Fill the remaining space with a colored rule
  \begingroup
    \offinterlineskip
    \hbox to 0pt{%
      \kern-\paperwidth
      \vtop to 0pt{%
        \color#1%
        \hrule width 2\paperwidth height \paperheight
        \vss
      }%
      \hss
    }%
  \endgroup
  % Set page color for the next page
  \afterpage{\pagecolor#1}%
}
\makeatother

\newenvironment{highlight}%
  {\changepagecolor{yellow}}%
  {\changepagecolor{white}}


\newacronym{co2}{CO$_2$}{carbon dioxide}
\newcommand{\etal}{\textit{et al.}}
\makeglossaries

\begin{document}
\blindtext
\blindtext
\blindtext
\blindtext

\begin{highlight}
Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.  Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.

\sout{Lorem ipsum \gls{co2} dolor by Toto \etal{}\cite{latexcompanion} sit amet, consectetur adipiscing elit.  Etiam tortor sapien, rutrum vitae lacinia sit amet, mollis ac est. Aenean tortor orci \gls{co2}.}

\blindtext

\begin{figure}[!h]
    \includegraphics[width=.4\textwidth]{example-image-a}\hfill
    \includegraphics[width=.4\textwidth]{example-image-b}
    \caption{This is a figure caption within the custom highlight environment}
\end{figure}
\end{highlight}

\blindtext

\begin{thebibliography}{9}
    \bibitem{latexcompanion} 
    Michel Goossens, Frank Mittelbach, and Alexander Samarin. 
    \textit{The \LaTeX\ Companion}. 
    Addison-Wesley, Reading, Massachusetts, 1993.
\end{thebibliography}
    
\end{document}

pagecolor/afterpage를 사용하여 강조 표시

답변2

대안은 다음을 사용하는 것입니다.proofread패키지와 \hilite명령. 그러나 \protect앞에 명령을 사용 \gls하고 바로 뒤에 중괄호를 닫아야 합니다 \gls. 그런 다음 다시 사용하여 \hilite나머지 텍스트를 강조 표시합니다.

\documentclass{article}
\usepackage{soulutf8} % Only necessary if there are accented characters inside the curly braces
\usepackage{proofread}
\usepackage[xindy]{glossaries}
\makeglossaries
    
\newglossaryentry{euismod}{
        name={euismod},
        description={euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo.}
    }
    
    
\begin{document}
                
    Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, \hilite{accumsan eleifend.
        
    Nam dui ligula, fringilla a, \protect\gls{euismod}}\hilite{ sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo}. Nam lacus libero, pretium at. 
                
\printglossary  

\end{document}

관련 정보