Giải pháp của bạn là chính xác. Tuy nhiên, phông chữ LaTeX đơn cách chuẩn không có phiên bản in đậm, vì vậy \textbf
không hoạt động trong môi trường lstlisting
. Theo macfreek.nl, bạn có thể làm như sau để redeclare phiên bản in đậm:
\DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}
Tôi đã thử nghiệm ví dụ sau và nó hoạt động như bạn mong muốn:
\documentclass{article}
\usepackage{listings}
\DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}
\lstset{language=C, basicstyle=\ttfamily}
\begin{document}
\begin{lstlisting}[[email protected]]
fun(foo, bar, @\textbf{baz}@);
\end{lstlisting}
\end{document}
tôi sử dụng kỹ thuật tương tự với \color{red}
thay vì \textbf
để gợi ý đối tượng của bản trình bày beamer ở sự khác biệt giữa hai danh sách mã gần như giống hệt nhau.
Cảm ơn, nhưng tôi thực sự muốn nhấn mạnh baz chỉ trong bối cảnh đặc biệt này. – fredoverflow
Vâng, chỉ cần thực hiện cuộc gọi \ lstset trong phạm vi bạn muốn, hãy đặt lại bên ngoài phạm vi đó. Tôi sẽ không đi xa như để nói rằng bạn không thể đặt văn bản tùy ý trong các định dạng tùy ý trong danh sách, nhưng bạn sẽ luôn luôn được chiến đấu chống lại các gói nếu bạn làm. –
Nhân tiện, 'emphstyle = \ textbf' không hoạt động đối với tôi, trong khi ví dụ' emphstyle = \ color {red} 'thì không. Có vẻ như lstlsting thực sự không muốn tôi gây rối với các khuôn mặt phông chữ: ( – fredoverflow