소울 패키지의 대안?
문맥
일부 텍스트를 강조 표시하거나 강조 표시 할 수 있습니다. 이것은 잘 작동하지 않지만 패키지 soul나 trick을 사용하는 패키지 로 수행 할 수 있습니다 .ulem
문제
내가 영혼과 관련된 문제는 용어집, 새 명령 또는 인용에서 잘 작동하지 않는다는 것입니다. 기본적으로 전체 텍스트를 다른 곳\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}
[...]
그러나 그것은 텍스트 서식을 변경합니다 ...
답변
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사용하려면 \soulregister다음 답변을 사용하여 문제에 대한 해결 방법도 있습니다 (https://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그림, 텍스트 등을 포함 할 수있는 정확한 섹션의 배경색을 변경하는 작업 으로 사용자 지정 강조 표시 환경을 만들 수 있습니다 . tcolorbox모든 여백이로 설정된 환경을 사용한 0다음 복원 \parindent하면 기본적으로 텍스트를 가져와야합니다. 상자 밖에 있기 때문입니다. 또한 float패키지 를 사용하고 H배치 옵션을 지정하여 실제로 부동하지는 않지만 같은 table또는 figure내부에 부동 환경을 포함 할 수 있습니다 . ulemMWE에서 취소 선을 사용 했습니다.
다음 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}
pagecolor / afterpage
마지막으로 흥미로운 접근 방식은 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}
대안은 "proofread" 패키지와 "\ hilite"명령을 사용하는 것입니다. 그러나 "\ gls"앞에 "\ protec"명령을 사용하고 "\ 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}